<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Release notes</title><link href="default.css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="10"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="150"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="70"><img border="0" height="6" width="70" src="images/dotTrans.gif"></td><td align="left" valign="top" width="100%"><img border="0" height="6" width="100%" src="images/top_2.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="10"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="150"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="70"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="100%"><a href="license.html"><span class="menuTopOff">License</span></a> <a href="http://www.codehaus.org"><span class="menuTopOff">Codehaus</span></a> <a href="http://openejb.org"><span class="menuTopOff">OpenEJB</span></a> <a href="http://openjms.sf.net"><span class="menuTopOff">OpenJMS</span></a> <a href="http://openorb.sf.net"><span class="menuTopOn">OpenORB</span></a> <a href="http://tyrex.sf.net"><span class="menuTopOff">Tyrex</span></a> <br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="10"><img border="0" height="3" width="10" src="images/dotTrans.gif"></td><td align="right" valign="top" bgcolor="#7270c2" width="150"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="70"><img border="0" height="3" width="70" src="images/line_light.gif"></td><td align="left" valign="top" width="100%"><img border="0" height="3" width="100%" src="images/line_light.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="10" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="150"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="10" border="0"><tr><td><script src="http://www.ohloh.net/p/3635/widgets/project_users_logo.js" type="text/javascript"></script></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Old releases</span></td></tr><tr><td align="left" valign="top"> <a href="releases-old.html"><span class="subMenuOff">General</span></a></td></tr><tr><td align="left" valign="top"> <a href="http://www.castor.org/1.3/index.html"><span class="subMenuOff">Release 1.3</span></a></td></tr><tr><td align="left" valign="top"> <a href="http://www.castor.org/1.3rc1/index.html"><span class="subMenuOff">Release 1.3rc1</span></a></td></tr><tr><td align="left" valign="top"> <a href="http://www.castor.org/1.2/index.html"><span class="subMenuOff">Release 1.2</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top"> <a href="index.html"><span class="subMenuOff">Home</span></a></td></tr><tr><td align="left" valign="top"> <a href="about.html"><span class="subMenuOff">About</span></a></td></tr><tr><td align="left" valign="top"> <a href="features.html"><span class="subMenuOff">Features</span></a></td></tr><tr><td align="left" valign="top"> <a href="download.html"><span class="subMenuOff">Download</span></a></td></tr><tr><td align="left" valign="top"> <a href="dependencies.html"><span class="subMenuOff">Dependencies</span></a></td></tr><tr><td align="left" valign="top"> <a href="reference-guide.html"><span class="subMenuOffHighlighted">Reference guide</span></a></td></tr><tr><td align="left" valign="top"> <a href="presentations.html"><span class="subMenuOff">Publications</span></a></td></tr><tr><td align="left" valign="top"> <a href="javadoc/overview-summary.html"><span class="subMenuOff">JavaDoc</span></a></td></tr><tr><td align="left" valign="top"> <a href="maven-integration.html"><span class="subMenuOff">Maven 2 support</span></a></td></tr><tr><td align="left" valign="top"> <a href="maven-archetypes.html"><span class="subMenuOff">Maven 2 archetypes</span></a></td></tr><tr><td align="left" valign="top"> <a href="schema.html"><span class="subMenuOff">DTD & Schemas</span></a></td></tr><tr><td align="left" valign="top"> <a href="changes.html"><span class="subMenuOff">Recent HTML changes</span></a></td></tr><tr><td align="left" valign="top"> <a href="news.html"><span class="subMenuOff">News Archive</span></a></td></tr><tr><td align="left" valign="top"> <a href="http://castor.codehaus.org/rss/castor-announce.xml"><span class="subMenuOff">RSS news feed</span></a></td></tr><tr><td align="left" valign="top"> <a href="http://docs.codehaus.org/display/CASTOR/"><span class="subMenuOffHighlighted">Project Wiki</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Development/Support</span></td></tr><tr><td align="left" valign="top"> <a href="lists.html"><span class="subMenuOff">Mailing Lists</span></a></td></tr><tr><td align="left" valign="top"> <a href="scm.html"><span class="subMenuOff">SVN/JIRA</span></a></td></tr><tr><td align="left" valign="top"> <a href="contributing.html"><span class="subMenuOff">Contributing</span></a></td></tr><tr><td align="left" valign="top"> <a href="support.html"><span class="subMenuOff">Support</span></a></td></tr><tr><td align="left" valign="top"> <a href="http://bamboo.ci.codehaus.org/browse/CASTOR"><span class="subMenuOff">Continuous builds</span></a></td></tr><tr><td align="left" valign="top"> <a href="professional-services.html"><span class="subMenuOffHighlighted">Prof. services</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Related projects</span></td></tr><tr><td align="left" valign="top"> <a href="spring-orm-integration.html"><span class="subMenuOff">Spring ORM support</span></a></td></tr><tr><td align="left" valign="top"> <a href="spring-xml-intro.html"><span class="subMenuOff">Spring XML factories</span></a></td></tr><tr><td align="left" valign="top"> <a href="ws-integration.html"><span class="subMenuOff">WS frameworks</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">XML</span></td></tr><tr><td align="left" valign="top"> <a href="xml-link.html"><span class="subMenuOff">XML</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">XML Code Generator</span></td></tr><tr><td align="left" valign="top"> <a href="srcgen-link.html"><span class="subMenuOff">XML Code Generator</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">JDO</span></td></tr><tr><td align="left" valign="top"> <a href="jdo-introduction.html"><span class="subMenuOff">Introduction</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-starter-tutorial.html"><span class="subMenuOff">First steps</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo.html"><span class="subMenuOff">Using JDO</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-database-conf.html"><span class="subMenuOff">JDO Config</span></a></td></tr><tr><td align="left" valign="top"> <a href="types.html"><span class="subMenuOff">Types</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-mapping.html"><span class="subMenuOff">JDO Mapping</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-faq.html"><span class="subMenuOff">JDO FAQ</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-examples.html"><span class="subMenuOff">JDO Examples</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-howto.html"><span class="subMenuOffHighlighted">JDO HOW-TOs</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-tips-tricks.html"><span class="subMenuOffHighlighted">Tips & Tricks</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-other-features.html"><span class="subMenuOff">Other Features</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-self-executable-examples.html"><span class="subMenuOff">JDO sample JAR</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Tools</span></td></tr><tr><td align="left" valign="top"> <a href="schemaGen-anttask.html"><span class="subMenuOff">Schema generator</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Advanced JDO</span></td></tr><tr><td align="left" valign="top"> <a href="jdo-caching-detail.html"><span class="subMenuOff">Caching</span></a></td></tr><tr><td align="left" valign="top"> <a href="oql.html"><span class="subMenuOff">OQL</span></a></td></tr><tr><td align="left" valign="top"> <a href="locking.html"><span class="subMenuOff">Trans. & Locks</span></a></td></tr><tr><td align="left" valign="top"> <a href="design-persist.html"><span class="subMenuOff">Design</span></a></td></tr><tr><td align="left" valign="top"> <a href="key-generator.html"><span class="subMenuOff">KeyGen</span></a></td></tr><tr><td align="left" valign="top"> <a href="long-transact.html"><span class="subMenuOff">Long Trans.</span></a></td></tr><tr><td align="left" valign="top"> <a href="nested-attr.html"><span class="subMenuOff">Nested Attrs.</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-pooling.html"><span class="subMenuOff">Pooling Examples</span></a></td></tr><tr><td align="left" valign="top"> <a href="postgresql-blobs.html"><span class="subMenuOff">LOBs</span></a></td></tr><tr><td align="left" valign="top"> <a href="jdo-best-practice.html"><span class="subMenuOff">Best practice</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">DDL Generator</span></td></tr><tr><td align="left" valign="top"> <a href="ddlgen.html"><span class="subMenuOff">Using DDL Generator</span></a></td></tr><tr><td align="left" valign="top"> <a href="ddlgen-properties.html"><span class="subMenuOff">Properties</span></a></td></tr><tr><td align="left" valign="top"> <a href="ddlgen-anttask.html"><span class="subMenuOff">Ant task</span></a></td></tr><tr><td align="left" valign="top"> <a href="ddlgen-mapping.html"><span class="subMenuOff">Type Mapping</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">More</span></td></tr><tr><td align="left" valign="top"> <a href="examples.html"><span class="subMenuOff">The Examples</span></a></td></tr><tr><td align="left" valign="top"> <a href="extras.html"><span class="subMenuOff">3rd Party Tools</span></a></td></tr><tr><td align="left" valign="top"> <a href="test-framework.html"><span class="subMenuOff">JDO Tests</span></a></td></tr><tr><td align="left" valign="top"> <a href="ctf.html"><span class="subMenuOff">XML Tests</span></a></td></tr><tr><td align="left" valign="top"> <a href="conf-lib.html"><span class="subMenuOff">Configuration</span></a></td></tr><tr><td align="left" valign="top"> <a href=""><span class="subMenuOff"></span></a></td></tr><tr><td align="left" valign="top"> <a href="http://www.java.net/"><span class="subMenuOff"><img border="0" src="images/javanet_button_90.gif"></span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">About</span></td></tr><tr><td align="left" valign="top"> <a href="license.html"><span class="subMenuOff">License</span></a></td></tr><tr><td align="left" valign="top"> <a href="user-experience.html"><span class="subMenuOffHighlighted">User stories</span></a></td></tr><tr><td align="left" valign="top"> <a href="contributors.html"><span class="subMenuOff">Contributors</span></a></td></tr><tr><td align="left" valign="top"> <a href="marketplace.html"><span class="subMenuOff">Marketplace</span></a></td></tr><tr><td align="left" valign="top"> <a href="status.html"><span class="subMenuOff">Status, Todo</span></a></td></tr><tr><td align="left" valign="top"> <a href="release-notes.html"><span class="subMenuOff">Changelog</span></a></td></tr><tr><td align="left" valign="top"> <a href="library.html"><span class="subMenuOff">Library</span></a></td></tr><tr><td align="left" valign="top"> <a href="contacts.html"><span class="subMenuOff">Contact</span></a></td></tr><tr><td align="left" valign="top"> <a href="origins.html"><span class="subMenuOff">Project Name</span></a></td></tr></table><br></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"> </td><td align="left" valign="top" width="70"> </td><td valign="top" width="100%" rowspan="4"><table width="100%" cellspacing="0" cellpadding="0" border="0" rows="2" cols="2"><tr><td align="left" valign="top"><br><img width="115" vspace="0" src="images/castor.gif" hspace="0" height="34" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="10" border="0"></td><td align="right" valign="top" height="5" width="120"></td></tr></table><p></p><p></p><br><h2 align="center">Release notes</h2><HR size="1"><span class="bodyGrey"><b><a href="#Releases">Releases</a></b><br></span><HR size="1"><br><a name="Releases"><h2>Releases</h2></a> <p><span class="bodyGrey">For all releases prior to 0.9.7, the release notes can be found <a href="release-notes-0.9.7pre.html">here</a>.</span></p> <p><span class="bodyGrey">For all releases prior to 0.9.6, the release notes can be found <a href="changelog.html">here</a>.</span></p> <br><hr><h1>Release 1.0M4</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>4th milestone release for Castor 1.0</td></tr><tr><td>released:</td><td>March 23, 2006</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Requirements</h2> <h3>Introduced <font color="red">Java 1.4</font> as a dependecy</h3> <p><span class="bodyGrey">This is a reminder that we have started to add some features that more or less depend on features made available with Java 1.4 (only), such as the JDBC 3.0 API enhancements. As such, we have made Java 1.4 a key requirement for the upcoming Castor 1.0 release.</span></p> <h2>Additions</h2> <h3>Updated/Added to XML Documentation</h3> <p><span class="bodyGrey">Two new XML how-tos have been added to the XML HOW-TOs page, one on fetching XML dependencies (DTDs and schemas) from JAR files rather than network locations, and one on using identities and references in XML. The XML Mapping documentation was also updated so that the DTD public ID used in examples matches one in Castor's DTDResolver (this aids in fetching the DTD from the Castor JAR rather than the web address).</span></p> <h3>Added cache implementation for high volunm and high performance</h3> <p><span class="bodyGrey">The cache types <b>fifo</b> and <b>lru</b> are based on a set of articles in the O'Reilly Network by William Grosso, to implement a simplified and 1.3-compatible implementation of a Hashbelt algorithm.</span></p> <p><span class="bodyGrey">Hashbelts are simple, in principle. Instead of walking all objects and finding out when they're supposed to expire, use a "conveyor belt" approach. At any particular point in time, objects going into the cache go into the front of the conveyor belt. After a certain amount of time or when the size limit of a container has been reached, move the conveyor belt - put a new, empty container at the front of the conveyor belt to catch new objects, and the one that drops off of the end of the conveyor belt is, by definition, ready for garbage collection.</span></p> <p><span class="bodyGrey">As seen in his system, you can use a set of pluggable strategies to implement the actual hashbelt bits. A container strategy allows you to change out the implementation of the container itself - from simple hashtable-based implementations, up through more complex uses of soft referenced or hashset-based implementations, depending on what you need and what you want it to be used for. A pluggable "expire behavior" handler allows you to determine what action is taken on something which drops off of the bottom of the conveyor belt.</span></p> <p><span class="bodyGrey">As of release 1.0 Castor knows of 11 cache types. To use this cache types, their factories need to be configured in castor.properties file. If you use a custom castor.properties file you need to add the new cache factories to be able to use the new cache types.</span></p> <span class="bodyBlack"><pre> # # Cache implementations # org.castor.cache.Factories=\ org.castor.cache.simple.NoCacheFactory,\ org.castor.cache.simple.TimeLimitedFactory,\ org.castor.cache.simple.CountLimitedFactory,\ org.castor.cache.simple.UnlimitedFactory,\ org.castor.cache.distributed.FKCacheFactory,\ org.castor.cache.distributed.JcsCacheFactory,\ org.castor.cache.distributed.JCacheFactory,\ org.castor.cache.distributed.CoherenceCacheFactory,\ org.castor.cache.distributed.OsCacheFactory,\ org.castor.cache.hashbelt.FIFOHashbeltFactory,\ org.castor.cache.hashbelt.LRUHashbeltFactory </pre></span> <p><span class="bodyGrey">The DTD declaration to configure caching in Castor mapping is as follows: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <!ELEMENT cache-type ( param* )> <!ATTLIST cache-type type ( none | count-limited | time-limited | unlimited | coherence | fkcache | jcache | jcs | oscache | fifo | lru ) "count-limited" debug (true|false) "false" capacity NMTOKEN #IMPLIED> <!ELEMENT param EMPTY> <!ATTLIST param name NMTOKEN #REQUIRED value NMTOKEN #REQUIRED></pre></span></td></tr></table></td></tr></table><p></p></span></p> <p><span class="bodyGrey">In difference to all other cache types the <b>fifo</b> and <b>lru</b> cache types offer various configuration options. Both of them have 6 parameters to configure their behaviour.</span></p> <table bgcolor="#7270c2" cellpadding="2" cellspacing="1" width="100%" border="0"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" width="100%" border="0"><caption></caption><tr class="cheader"><td class="cheader">parameter</td><td class="cheader">description</td></tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">containers</span></td> <td><span class="bodyGrey">The number of containers in the conveyor belt. For example: If a box will drop off of the conveyor belt every 30 seconds, and you want a cache that lasts for 5 minutes, you want 5 / 30 = 6 containers on the belt. Every 30 seconds, another, clean container goes on the front of the conveyor belt, and everything in the last belt gets discarded. If not specified 10 containers are used by default. <br> For systems with fine granularity, you are free to use a large number of containers; but the system is most efficient when the user decides on a "sweet spot" determining both the number of containers to be managed on the whole and the optimal number of buckets in those containers for managing. This is ultimately a performance/accuracy tradeoff with the actual discard-from-cache time being further from the mark as the rotation time goes up. Also the number of objects discarded at once when capacity limit is reached depends upon the number of containers. </span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">capacity</span></td> <td><span class="bodyGrey">Maximum capacity of the whole cache. If there are, for example, ten containers on the belt and the capacity has been set to 1000, each container will hold a maximum of 1000/10 objects. Therefore if the capacity limit is reached and the last container gets droped from the belt there are up to 100 objects discarted at once. By default the capacity is set to 0 which causes capacity limit to be ignored so the cache can hold an undefined number of objects. </span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">ttl</span></td> <td><span class="bodyGrey">The maximum time an object lifes in cache. If the are, for example, ten containers and ttl is set to 300 seconds (5 minutes), a new container will be put in front of the belt every 300/10 = 30 seconds while another is dropped at the end at the same time. Due to the granularity of 30 seconds, everything just until 5 minutes 30 seconds will also end up in this box. The default value for ttl is 60 seconds. If ttl is set to 0 which means that objects life in cache for unlimited time and may only discarded by a capacity limit. </span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">monitor</span></td> <td><span class="bodyGrey">The monitor intervall in minutes when hashbelt cache rports the current number of containers used and objects cached. If set to 0 (default) monitoring is disabled. </span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">container-class</span></td> <td><span class="bodyGrey">The implementation of <b>org.castor.cache.hashbelt.container.Container</b> interface to be used for all containers of the cache. Castor provides the following 3 implementations of the Container interface. <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey"> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">org.castor.cache.hashbelt.container.FastIteratingContainer</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">org.castor.cache.hashbelt.container.MapContainer</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">org.castor.cache.hashbelt.container.WeakReferenceContainer</span></td></tr> </span></table> If not specified the MapContainer will be used as default. </span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">reaper-class</span></td> <td><span class="bodyGrey">Specific reapers yield different behaviors. The GC reaper, the default, just dumps the contents to the garbage collector. However, custom implementations may want to actually do something when a bucket drops off the end; see the javadocs on other available reapers to find a reaper strategy that meets your behavior requirements. Apart of the default <b>org.castor.cache.hashbelt.reaper.NullReaper</b> we provide 3 abstract implementations of <b>org.castor.cahe.hashbelt.reaper.Reaper</b> interface: <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey"> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">org.castor.cache.hashbelt.reaper.NotifyingReaper</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">org.castor.cache.hashbelt.reaper.RefreshingReaper</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">org.castor.cache.hashbelt.reaper.ReinsertingReaper</span></td></tr> </span></table> to be extended by your custom implementation. </span></td> </tr></table></td></tr></table> <p><span class="bodyGrey">A <b>fifo</b> cache with default values explained above is specified by: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="fifo"/></pre></span></td></tr></table></td></tr></table><p></p></span></p> <p><span class="bodyGrey">A <b>lru</b> cache with capacity=300 and ttl=300 is defined by: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="lru" capacity="300"/></pre></span></td></tr></table></td></tr></table><p></p> or better by: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="lru"/> <param name="capacity" value="300"/> <param name="ttl" value="300"/> </cache-type></pre></span></td></tr></table></td></tr></table><p></p></span></p> <p><span class="bodyGrey">An example of a customized configuration of a <b>fifo</b> cache is: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="fifo"/> <param name="container" value="10"/> <param name="capacity" value="1000"/> <param name="ttl" value="600"/> <param name="monitor" value="5"/> <param name="container-class" value="org.castor.cache.hashbelt.container.WeakReferenceContainer"/> <param name="reaper-class" value="org.castor.cache.hashbelt.reaper.NullReaper"/> </cache-type></pre></span></td></tr></table></td></tr></table><p></p></span></p> <h2>Code cleanup</h2> <p><span class="bodyGrey">We removed following classes and methods that had been deprecated for a while now. </span></p> <table bgcolor="#7270c2" cellpadding="2" cellspacing="1" width="100%" border="0"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" width="100%" border="0"><caption></caption><tr class="cheader"><td class="cheader">removed</td><td class="cheader">replacement</td></tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">Throwable CastorException.getException()</span></td> <td><span class="bodyGrey">Throwable CastorException.getClause()</span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">Object Database.load(Class, Object, short)</span></td> <td><span class="bodyGrey">Object Database.load(Class, Object, AccessMode)</span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">void JDOManager.setConfiguration(InputSource)</span></td> <td><span class="bodyGrey">no replacement</span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">QueryResults Query.execute(short)</span></td> <td><span class="bodyGrey">QueryResults Query.execute(AccessMode)</span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">QueryResults Query.execute(short, boolean)</span></td> <td><span class="bodyGrey">QueryResults Query.execute(AccessMode, boolean)</span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">org.exolab.castor.jdo.Utils</span></td> <td><span class="bodyGrey">org.castor.jdo.util.JDOUtils</span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">org.exolab.castor.util.JdoConfFactory</span></td> <td><span class="bodyGrey">org.castor.jdo.util.JDOConfFactory</span></td> </tr></table></td></tr></table> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1368">1368</a></td><td>20060322</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Extract creation and execution of SQL satements from SQLEngine. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1369">1369</a></td><td>20060323</td><td><a href="mailto:svalchkov %0A AT%0A gmail%0A DOT%0A com">Stoil Valchkov</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed NPE in case of extension of union. <br><i><b>Reporter: </b><a href="mailto:svalchkov %0A AT%0A gmail%0A DOT%0A com">Stoil Valchkov</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-824">824</a></td><td>20060322</td><td><a href="mailto:benoit %0A AT%0A synclude%0A DOT%0A com">Benoit Maisonny</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Improved exception handling in UnmarshallHandler <br><i><b>Reporter: </b><a href="mailto:benoit %0A AT%0A synclude%0A DOT%0A com">Benoit Maisonny</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1281">1281</a></td><td>20060321</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Introduced new org.castor.util.Configuration. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1356">1356</a></td><td>20060316</td><td><a href="mailto:bruce DOT snyder AT gmail DOT com">Bruce Snyder</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed false alarm log message at DatabaseImpl.finalize. <br><i><b>Reporter: </b><a href="mailto:bruce DOT snyder AT gmail DOT com">Bruce Snyder</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1363">1363</a></td><td>20060316</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Removed deprecated classes and methods. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1364">1364</a></td><td>20060316</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed wrong generation of 'setFixed(String)'-method for XSNormalizeStrings. <br><i><b>Reporter: </b><a href="mailto:t.lehmann %0A AT%0A gamnet%0A DOT%0A de">Thomas Lehmann</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1360">1360</a></td><td>20060314</td><td><a href="mailto:"></a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with missing class file in XML jar. <br><i><b>Reporter: </b><a href="mailto:Uwe.Langbecker %0A AT%0A gl-group%0A DOT%0A com">Uwe Langbecker</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-867">867</a></td><td>20060315</td><td><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added cache implementation for large cache sizes. <br><i><b>Reporter: </b><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1345">1345</a></td><td>20060315</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Refactored redundant code in *DatabaseImpl classes <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1089">1089</a></td><td>20060308</td><td><a href="mailto:ttelcik %0A AT%0A hbf%0A DOT%0A com%0A DOT%0A au">Tim Telcik</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Revised SQL statement used by IdentityKeyGenerator for IBM DB2. <br><i><b>Reporter: </b><a href="mailto:ttelcik %0A AT%0A hbf%0A DOT%0A com%0A DOT%0A au">Tim Telcik</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1345">1345</a></td><td>20060310</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Refactored DatabaseImpl into Local/GlobaldatabaseImpl. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1354">1354</a></td><td>20060314</td><td><a href="mailto:scbash %0A AT%0A gmail%0A DOT%0A com">Stephen Bash</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Add HOW-TO on using identities and references in XML <br><i><b>Reporter: </b><a href="mailto:scbash %0A AT%0A gmail%0A DOT%0A com">Stephen Bash</a></i></td><td>Enh.</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1353">1353</a></td><td>20060311</td><td><a href="mailto:scbash %0A AT%0A gmail%0A DOT%0A com">Stephen Bash</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed incorrect DOCTYPE references in various XML Mapping docs. <br><i><b>Reporter: </b><a href="mailto:scbash %0A AT%0A gmail%0A DOT%0A com">Stephen Bash</a></i></td><td>Enh.</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1352">1352</a></td><td>20060311</td><td><a href="mailto:scbash %0A AT%0A gmail%0A DOT%0A com">Stephen Bash</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Add HOW-TO on how to fetch DTDs from JAR file <br><i><b>Reporter: </b><a href="mailto:scbash %0A AT%0A gmail%0A DOT%0A com">Stephen Bash</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1350">1350</a></td><td>20060311</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added UTF test of IdentityMap.entrySet. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1347">1347</a></td><td>20060310</td><td><a href="mailto:adam %0A AT%0A monkey%0A DOT%0A org">Adam Kramer</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed issue with XMLDescriptor generating wrong method name 'getElementDefinition' instead of 'isElementDefinition'. <br><i><b>Reporter: </b><a href="mailto:adam %0A AT%0A monkey%0A DOT%0A org">Adam Kramer</a></i></td><td>Bug</td><td></td><td>JDO</td></tr></table></td></tr></table><br> <br><hr><h1>Release 1.0M3</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>3rd milestone release for Castor 1.0</td></tr><tr><td>released:</td><td>March 07, 2006</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Requirements</h2> <h3>Introduced <font color="red">Java 1.4</font> as a dependecy</h3> <p><span class="bodyGrey">As we have started to add some features that more or less depend on features made available with Java 1.4 (only), such as the JDBC 3.0 API enhancements, we have made Java 1.4 a key requiremnt for the upcoming Castor 1.0 release.</span></p> <p><span class="bodyGrey">This decision is a result of a discussion on the mailing lists a couple of months ago, where nobody was voicing any objections.</span></p> <h2>Additions</h2> <h3>Added support for OSCache</h3> <p><span class="bodyGrey">By specifing <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="oscache"/></pre></span></td></tr></table></td></tr></table><p></p> at class mapping you can now use OSCache with Castor JDO.</span></p> <h3>Added 'abstract/concrete' annotation to XMLDescriptor</h3> <p><span class="bodyGrey">With this addition, it is now possibel to query whether a particular XML element (represented by an XMLClassDesscriptor internally) is <i>abstract</i> or <i>concrete</i>, that is (in the context of source generation) a result of a <complexType> definition or an <element> declaration. This is particularly relevant for tool providers who need to integrate with Castor XML, and as a result of this addition can now use the new <tt>isElementDefinition()</tt> method to query an artifact's state.</span></p> <h3>New XML HOW-TOs added</h3> <p><span class="bodyGrey">Added XML HOW-TOs for mapping collections and maps.</span></p> <h3>Added new SAX2EventProducer interface</h3> <p><span class="bodyGrey">Added new <a href="javadoc/org/exolab/castor/xml/SAX2EventProducer.html"><api>org.exolab.castor.xml.SAX2EventProducer</api></a> interface to allow passing SAX 2 events to Castor XML, deprecating the existing <a href="javadoc/org/exolab/castor/xml/EventProducer.html"><api>org.exolab.castor.xml.EventProducer</api></a> interface at the same time. At the same time, a new <a href="javadoc/org/exolab/castor/xml/Unmarshaller.html#unmarshal(SAX2EventProducer)">unmarshal(SAX2EventProducer)</a> method has been added to <a href="javadoc/org/exolab/castor/xml/Unmarshaller.html"><api>org.exolab.castor.xml.Unmarshaller</api></a>, deprecating the existing <a href="javadoc/org/exolab/castor/xml/Unmarshaller.html#unmarshal(EventProducer)">unmarshal(EventProducer)</a> method at the same time.</span></p> <h3>Added support for postgreSQL to identity key generator</h3> <p><span class="bodyGrey">Added support for the postgreSQL column type 'SERIAL' to the identity key generator. With this change, it's now possible to use the identity key generator with postgreSQL on columns with type 'SERIAL'. Castor internally will issue a call to</span></p> <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> SELECT currval('<table_name>_id_seq') </pre></span></td></tr></table></td></tr></table><p></p> <p><span class="bodyGrey">to automatically retrieve the value assigned due to 'SERIAL' column during the insert operation.</span></p> <h3>Added fully self-contained Castor JDO sample application</h3> <p><span class="bodyGrey">Added new ZIP archive to distribution that contains a fully self-contained Castor JDO sample applicationthat runs against an embedded Apache Derby database.</span></p> <p><span class="bodyGrey">Simply download the the archive, unpack it, and in the target directory created, execute 'java -jar castor-1.0M2-examples.jar' to have the test executed. This will (magically) create a Derby database (on-the-fly) and use it to execute the Castor JDO code against it.</span></p> <h3>Added additional syntax for specifying identity columns</h3> <p><span class="bodyGrey">In addition to the current way of specifying the identity column(s) for a given class, it is now possible to declare a field to be part of the identity as shown below:</span></p> <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <class name="ctf.jdo.tc1x.Parent"> <description>Entite one</description> <map-to table="tc1x_entity1" xml="entity1" /> <field name="id" type="integer" identity="true"> <sql name="id" type="integer"/> </field> <field name="name" type="string"> <sql name="name" type="char" /> </field> </class> </pre></span></td></tr></table></td></tr></table><p></p> <h3>Added collection type 'iterator' (java.util.Iterator) to Castor JDO</h3> <p><span class="bodyGrey">It is now possible to define a one-to-many relation with a collection type of 'iterator'. This allows the access of custom collection classes that are not supported through the standard collection types through Castor JDO.</span></p> <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <field name="children" type="some.domain.custom.Class" collection="iterator"> <sql ... /> </field> </pre></span></td></tr></table></td></tr></table><p></p> <h3>Added collection type 'enumerate' (java.util.Enumeration) to Castor JDO</h3> <p><span class="bodyGrey">It is now possible to define a one-to-many relation with a collection type of 'enumerate'.</span></p> <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <field name="children" type="some.domain.custom.Class" collection="enumerate"> <sql ... /> </field> </pre></span></td></tr></table></td></tr></table><p></p> <h3>Added WeblogicXMLSerializerFactory</h3> <p><span class="bodyGrey">To use the Xerces implementation delivered with Weblogic 7 and 8 you have to change castor.properties file to contain the following entry:</span></p> <span class="bodyBlack"><pre> # Defines the (default) XML serializer factory to use by Castor, # which must implement org.exolab.castor.xml.SerializerFactory; # default is org.exolab.castor.xml.XercesXMLSerializerFactory org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.wls8.WeblogicXercesXMLSerializerFactory </pre></span> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1330">1330</a></td><td>20060307</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with prioritizing delete operations. <br><i><b>Reporter: </b><a href="mailto:rsanz %0A AT%0A cein%0A DOT%0A es">Raúl Sanz de Acedo Pérez</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1341">1341</a></td><td>20060306</td><td><a href="mailto:augustd %0A AT%0A codemagi%0A DOT%0A com">August Detlefsen</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed issue with bad dates being persisted in Oracle 9.2. <br><i><b>Reporter: </b><a href="mailto:augustd %0A AT%0A codemagi%0A DOT%0A com">August Detlefsen</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1186">1186</a></td><td>20060228</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added support for OSCache. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1333">1333</a></td><td>20060223</td><td><a href="mailto:thomas.tatzel %0A AT%0A db%0A DOT%0A com">Thomas Tatzel</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed inconsistency related to not calling setPreserveWhiteSpace(true) in Unmarshaller.unmarshal(Class, Node) <br><i><b>Reporter: </b><a href="mailto:thomas.tatzel %0A AT%0A db%0A DOT%0A com">Thomas Tatzel</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-962">962</a></td><td>20060223</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Improved code quality of DataObjectAccessException. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1328">1328</a></td><td>20060222</td><td><a href="mailto:adam %0A AT%0A monkey%0A DOT%0A org">Adam Kramer</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added property to XMLClassDescriptor to distinguish whether XML artefact represented is abstract/concrete <br><i><b>Reporter: </b><a href="mailto:adam %0A AT%0A monkey%0A DOT%0A org">Adam Kramer</a></i></td><td>Enh</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1159">1159</a></td><td>20060222</td><td><a href="mailto:codehaus %0A AT%0A kleppmann%0A DOT%0A de">Martin Kleppmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with range checking in code generated for collections. <br><i><b>Reporter: </b><a href="mailto:codehaus %0A AT%0A kleppmann%0A DOT%0A de">Martin Kleppmann</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1329">1329</a></td><td>20060222</td><td><a href="mailto:robby.pelssers %0A AT%0A vodafone%0A DOT%0A com">Robby Pelssers</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added XML HOW-TOs for mapping collections and maps. <br><i><b>Reporter: </b><a href="mailto:robby.pelssers %0A AT%0A vodafone%0A DOT%0A com">Robby Pelssers</a></i></td><td>Enh</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1326">1326</a></td><td>20060221</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added new EventProducer2 interface to allow streaming of SAX 2 events into Castor XML <br><i><b>Reporter: </b><a href="mailto:achepati67 %0A AT%0A yahoo%0A DOT%0A es">David Leal</a></i></td><td>Enh</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1127">1127</a></td><td>20060221</td><td><a href="mailto:ttelcik %0A AT%0A hbf%0A DOT%0A com%0A DOT%0A au">Tim Telcik</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for non-numeric identities to sequence key generator <br><i><b>Reporter: </b><a href="mailto:ttelcik %0A AT%0A hbf%0A DOT%0A com%0A DOT%0A au">Tim Telcik</a></i></td><td>Enh</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1323">1323</a></td><td>20060221</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed failure in MappingTool that always caused a NullPointerException. <br><i><b>Reporter: </b><a href="mailto:stefan_lober %0A AT%0A yahoo%0A DOT%0A de">Stefan Lober</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-998">998</a></td><td>20060217</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added new ZIP file to distribution that contains fully self-containd Castor JDO sample code running against Apache Derby (embedded). <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1325">1325</a></td><td>20060215</td><td><a href="mailto:">James Adams</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added how to wrap a collection with a wrapper element. <br><i><b>Reporter: </b><a href="mailto:">James Adams</a></i></td><td>Enh.</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1324">1324</a></td><td>20060215</td><td><a href="mailto:thierry.guerin %0A AT%0A prima-solutions%0A DOT%0A com">Thierry Guerin</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added WeblogicXMLSerializerFactory. <br><i><b>Reporter: </b><a href="mailto:thierry.guerin %0A AT%0A prima-solutions%0A DOT%0A com">Thierry Guerin</a></i></td><td>Enh.</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1322">1322</a></td><td>20060215</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem in Windows batch files related to directory names with spaces. <br><i><b>Reporter: </b><a href="mailto:stefan_lober %0A AT%0A yahoo%0A DOT%0A de">Stefan Lober</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1293">1293</a></td><td>20060214</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed NullPointerException in ClassDescriptorImpl caused by Class.getClassLoader() returning null in some situations. <br><i><b>Reporter: </b><a href="mailto:rutger.lubbers %0A AT%0A vodafone%0A DOT%0A com">Rutger Lubbers</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1232">1232</a></td><td>20060214</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added additional snytax for specifying identity columns <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1314">1314</a></td><td>20060211</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added Castor JDO collection type 'enumerate' (java.util.Enumeration). <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1321">1321</a></td><td>20060211</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Checkstyled recently added classes under org.castor.jdo.driver. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1315">1315</a></td><td>20060210</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added Castor JDO collection type 'iterator' (java.util.Iterator). <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1316">1316</a></td><td>20060210</td><td><a href="mailto:rsanz %0A AT%0A cein%0A DOT%0A es">Raúl Sanz de Acedo Pérez</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added SQL statement logging support for JDBC CallableStatements <br><i><b>Reporter: </b><a href="mailto:rsanz %0A AT%0A cein%0A DOT%0A es">Raúl Sanz de Acedo Pérez</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1317">1317</a></td><td>20060210</td><td><a href="mailto:rsanz %0A AT%0A cein%0A DOT%0A es">Raúl Sanz de Acedo Pérez</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Prevented DatabaseImpl.finalize() from logging when used with global transactions and database pooling enabled. <br><i><b>Reporter: </b><a href="mailto:rsanz %0A AT%0A cein%0A DOT%0A es">Raúl Sanz de Acedo Pérez</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-475">475</a></td><td>20060207</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with wrongly generated SQL with self-referential objects that are part of an extend hierarchy. <br><i><b>Reporter: </b><a href="mailto:andreas.arrgard %0A AT%0A octagroup%0A DOT%0A com">Andreas Arrgard</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1128">1128</a></td><td>20060203</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem related to the use of 'depend' relations and identity key generators. At the same time, support for postgreSQL has been added to the identity key generator. <br><i><b>Reporter: </b><a href="mailto:nicholas.stuart %0A AT%0A gmail%0A DOT%0A com">Nick Stuart</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1310">1310</a></td><td>20060206</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td>Added identity key generator support for Borland Pointbase to Castor JDO.<br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr></table></td></tr></table><br> <br><hr><h1>Release 1.0M2</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>2nd milestone release for Castor 1.0</td></tr><tr><td>released:</td><td>Febraury 03, 2006</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Additions</h2> <h3>Support for <tt>java.util:list as collection type</tt></h3> <p><span class="bodyGrey">Added support for <tt>java.util.List</tt> as collection type for Castor XML.</span></p> <h3>Support for Borland Pointbase</h3> <p><span class="bodyGrey">Support for Borland's Pointbase has been added. For initial information about configuration of Castor JDO for the use with Borland's Pointbase, please see <tt>src/tests/jdo/pointbse.xml</tt>.</span></p> <h3>Added isLocked (CLass, Object) method to Database interface</h3> <p><span class="bodyGrey">This new method allows to check, whether a particular object (as identified by the object identity and the object class) is currently locked with Castor JDO.</span></p> <h3>Added documentation about Castor JDO Persistence interface</h3> <p><span class="bodyGrey">Added a section about the various methods available on the Persistence interface to the HTML docs.</span></p> <h3>Allowed case insensitive lookups of enumerated type values</h3> <p><span class="bodyGrey">With 'case-insensitive' commandline option of source generator you are now able to instruct Castor to use case insensitive lookups for enumerated type values.</span></p> <h2>Changes</h2> <p><span class="bodyGrey">As a result of this refactoring, we had to change the way a XMLSerializer is created (instantiated). Rather than letting Castor know about the XMLSerializer to use, as in</span></p> <span class="bodyBlack"><pre> # Defines the default XML serializer to be used by castor # The serializer must implement org.apache.xml.serialize.Serializer # org.exolab.castor.serializer=org.apache.xml.serialize.XMLSerializer </pre></span> <p><span class="bodyGrey">the user is now required to specify an XMLSerialzer factory as follows:</span></p> <span class="bodyBlack"><pre> # Defines the (default) XML serializer factory to use by Castor, # which must implement org.exolab.castor.xml.SerializerFactory; # default is org.exolab.castor.xml.XercesXMLSerializerFactory org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesXMLSerializerFactory </pre></span> <p><span class="bodyGrey">As of this release, we only support the XercesXMLSerializerFactory as shown above, but provide users with three new interfaces (namely <tt>Serializer</tt>,<tt>OutputFormat</tt> and <tt>XMLSerializerFactory</tt>) that need to be implemented to support any other's XML parser custom serialization mechanism.</span></p> <h3>Refactored cache into new org.castor.cache package</h3> <p><span class="bodyGrey">Take care to adjust your custom castor.properties file to reflect the changed packages of CacheFactories.</span></p> <span class="bodyBlack"><pre> # # Cache implementations # org.castor.cache.Factories=\ org.castor.cache.simple.NoCacheFactory,\ org.castor.cache.simple.TimeLimitedFactory,\ org.castor.cache.simple.CountLimitedFactory,\ org.castor.cache.simple.UnlimitedFactory,\ org.castor.cache.distributed.FKCacheFactory,\ org.castor.cache.distributed.JcsCacheFactory,\ org.castor.cache.distributed.JCacheFactory,\ org.castor.cache.distributed.CoherenceCacheFactory </pre></span> <p><span class="bodyGrey">Note: By also moving CacheFactoryRegistry to org.castor.cache package the property has been renamed from 1.0M1 a second time.</span></p> <h3>Changed syntax of cache definition in mapping</h3> <p><span class="bodyGrey">The DTD declaration is as follows: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <!ELEMENT cache-type ( param* )> <!ATTLIST cache-type type ( none | count-limited | time-limited | unlimited | coherence | fkcache | jcache | jcs ) "count-limited" debug (true|false) "false" capacity NMTOKEN #IMPLIED> <!ELEMENT param EMPTY> <!ATTLIST param name NMTOKEN #REQUIRED value NMTOKEN #REQUIRED></pre></span></td></tr></table></td></tr></table><p></p></span></p> <p><span class="bodyGrey">The new syntax is still backward compatible to the old one but allows to enable debugging of cache access for a specific class as well as passing individual configuration parameters to each cache instance. Only <b>count-limited</b> and <b>time-limited</b> of the current cache types support parameters. Parameter names are case sensitive and are silently ignored if they are unknown to a cache type.</span></p> <p><span class="bodyGrey">It need to be noted that there are 3 parameter names that are reserved for internal use. If you specify a parameter with one of the names: <b>type</b>, <b>name</b> or <b>debug</b> their value will silently be overwritten with another one used internally.</span></p> <p><span class="bodyGrey">A <b>count-limited</b> least-recently-used cache (LRU) for 500 objects can be specified by: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="count-limited" capacity="500"/></pre></span></td></tr></table></td></tr></table><p></p> or <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="count-limited"/> <param name="capacity" value="500"/> </cache-type></pre></span></td></tr></table></td></tr></table><p></p> If both, the capacity attribute and parameter with name="capacity" is specified, the parameter value takes precedence over the attribute value.</span></p> <p><span class="bodyGrey">A <b>time-limited</b> first-in-first-out cache (FIFO) that expires objects after 15 minutes can be specified by: <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="time-limited" capacity="900"/></pre></span></td></tr></table></td></tr></table><p></p> or <p></p><table bgcolor="#7270c2" cellpadding="1" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="4" cellspacing="1" border="0" width="100%"><tr><td><span class="bodyBlack"><pre> <cache-type type="time-limited"/> <param name="ttl" value="900"/> </cache-type></pre></span></td></tr></table></td></tr></table><p></p> If both, the capacity attribute and parameter with name="ttl" is specified, the parameter value takes precedence over the attribute value.</span></p> <p><span class="bodyGrey">The <b>debug</b> attribute can be used to enable debugging for objects of a single class only, as described below.</span></p> <h3>Added debugging of cache access</h3> <p><span class="bodyGrey">If you like to get debug messages for every access to cache independend of the caches type or the class of the object that is accessed you only need to set logging level of <b>org.castor.cache</b> to debug. As this may lead to lots of debug messages, you are not interested in, there are 2 options to reduce the number of the messages.</span></p> <p><span class="bodyGrey">If you are interested in all accesses to a specific cache type you set the logging level of this implementation to debug.</span></p> <p><span class="bodyGrey">To get debug messages of accesses to objects of a specific class there are 2 things you need to do. To be able to get debug messages at all you need to set logging level of <b>org.castor.cache.Cache</b> to debug first. Then you only need to set the debug attribute of the class you are interested in to <b>true</b> in the mapping.</span></p> <p><span class="bodyGrey">Note: By allowing to pass individual configuration properties from mapping to cache we again changed the way debugging is enabled. The property in castor.properties file from relaese 1.0M1 is no longer supported.</span></p> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1310">1310</a></td><td>20060206</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added identity key generator support for Borland Pointbase to Castor JDO. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1305">1305</a></td><td>20060201</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for Borland Pointbase to Castor JDO. <br><i><b>Reporter: </b><a href="mailto:jgreene %0A AT%0A cwjamaica%0A DOT%0A com">John</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1238">1238</a></td><td>20060202</td><td><a href="mailto:Ulrich.Post %0A AT%0A softwareag%0A DOT%0A com">Ulrich Post</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Allowed restricting an complexType with complexContent to complexType with simpleContent. <br><i><b>Reporter: </b><a href="mailto:Ulrich.Post %0A AT%0A softwareag%0A DOT%0A com">Ulrich Post</a></i></td><td>Enh.</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-903">903</a></td><td>20060131</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added documentation about Castor JDO Persistence interface. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1288">1288</a></td><td>20060130</td><td><a href="mailto:willowmck %0A AT%0A yahoo%0A DOT%0A com">Will McKinley</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Allowed case insensitive lookups for enumerated type values. <br><i><b>Reporter: </b><a href="mailto:willowmck %0A AT%0A yahoo%0A DOT%0A com">Will McKinley</a></i></td><td>Enh.</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1308">1308</a></td><td>20060130</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed NullPointerException in MappingTool. <br><i><b>Reporter: </b><a href="mailto:mike.wannamaker %0A AT%0A kingston%0A DOT%0A hummingbird%0A DOT%0A com">Mike Wannamaker</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-785">785</a></td><td>20060129</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Move class loading code for Castor JDO to a single utility class <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1282">1282</a></td><td>20060127</td><td><a href="mailto:bash %0A AT%0A ll%0A DOT%0A mit%0A DOT%0A edu">Stephen Bash</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added HOW-TO document for enabling XML parser validation. <br><i><b>Reporter: </b><a href="mailto:bash %0A AT%0A ll%0A DOT%0A mit%0A DOT%0A edu">Stephen Bash</a></i></td><td>Bug</td><td></td><td>Enh.</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1139">1139</a></td><td>20060127</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added Database.isLocked(Class, Object) method. <br><i><b>Reporter: </b><a href="mailto:andre.teubner %0A AT%0A web%0A DOT%0A de">Andre Teubner</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1304">1304</a></td><td>20060127</td><td><a href="mailto:clovis.wichoski %0A AT%0A gmail%0A DOT%0A com">Clovis Wichosky</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed some errors in some XML files. <br><i><b>Reporter: </b><a href="mailto:clovis.wichoski %0A AT%0A gmail%0A DOT%0A com">Clovis Wichosky</a></i></td><td>Bug</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1268">1268</a></td><td>20060124</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Replaced incorrect use of URL.toString() with URL.toExternalForm(). <br><i><b>Reporter: </b><a href="mailto:trygvis %0A AT%0A codehaus%0A DOT%0A org">Trygve Laugstol</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-379">379</a></td><td>20060124</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Improved exception handling by chaining original exception. <br><i><b>Reporter: </b><a href="mailto:nicolas %0A AT%0A marchildon%0A DOT%0A net">Nicolas Marchildon</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1267">1267</a></td><td>20060121</td><td><a href="mailto:wleng %0A AT%0A metatomix%0A DOT%0A com">Bill Leng</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed bug in SourceGenerator that caused xsd:enumeration values for NMTOKENS and integer being created with wrong type. <br><i><b>Reporter: </b><a href="mailto:wleng %0A AT%0A metatomix%0A DOT%0A com">Bill Leng</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1303">1303</a></td><td>20060121</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Code cleanup at SQLEngine. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1301">1301</a></td><td>20060119</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> De-deprecated getDatabasePooling() and setDatabasePooling(boolean) methods. <br><i><b>Reporter: </b><a href="mailto:rsanz %0A AT%0A cein%0A DOT%0A es">Raúl Sanz de Acedo Pérez</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1292">1292</a></td><td>20060118</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with SQL generated for classes that are part of an extend hierarchy. <br><i><b>Reporter: </b><a href="mailto:dematte %0A AT%0A ieee%0A DOT%0A org">Lorenzo Dematte</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1273">1273</a></td><td>20060108</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Removed compile & runtime dependencies for Apache Xerces. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1300">1300</a></td><td>20060114</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed NPE in SourceCodeGenerator. <br><i><b>Reporter: </b><a href="mailto:jason.boutwell %0A AT%0A comcast%0A DOT%0A net">Jason Boutwell</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1272">1272</a></td><td>20060113</td><td><a href="mailto:code %0A AT%0A obtiva%0A DOT%0A com">Kevin Taylor</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for List interface during marshalling of collections <br><i><b>Reporter: </b><a href="mailto:code %0A AT%0A obtiva%0A DOT%0A com">Kevin Taylor</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1299">1299</a></td><td>20060107</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Allowed to specify individual parameters for cache initialization in mapping. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1280">1280</a></td><td>20060106</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Made CacheRegistry non static. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1298">1298</a></td><td>20060105</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added ReadWriteLock's and ConcurrentHashMap from Doug Lea. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-551">551</a></td><td>20060104</td><td><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Removed exception-dependency in Parser and Lexer including some code improvements. <br><i><b>Reporter: </b><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1289">1289</a></td><td>20051231</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed problem with generated ClassChoice instances. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1218">1218</a></td><td>20051228</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Moved all script/batch files to new bin directory. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh.</td><td></td><td>All</td></tr></table></td></tr></table><br> <br><hr><h1>Release 1.0M1</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>Milestone release for Castor XML and JDO</td></tr><tr><td>released:</td><td>December 22, 2005</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>New features</h2> <h3>Support for collections of type 'SortedSet' (incl. use of Comparator)</h3> <p><span class="bodyGrey">Support has been added for the new collection type 'sortedset'. This allows users of Castor (XML and JDO) to use collections of type <tt>java.util.SortedSet</tt> to allow for automatic ordering of the collection upon e.g. insertion of the data.</span></p> <p><span class="bodyGrey">User can either specify a <tt>java.util.Comparator</tt> instance using the <i>comparator</i> attribute on the field mapping, or make the entities stored within the <tt>SortedSet</tt> implement <tt>java.util.Comparable</tt>.</span></p> <h2>Changes</h2> <h3>Moved JDO configuration from org.exolab.castor to org.castor package</h3> <p><span class="bodyGrey">With this refactoring JDOConfFactory has also been moved from <b>org.exolab.castor.jdo.util</b> to <b>org.castor.jdo.util</b> package. In addition we allowed to specify a name attribute on the jdo-conf tag that will be used in future to distinguish between different configurations.</span></p> <h3>Refactored cache into new org.castor.cache package</h3> <p><span class="bodyGrey">Take care to adjust your custom castor.properties file to reflect the changed packages of CacheFactories.</span></p> <span class="bodyBlack"><pre> # # Cache implementations # org.castor.jdo.cacheFactories=\ org.castor.cache.simple.NoCacheFactory,\ org.castor.cache.simple.TimeLimitedFactory,\ org.castor.cache.simple.CountLimitedFactory,\ org.castor.cache.simple.UnlimitedFactory,\ org.castor.cache.distributed.FKCacheFactory,\ org.castor.cache.distributed.JcsCacheFactory,\ org.castor.cache.distributed.JCacheFactory,\ org.castor.cache.distributed.CoherenceCacheFactory </pre></span> <h3>Added debugging of cache access</h3> <p><span class="bodyGrey">By setting the property <b>org.castor.jdo.cacheDebug</b> to <b>true</b> you are able to get debug messages for every cache access in the configured log.</span></p> <span class="bodyBlack"><pre> # # True if proxy class should be used to debug access to cache # (default: false). # #org.castor.jdo.cacheDebug=false </pre></span> <h3>Moved transaction manager from org.exolab.castor to org.castor package</h3> <p><span class="bodyGrey">Take care to adjust your custom castor.properties file to reflect the changed packages of TransactionManagerFactories.</span></p> <span class="bodyBlack"><pre> # # TransactionManagerFactory implementations # org.castor.transactionmanager.Factories=\ org.castor.transactionmanager.WebSphereTransactionManagerFactory,\ org.castor.transactionmanager.WebSphere5TransactionManagerFactory,\ org.castor.transactionmanager.WebSphere51TransactionManagerFactory,\ org.castor.transactionmanager.LocalTransactionManagerFactory,\ org.castor.transactionmanager.JNDIENCTransactionManagerFactory,\ org.castor.transactionmanager.JOTMTransactionManagerFactory </pre></span> <p><span class="bodyGrey">In addition a new property has been introduced that allows to configure if the transaction manager shell be acquired instantly when he is registered or lazy when it is needed for the first time.</span></p> <span class="bodyBlack"><pre> # # Shell the TransactionManager be initialized at registration or lazily when # requested for the first time? Defaults to false. # org.castor.transactionmanager.InitializeAtRegistration=false </pre></span> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1274">1274</a></td><td>20051219</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Made TransactionManagerRegistry non static and moved it to org.castor.transactionmanager package. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-719">719</a></td><td>20051213</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added serialVersionUID to serializable classes. <br><i><b>Reporter: </b><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></i></td><td>Bug</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1279">1279</a></td><td>20051206</td><td><a href="mailto:dbrosius %0A AT%0A qis%0A DOT%0A net">Dave Brosius</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Removed some unnecessary object constructions and removed manual array copy. <br><i><b>Reporter: </b><a href="mailto:dbrosius %0A AT%0A qis%0A DOT%0A net">Dave Brosius</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1278">1278</a></td><td>20051206</td><td><a href="mailto:dbrosius %0A AT%0A qis%0A DOT%0A net">Dave Brosius</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Allowed java to be on a path with spaces. <br><i><b>Reporter: </b><a href="mailto:dbrosius %0A AT%0A qis%0A DOT%0A net">Dave Brosius</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1240">1240</a></td><td>20051206</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for specifying a java.util.Comparator instance for sortedset collections. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1230">1230</a></td><td>20051201</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactored cache to implement java.util.Map interface into new org.castor.cache package. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1271">1271</a></td><td>20051201</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with special mappings that have a 'foreign' relation as first field mapping. <br><i><b>Reporter: </b><a href="mailto:mailto:xiaoyong.liang %0A AT%0A 1cm%0A DOT%0A com%0A DOT%0A cn">Sean</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1171">1171</a></td><td>20051126</td><td><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactored SQLTypes into SQLTypeInfos and SQLTypeConverters. <br><i><b>Reporter: </b><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1265">1265</a></td><td>20051125</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with OQL queries and CALL SQL statements <br><i><b>Reporter: </b><a href="mailto:mailto:xiaoyong.liang %0A AT%0A 1cm%0A DOT%0A com%0A DOT%0A cn">Sean</a></i></td><td>Bug.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-766">766</a></td><td>20051124</td><td><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactored TransactionContext into an interface and global/local implementations. <br><i><b>Reporter: </b><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1264">1264</a></td><td>20051124</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Resolved problem with keygenerator RETURNING. <br><i><b>Reporter: </b><a href="mailto:helene.wiebe %0A AT%0A t-systems%0A DOT%0A com">Helene Wiebe</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1233">1233</a></td><td>20051021</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for collections of type java.util.SortedSet. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1266">1266</a></td><td>20051119</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Move org.exolab.castor.jdo.conf to org.castor.jdo.conf. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr></table></td></tr></table><br> <br><hr><h1>Release 0.9.9.1</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>Maintenance release for Castor XML and JDO</td></tr><tr><td>released:</td><td>November 15, 2005</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>New features</h2> <h3>Added support for JOTM as transaction manager</h3> <p><span class="bodyGrey">Added support for JOTM as transaction co-ordinator. As a result, the following transaction managers are supported.</span></p> <table bgcolor="#7270c2" cellpadding="2" cellspacing="1" width="100%" border="0"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" width="100%" border="0"><caption></caption><tr class="cheader"><td class="cheader">Name</td><td class="cheader">Description</td></tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">jndi</span></td><td><span class="bodyGrey">TM looked up in the JNDI ENC</span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">websphere</span></td><td><span class="bodyGrey">IBM WebSphere 4 and previous releases</span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">websphere5</span></td><td><span class="bodyGrey">IBM WebSphere 5</span></td> </tr><tr bgcolor="#FFFFFF"> <td><span class="bodyGrey">websphere51</span></td><td><span class="bodyGrey">IBM WebSphere 5.1</span></td> </tr><tr bgcolor="#DDDDDD"> <td><span class="bodyGrey">jotm</span></td><td><span class="bodyGrey">Java Object Transaction Monitor</span></td> </tr></table></td></tr></table> <h3>Improved Database.getIdentity(Object)</h3> <p><span class="bodyGrey">The new implementation of the Database.getIdentity(Object) does not rely on the object being loaded in the same transaction anymore. It is even not required to have an active transaction. The identity will now be determined by calling the getters of the fields defined as identities in the mapping. If a mapping for the objects class could not be found a ClassNotPersistenceCapableException will be thrown. Null is only returned if the objects identity is null.</span></p> <p><span class="bodyGrey"><b>Note:</b>Care should be take if you previously used the null return of Database.getIdentity(Object) to determine if the object has been loaded in the current transaction before.</span></p> <h3>Added helper method to close database</h3> <p><span class="bodyGrey">Added org.castor.jdo.util.JDOUtils.closeDatabase() method to close an open database instance without throwing exceptions. Any active transaction will be silently rolled back.</span></p> <h2>Bugs</h2> <h3>Improved 'caching' of Castor DTDs/XML Schemas</h3> <p><span class="bodyGrey">Added code to DTDResolver so that any URL/URIs against http://castor.org/... will be resolved against (local) files from within the Castor JAR(s).</span></p> <h3>Problem obtaining underlying JDBC connections</h3> <p><span class="bodyGrey">Fixed a problem with obtaining the underlying JDBC connection used by Castor internally when there was no valud transaction. The code has been changed so that a <i>PersistenceException</i> will be thrown to indicate the lack of a valid transaction.</span></p> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1024">1024</a></td><td>20051230</td><td><a href="mailto:rvirostko %0A AT%0A cox%0A DOT%0A net">Ross Virostko</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed issue where whitespace have been deleted by Unmarshaller. <br><i><b>Reporter: </b><a href="mailto:peter %0A AT%0A wyngaard%0A DOT%0A com">Peter Wyngaard</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1241">1241</a></td><td>20051113</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Improved documentation about locking modes. <br><i><b>Reporter: </b><a href="mailto:vishal.madan %0A AT%0A wipro%0A DOT%0A com">Vish Madan</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1247">1247</a></td><td>20051112</td><td><a href="mailto:vishal.madan %0A AT%0A wipro%0A DOT%0A com">Vish Madan</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with releasing object lock due to a LockNotGrantedException. <br><i><b>Reporter: </b><a href="mailto:vishal.madan %0A AT%0A wipro%0A DOT%0A com">Vish Madan</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1239">1239</a></td><td>20051110</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Improved Database.getIdentity(Object) to be able to resolve identity without relying on the object been loaded from the database in the same transaction. <br><i><b>Reporter: </b><a href="mailto:voorth %0A AT%0A xs4all%0A DOT%0A nl">Henk van Voorthujsen</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1260">1260</a></td><td>20051110</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added org.castor.jdo.util.JDOUtils.closeDatabase() helper method. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1259">1259</a></td><td>20051110</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactored org.exolab.castor.jdo.Utils into org.castor.jdo.util.JDOUtils. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1249">1249</a></td><td>20051107</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Included new implementations of Base64Encoder/-Decoder with castor-0.9.9-xml.jar. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1253">1253</a></td><td>20051105</td><td><a href="mailto:aoyong.liang %0A AT%0A 1cm%0A DOT%0A com%0A DOT%0A cn">Sean</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with with using count() in OQL queries that involve extend relations. <br><i><b>Reporter: </b><a href="mailto:aoyong.liang %0A AT%0A 1cm%0A DOT%0A com%0A DOT%0A cn">Sean</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1254">1254</a></td><td>20051103</td><td><a href="mailto:aoyong.liang %0A AT%0A 1cm%0A DOT%0A com%0A DOT%0A cn">Sean</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for distinct keyword in count() functions. <br><i><b>Reporter: </b><a href="mailto:aoyong.liang %0A AT%0A 1cm%0A DOT%0A com%0A DOT%0A cn">Sean</a></i></td><td>New feature</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1256">1256</a></td><td>20051103</td><td><a href="mailto:martin.graney %0A AT%0A leanapps%0A DOT%0A com">Martin Graney</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added non-trivial sample for usage of binding file <br><i><b>Reporter: </b><a href="mailto:martin.graney %0A AT%0A leanapps%0A DOT%0A com">Martin Graney</a></i></td><td>Addition</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1223">1223</a></td><td>20051020</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added TransactionManagerFactory for JOTM. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>New feature</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1220">1220</a></td><td>20051013</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added config entries for http://castor.org/* to DTDResolver. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1219">1219</a></td><td>20051012</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Changed many references to http://castor.exolab.org to http://castor.org <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Bug</td><td></td><td>All</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1224">1224</a></td><td>20051013</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with obtaining JDBC connection when no transaction in progress. <br><i><b>Reporter: </b><a href="mailto:bschlining %0A AT%0A gmail%0A DOT%0A com">Brian Schlining</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1231">1231</a></td><td>20051013</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with SQL generated for OQL queries where only id fields are present. <br><i><b>Reporter: </b><a href="mailto:tranle %0A AT%0A gmail%0A DOT%0A com">Minh Tran-LeJeremy Whitlock</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1216">1216</a></td><td>20051011</td><td><a href="mailto:keith AT kvisco DOT com">Keith Visco</a></td><td><a href="mailto:keith AT kvisco DOT com">Keith Visco</a></td><td> Generated java source files won't compile. <br><i><b>Reporter: </b><a href="mailto:wleng %0A AT%0A metatomix%0A DOT%0A com">Bill Leng</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1153">1153</a></td><td>20051010</td><td><a href="mailto:keith AT kvisco DOT com">Keith Visco</a></td><td><a href="mailto:keith AT kvisco DOT com">Keith Visco</a></td><td> Unable to generate binding using SourceGen. <br><i><b>Reporter: </b><a href="mailto:neiltaylor %0A AT%0A mac%0A DOT%0A com">Neil Taylor</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1152">1152</a></td><td>20051010</td><td><a href="mailto:andrew.fawcett %0A AT%0A coda%0A DOT%0A com">Andrew Fawcett</a></td><td><a href="mailto:">David Green</a></td><td> PropertyChangeListeners for bound properties should not be serialized. <br><i><b>Reporter: </b><a href="mailto:">David Green</a></i></td><td>Bug</td><td></td><td>XML</td></tr></table></td></tr></table><br> <br><hr><h1>Release 0.9.9</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>Feature release for Castor XML and JDO</td></tr><tr><td>released:</td><td>September 22, 2005</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Download & installation instructions</h2> <p><span class="bodyGrey">This is the final 0.9.9 release, a feature release for Castor JDO and XML.</span></p> <p><span class="bodyGrey">Please note that we are providing the usual suspects (binaries, docs and sources) for this release at <a href="http://dist.codehaus.org/castor/0.9.9."> the Codehaus</a>.</span></p> <p><span class="bodyGrey">We are currently planning for a <b>Castor 1.0</b> release in about 8+ weeks, which we mainly see as a bug fix release and a one-time opportunity to get the HTML documentation into a better shape .. ;-).</span></p> <p><span class="bodyGrey">Please note that we have - in addition to the features added and bugs fixed as documented with 0.9.9M1 and 0.9.9M2 - started to makes substantial changes to the project documentation as follows:</span></p> <p><span class="bodyGrey"> <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey"> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Addition of the first Castor JDO HOW-TO pages</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Addition of an initial (hence draft) Castor JDO best practice document</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Addition of a Castor JDO feature page</span></td></tr> </span></table> </span></p> <p><span class="bodyGrey">As mentioned above, these pages are work in progress and shall be expanded for the upcoming 1.0 release.</span></p> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1215">1215</a></td><td>20050919</td><td><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fixed JDO.getDatabase()NullPointerException. <br><i><b>Reporter: </b><a href="mailto:jcscoobyrs %0A AT%0A gmail%0A DOT%0A com">Jeremy Whitlock</a></i></td><td>Bug</td><td></td><td>JDO</td></tr></table></td></tr></table><br> <br><hr><h1>Release 0.9.9M2</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>2nd Milestone release for 0.9.9</td></tr><tr><td>released:</td><td>Sep 13, 2005</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Download & installation instructions</h2> <p><span class="bodyGrey">Please note that we are providing the usual suspects (binaries, docs and sources) for this release at <a href="http://dist.codehaus.org/castor/0.9.9."> the Codehaus</a>. We recommend, though, to download the complete package, as the HTML docs at <a href="http://castor.codehaus.org">the main Castor site</a> has not been updated, and to build the documentation yourself.</span></p> <p><span class="bodyGrey">Preparations for the final release have started. Since the last release candidate, the following problem areas have been addressed.</span></p> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1210">1210</a></td><td>20050907</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Removed references to Poolman from documentation on pooling. </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1195">1195</a></td><td>20050908</td><td><a href="mailto:nicholas.stuart %0A AT%0A gmail%0A DOT%0A com">Nicholas Stuart</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Integrated original test case provided into Castor CTF. </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1207">1207</a></td><td>20050907</td><td><a href="mailto:clovis.wichoski %0A AT%0A gmail%0A DOT%0A com">Clovis Wichosky</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Prefer to use setter with reference type before setter with primitive type if multiple setters are available. <br><i><b>Reporter: </b><a href="mailto:clovis.wichoski %0A AT%0A gmail%0A DOT%0A com">Clovis Wichosky</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1195">1195</a></td><td>20050905</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Fixed problem with class resolution during loading polymorphic objects. </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1071">1071</a></td><td>20050901</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added marketplace section </td><td>Enh</td><td></td><td>General</td></tr></table></td></tr></table><br> <br><hr><h1>Release 0.9.9M1</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>Milestone release for 0.9.9</td></tr><tr><td>released:</td><td>Aug 24, 2005</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Download & installation instructions</h2> <p><span class="bodyGrey">Please note that we are providing the usual suspects (binaries, docs and sources) for this release at <a href="http://dist.codehaus.org/castor/0.9.9."> the Codehaus</a>. We recommend, though, to download the complete package, as the HTML docs at <a href="http://castor.codehaus.org">the main Castor site</a> has not been updated, and to build the documentation yourself.</span></p> <h2>Changes</h2> <h3>Support for polymorphism</h3> <p><span class="bodyGrey">Support for polymorphism has been completely rewritten, allowing you to load objects that are part of an extend relationship by their base types, with Castor JDO returning the actual (leaf) classes.</span></p> <p><span class="bodyGrey">With the following class hierarchy ...</span></p> <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey"> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Server extends Computer</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Laptop extends Computer</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Computer extends Product</span></td></tr> </span></table> <p><span class="bodyGrey">it will be possible to execute OQL queries as follows:</span></p> <span class="bodyBlack"><pre> SELECT product FROM Product product </pre></span> <p><span class="bodyGrey">and Castor JDO will return the actual <tt>Laptop</tt> and <tt>Server</tt> instances. For a complete set of code examples, please review <tt>src/tests/ctf/jdo/tc9x/TestPolymorphism.java</tt>.</span></p> <h3>Updated MANIFEST files</h3> <p><span class="bodyGrey">Both castor-0.x.y.jar and castor-0.x.y-xml.jar now carry an updated and up-to-date MANIFEST file.</span></p> <h2>New features</h2> <h3>Support for Derby</h3> <p><span class="bodyGrey">Support for <a href="http://db.apache.org/derby">Apache Derby</a> (starting with release 10.1.1.0) has been added. For initial information about configuration of Castor JDO for the use with Apache Derby, please see <tt>src/tests/jdo/derby.xml</tt>.</span></p> <p><span class="bodyGrey">Known issues:<br> <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey"> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">No support for LIMIT clause</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">No support for identity key generator (temporarily)</span></td></tr> <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">No support for SELECT .. FOR UPDATE statements.</span></td></tr> </span></table> </span></p> <h3>Added support for distributed caches</h3> <p><span class="bodyGrey">As of this release, four new cache types have been added:</span></p> <p><span class="bodyGrey"> <ol> <li>Tangosol Coherence (coherence)</li> <li>JCache (jcache)</li> <li>FKCache (fkcache)</li> <li>JCS (jcs)</li> </ol> </span></p> <p><span class="bodyGrey">As some of these cache implementations allow you to use it in a distributed mode, this allows Castor JDO to be used in a clustered (multi-JVM) environment. In such an environment, Castor JDO wil make use of the underlying cache provider to replicate/distribute the cache content between the various JDOManager instances.</span></p> <h3>Support for transient attribute for <sql> mappings</h3> <p><span class="bodyGrey">Support for the <tt>transient</tt> attribute has been added to the <sql> element has been added. This allows you to define a field mapping as follows:</span></p> <span class="bodyBlack"><pre> <field name="prop1" type="string"> <sql name="prop_1" <font color="red">transient="true"</font> /> <bind-xml name="property1" /> </field> </pre></span> <p><span class="bodyGrey">allowing you to include a field for XML un-/marshalling, but exclude it from persistence.</span></p> <h3>Support for typesafe enumerations</h3> <p><span class="bodyGrey">Enumerations are a common method for ensuring data integrity, both in software and in relational databases. As a platform for linking the two, we added support for persisting class fields whose type is a Java typesafe enumeration to Castor JDO.</span></p> <p><span class="bodyGrey">To use this new feature your typesafe enumeration should follow the enum pattern commonly used and provide a <tt>static valueOf(String)</tt> method. An enum of different kinds of computer equipment may look like:</span></p> <span class="bodyBlack"><pre> public class KindEnum { private static final Map KINDS = new HashMap(); public static final KindEnum MOUSE = new KindEnum("Mouse"); public static final KindEnum KEYBOARD = new KindEnum("Keyboard"); public static final KindEnum COMPUTER = new KindEnum("Computer"); public static final KindEnum PRINTER = new KindEnum("Printer"); public static final KindEnum MONITOR = new KindEnum("Monitor"); private final String _kind; private KindEnum(final String kind) { _kind = kind; KINDS.put(kind, this); } public static KindEnum valueOf(final String kind) { return (KindEnum) KINDS.get(kind); } public String toString() { return _kind; } } </pre></span> <p><span class="bodyGrey">At your Product class you may want to have a property that tells you what kind of computer equipment a product is of.</span></p> <span class="bodyBlack"><pre> public class Product { private int _id; private String _name; private KindEnum _kind; public Product() { } public int getId() { return _id; } public void setId(int id) { _id = id; } public String getName() { return _name; } public void setName(String name) { _name = name; } public KindEnum getKind() { return _kind; } public void setKind(KindEnum kind) { _kind = kind; } } </pre></span> <p><span class="bodyGrey">Your mapping for the Product class should be:</span></p> <span class="bodyBlack"><pre> <class name="Product" identity="id"> <description>Product with kind enum</description> <map-to table="enum_prod"/> <field name="id" type="integer"> <sql name="id" type="integer"/> </field> <field name="name" type="string"> <sql name="name" type="char"/> </field> <field name="kind" type="KindEnum"> <sql name="kind" type="char"/> </field> </class> </pre></span> <p><span class="bodyGrey">To add this new feature we added an additional check when searching for field types. Like before Castor first searches for know types and thereafter for a mapping for the class you specified as type. If both of them do not match it now checks if the class specified as type is available at classpath and has a static valueOf(String) method. Only if all of this conditions are met it will be viewed as a valid mapping.</span></p> <h3>Parametrized boolean->char type converter</h3> <p><span class="bodyGrey">Pre patch we always returned a boolean value even if the database contained a value which does not conform to the rules defined. This behaviour caused that we could load records with wrong values without problems but got a ObjectModifiedException when we tried to update these values as our update statment includes checking of all old values in the where clause of SQL statement.</span></p> <p><span class="bodyGrey">With the patch this behavier changes to strict checking if the loaded char/string value matches one of the boolean characters defined by conversion rule. If the value does not match a ClassCastException explaing the fail reason will be thrown.</span></p> <h3>Performance improvements</h3> <p><span class="bodyGrey">Several code areas of Castor JDO have been severly refactored or rewritten from scratch, leading to some significantly improved runtime performance. This includes amongst others a reduced execution time when dealing with a large number of entities loaded as part of a single transaction, etc. </span></p> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1204">1204</a></td><td>20050823</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added release notes for 0.9.9M1. </td><td>Bug</td><td></td><td>General</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-999">999</a></td><td>20050823</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added ant targets to to check code conventions with checkstyle. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>ALL</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1203">1203</a></td><td>20050823</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Calculation of priority to execute create and delete statements at commit returns wrong results when no keygen is used or class depends/extends another. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-920">920</a></td><td>20050822</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Changed argument handling code. </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1151">1151</a></td><td>20050821</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Completely refactored ClassMolder, introducing strategy objects for field resolution. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1132">1132</a></td><td>20050817</td><td><a href="mailto:westbay AT users DOT sourceforge DOT net">Michael Westbay</a></td><td><a href="mailto:keith AT kvisco DOT com">Keith Visco</a></td><td> Added additional check for various built-in types when deciding whether or not to use the parent classes namespace if no local namespace has been defined. <br><i><b>Reporter: </b><a href="mailto:westbay AT users DOT sourceforge DOT net">Michael Westbay</a></i></td><td>Bug</td><td></td><td>XML</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1179">1179</a></td><td>20050817</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactored how transaction managers are maintained. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1158">1158</a></td><td>20050808</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Stricter checking at type conversion from string to boolean. <br><i><b>Reporter: </b><a href="mailto:nick %0A AT%0A newtsplace%0A DOT%0A com">Nick Stuart</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-943">943</a></td><td>20050806</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Created a test case for configuring JDO DataSource using a Properties collection. <br><i><b>Reporter: </b><a href="mailto:martin-fuchs %0A AT%0A gmx%0A DOT%0A net">Martin Fuchs</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1190">1190</a></td><td>20050806</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Fix syntax failures in sapdb.sql script and improve sapdb test coverage. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1185">1185</a></td><td>20050805</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Replaced MimeBase64Encoder/Decoder with new implementation Base64Encoder/Decoder. <br><i><b>Reporter: </b><a href="mailto:bruce DOT snyder AT gmail DOT com">Bruce Snyder</a></i></td><td>Enh.</td><td></td><td>All</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-799">799</a></td><td>20050805</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Refactored MANIFEST files and their usage within Castor </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1102">1102</a></td><td>20050801</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for various distributed caches. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-300">300</a></td><td>20050730</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> JDO support for typesafe enumerations. <br><i><b>Reporter: </b><a href="mailto:rhett-sutphin %0A AT%0A uiowa%0A DOT%0A edu">Rhett Sutphin</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1178">1178</a></td><td>20050803</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added code to set identity upon registering objects with ObjectTracker </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1183">1183</a></td><td>20050803</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Allow to initialize JDOManager with a preconfigured DataSource. <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1173">1173</a></td><td>20050801</td><td><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Solved problem using JDOConfFactory and transaction demarcation specification. <br><i><b>Reporter: </b><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-755">755</a></td><td>20050731</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Place all JDO unit tests in a new src/tests/utf/org/exolab/castor/ tree. <br><i><b>Reporter: </b><a href="mailto:bruce DOT snyder AT gmail DOT com">Bruce Snyder</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1114">1114</a></td><td>20050731</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Update docs on the limit clause support for OQL. <br><i><b>Reporter: </b><a href="mailto:bruce DOT snyder AT gmail DOT com">Bruce Snyder</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1169">1169</a></td><td>20050727</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Refactored access to caches, adding CacheEntry class and making OID and CacheEntry implement java.io.Serializable. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-778">778</a></td><td>20050725</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Remove deleteExtend method from ClassMolder. </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1135">1135</a></td><td>20050724</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactor how JDBC connection factories are maintained. <br><i><b>Reporter: </b><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1018">1018</a></td><td>20050715</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for polymorphism. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1110">1110</a></td><td>20050705</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Refactor CTF-JDO tests into subdirectories (part 2). <br><i><b>Reporter: </b><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-874">874</a></td><td>20050703</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added DB2 category to src/tests/tests.xml. </td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1085">1085</a></td><td>20050620</td><td><a href="mailto:gblock %0A AT%0A ctoforaday%0A DOT%0A com">Gregory Block</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Complete rewrite of TransactionContext with regards to obejct tracking. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1155">1155</a></td><td>20050617</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added org.castor package to src/main. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-732">732</a></td><td>20050616</td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> Added performance test-suite for 1:n relations of JDO. <br><i><b>Reporter: </b><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></i></td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-352">352</a></td><td>20050615</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Added support for transient attribute at the <sql> element. </td><td>Enh.</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-633">633</a></td><td>20050614</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Removed hidden catch-block in LockEngine.updateCache(). <br><i><b>Reporter: </b><a href="mailto:dulci %0A AT%0A start%0A DOT%0A no">Stein M. Hugubakken</a></i></td><td>Ref.</td><td></td><td>JDO</td></tr></table></td></tr></table><br> <br><hr><h1>Release 0.9.7</h1><hr><table cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td>Description:</td><td>Maintenance release for Castor XML and JDO</td></tr><tr><td>released:</td><td>June 8, 2005</td></tr><tr><td>managed by:</td><td>Werner Guttmann</td></tr></table><br><summary> <h2>Download & installation instructions</h2> <p><span class="bodyGrey">This is the final 0.9.7. release, mainly a maintenance release. We are currently planning the next release which will be Castor 0.9.9, a feature release.</span></p> <h2>Changes</h2> <h3>Moved key generators to jdo.keygen package</h3> <p><span class="bodyGrey">Whilst this change is non-intrusive per se, please note that you might have to change a local <tt>castor.properties</tt> file if you happened to re-specify key generators in there.</span></p> <h3>Fixed problem with multiple <database> configurations</h3> <p><span class="bodyGrey">Support for multiple database configurations has been re-enabled.</span></p> </summary><br><table bgcolor="#7270c2" cellpadding="2" cellspacing="1" border="0" width="100%"><tr><td><table bgcolor="#ededed" cellpadding="8" cellspacing="1" border="0" width="100%"><CAPTION style="font-weight:bold"> Bug Fixes And Issues Addressed </CAPTION><tr bgcolor="#7270c2"><th align="left">Id</th><th align="left">Date</th><th align="left">Fixed by</th><th align="left">Committed by </th><th align="left">Description</th><th align="left">Type</th><th align="left">Project</th><th align="left">Module</th></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-1147">1147</a></td><td>20050607</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Reverted addition to src/tests/jdo/Collections due to problem with missing setItem(ArrayList). </td><td>Bug</td><td></td><td>General</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1138">1138</a></td><td>20050530</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Moved key generators to jdo.keygen package. </td><td>Bug</td><td></td><td>General</td></tr><tr valign="top"><td><a href="http://jira.codehaus.org/browse/CASTOR-881">881</a></td><td>20050530</td><td><a href="mailto:nick %0A AT%0A newtsplace%0A DOT%0A com">Nick Stuart</a></td><td><a href="mailto:ralf.joachim %0A AT%0A syscon%0A DOT%0A eu">Ralf Joachim</a></td><td> JDOManager can now handle more then one jdo-conf. <br><i><b>Reporter: </b><a href="mailto:nick %0A AT%0A newtsplace%0A DOT%0A com">Nick Stuart</a></i></td><td>Bug</td><td></td><td>JDO</td></tr><tr valign="top" bgcolor="#FFFFFF"><td><a href="http://jira.codehaus.org/browse/CASTOR-1131">1131</a></td><td>20050525</td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td><a href="mailto:werner.guttmann %0A AT%0A gmx%0A DOT%0A net">Werner Guttmann</a></td><td> Update project documentation. </td><td>Bug</td><td></td><td>General</td></tr></table></td></tr></table><br> <p><span class="bodyGrey">For all the releases prior to 0.9.7, the release notes can be found at <a href="release-notes-0.9.7pre.html">here</a> or <a href="changelog.html">here</a>.</span></p> </td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="10"> </td><td valign="top" bgcolor="#7270c2" height="5" width="150"><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img align="right" border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7"> </td><td align="left" valign="top" height="5" width="70"> </td><td align="left" valign="top" height="5" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="10"> </td><td align="left" valign="top" bgcolor="#7270c2" width="150"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="70"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="120"> </td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="10"><img border="0" height="125" width="10" src="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="150"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7"> </td><td align="left" valign="top" height="100%" width="70"> </td><td align="left" valign="top" height="100%" width="120"> </td></tr><tr height="5"><td align="left" valign="top" height="25" width="70"> </td><td align="left" valign="bottom" height="25" width="400"><br><br><img height="3" width="400" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice> Copyright © 1999-2005 <a href="http://www.exolab.org">ExoLab Group</a>, Intalio Inc., and Contributors. All rights reserved. </notice><br> <br></small><small><notice> Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. XML, XML Schema, XSLT and related standards are trademarks or registered trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web Consortium. All other product names mentioned herein are trademarks of their respective owners. </notice><br> <br></small></span><p></p> </td><td align="left" valign="top" height="25" width="120"> </td></tr></table><script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> var pageTracker = _gat._getTracker("UA-3544187-1"); pageTracker._trackPageview(); </script></body></html>