Version 1.0.1  November 11, 2003
---------------------------
- Modified domain schema, so data source configuration does not demand jar to be specified explicitly.
  If datasource jar and / or path not specified - the JVM classpath will simply be used. This change
  simplifies deployments into containers where URLs are hard to predict. Connector configuration still
  requires jar URL - because it loads connector descriptors from META-INF (so it needs jar itself not 
  just a java class). This suggests that the whole jar / path configuration business probably needs to be revisited
  in the future.
- Added copies of JCA and JAAS jars as they are now officially released by Sun and available for redistribution.
- Advanced to Log4j 1.2.8 release and added jar into the distribution.
- Advanced to Sun Java Web Services Developer Pack 1.1
- Advanced to Ant 1.5.3.1
- First official release by MetaBoss crew.
  May not have much improvements but significant from the handover point of view.


Version 1.0  April 23, 2002
---------------------------
- Added Log 4 J code from Sam Ruby.

- Removed recovery code as it is experimental.

- Bug fixes

- Added workaround for Informix

Version 0.9.8  Mar 12, 2000
---------------------------

- Improved performance and reduced overhead of the transaction manager.
  Transactions and resources are now more efficiently stored, accessed
  and discarded to reduce the overhead associated with transaction
  management.

- Improved performance of JNDI ENC and MemoryContext.

- Revised the TransactionDomain design to allow more effective
  management of multiple transaction domains.

- Added RuntimeContext interface to allow context management for
  component containers (EJB, Servlet). Provides support for connection
  use across method invocation, JAAS security subject, and JNDI ENC.

- Added JCA connector manager supporting connection pooling and
  XA resources.

- New transaction domain configuration file.

- Improved Xid management to reduce memory consumption and enable
  consistent textual representation of Xids. Four Xid implementations
  are provided for global, branch, local and external Xids.

- Added services package that includes internal clock, UUID generator
  and daemon master.

- Added a configuration file (tyrex.config) for controlling the new
  services and providing alternative location for the resource
  configuration file.

- The package tyrex.tm has been split in three. The Tyrex extended
  transaction management interfaces are contained in tyrex.tm, while
  the implementation has been migrated to tyrex.tm.impl.
  Xid implementations are located in tyrex.tm.xid.

- TransactionDomain has been changed and the Tyrex class has been
  removed. Creating and looking up transaction domains is now easier.
  TransactionDomain provides access to a TransactionManager and
  UserTransaction, and various administrative tasks.

- Added abstract interface for transaction journaling.

- Added transaction start time to TransactionStatus.

- Clarified the use of enlistResource and delistResource in
  TyrexTransactionManager as a means to enlist resources in future
  transactions.

- Fixed a problem in the ResultSet wrapper ( close operation ).

- Moved the interceptor interface to tyrex.tm.

- Provided UUID implementation compliant with the IETF draft and
  supporting 128-bit universally unique identifiers using the
  network card address, and a UUID state file.

- Support for RMI transaction propagation has been removed from
  this release.

- EnabledDataSource has been moved to tyrex.resource.jdbc.xa.

- Now using Apache Log4J for error logging and informative messages.


Version 0.9.5  April 10, 2000
-----------------------------

- Added concurrency service based on the OMG Concurrency Control Service.
  The interfaces are located in tyrex.concurrency, and the engine in the
  engine package. Automatic dropLocks at end of transaction not yet
  implemented.  


Version 0.9.4 February 2 2000
-----------------------------

- Added first set of documentation.


Version 0.9.3 January 21 2000
-----------------------------

- Modified tyrex.xml to add support for transaction domains and
  interceptors.

- Added Tyrex interceptors and provided default interceptors for
  logging and performance monitoring in package tyrex.tools.

- Added TransactionDomain. Multiple transaction monitors are now
  supported each running within its own transaction domain, where all
  Xid are unique. Each domain has its own set of resource limits and
  interceptors. Most of the functionality of TransactionServer has now
  been placed in TransactionDomain.

- Added package for resource factories and pool management, defining
  the interfaces for resource limits, resource pool and resouce pool
  manager to be used across Tyrex.

- Moved all test cases to separate package tests build with a separate
  target 'tests'.


Version 0.9.2 January 10 2000
-----------------------------

- Upgraded to uses new MarshalInfo in Castor 0.7 for configuration
  files. Now ships with Castor 0.7.


Version 0.9.1 January 3 2000
-----------------------------

- Added support for a general resource manager architecture based
  on the JDBC/JMS XA data source implementation. This allows the
  addition of further resource managers.

- Tomcat now includes build-in Interceptor support, eliminating
  the need to include webserver.jar in Tomcat-Tyrex distribution.

- Fixed bug in permission checks and changed permission class name
  to TyrexPermission.


Version 0.9  December 21, 1999
------------------------------

- Integrated with Tomcat as transaction monitor, DataSource factory
  and JNDI environment context provider.

- Changed product name from TXM to Tyrex.

- Added resource configuration file (resources.xml) associating actual
  resources with resource references in deployment descriptor based on
  application name/partial name. Supercedes previous specification of
  data sources in txm-conf.xml.

- Full implementation of JNDI environment naming context with java:
  URL support, read-only semantics and per-thread contexts. All
  contexts created with TXMContext share same name space, but also
  supports creating detached contexts. Added ENCHelper to ease
  supporting environment naming contexts.

- Added DTD and XML schema for txm-conf.xml and entity resolver allows
  the DTD (but not the schema) to be used with the configuration file.
  Also added resources.xml, see elsewhere.

- Added OTS support in txm.client. Client's Current will create and
  demarcate remote transactions. No ORB hooks are provided yet, so
  this implementation cannot be tested yet.

- OTS changes: Fixed Current.set_timeout to change the time out of the
  next created transaction and not accepts an int. Created a Current
  interface and implementation and added them to jts.jar.


Version 0.8  December 10, 1999
------------------------------

- Self installing JAR.

- Implemented support for XML configuration file through
  txm.conf.Server. Configure can be loaded by default, refreshed
  and flushed. Added DTD (txm/conf/txm-conf.dtd).

- Initial implementation of memory and thread-specific JNDI SPI
  including java: URL support.

- Renamed PoolManaged to PooledResources.

- Added support for two-phase aware JDBC connections using the
  txm.jdbc.xa.TwoPhaseConnection interface. EnabledDataSource is
  no abstracted and requires minial change to the JDBC driver in
  order to enable full XA support.


Version 0.7  December 3, 1999
-----------------------------

- Changes to support nested transactions. Nested transactions are
  not enlisted with the server or considered activated, they are
  merely resources in their parent transaction. All nested
  transactions appear flat to their XA resources.

- Added support for RMI/JNDI activation of the transaction server.

- Documented the security permissions and enforced permission
  on access to the TransactionManager.

- Added ResourceManager static class to decouple datasource from
  transaction manager. Will be phased out once a generic API is
  exposed in future EJB specs.

- Added txm.server.Demo class to run a simple demonstration of
  the server.


Version 0.6  December 1, 1999
-----------------------------

- TransactionServer can now create a top-level transaction or a
  subordinate transaction and optionally enlist it with the thread.
  Two different checks are made against the pool manager in the
  second case. There is a special case for recreating an OTS
  transaction from the propagation context and creating a remote
  transaction for RemoteTransactionServer.

- Recreation of TransactionImpl/ControlImpl from OTS propagation
  context is now working properly through a single call to
  TransactionServer. The new transaction uses it's own Xid, but
  remembers the propagation context and behaves as subordinate.

- ControlImpl is now created directly from TransactionImpl and not
  obtained from TransactionServer. This saves wasted CPU when used
  through OTS.

- TransactionFactoryImpl added to implement OTS transaction factory,
  recreation of imported transactions, and support for COS service
  identification (TSIdentification).

- txm.server.Configure now implements the full server control
  interface and does not extend Service. txm.util.Service has been
  faced out, instead adapators will be used to plug Configure into
  various management solutions (e.g. Avalon).

- Added txm.server.Meter class to obtain performance indicators
  about the server. Includes a default mechanism for logging them to
  a writer.

- Phased out DefaultRecoveryLog. There's not enough logic there to
  really use the log at the moment anyway, so the null one is enough.

- Outside world access to the TransactionServer should occur either
  through TXM, Configure, Meter or the enlisted UserTransaction and
  Current.

- Added support for retrieving transaction associated with thread,
  terminating transaction and listing all transactions registered
  in server. TXM exposes this functionality and depends on adequate
  permissions and uses TransactionStatus to report.


