<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-23350</id>
	<title>Nabble - Apache JDO</title>
	<updated>2008-08-21T16:11:00Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Apache-JDO-f23350.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Apache-JDO-f23350.html" />
	<subtitle type="html">&lt;a href=&quot;http://db.apache.org/jdo/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Java Data Objects (JDO)&lt;/a&gt;&amp;nbsp;is a standard way to access persistent data in databases, using plain old Java objects (POJO) to represent persistent data. The approach separates data manipulation (done by accessing Java data members in the Java domain objects) from database manipulation (done by calling the JDO interface methods). This separation of concerns leads to a high degree of independence of the Java view of data from the database view of the data.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19098740</id>
	<title>JDO TCK Conference Call Friday, Aug 22, 9 am PDT</title>
	<published>2008-08-21T16:11:00Z</published>
	<updated>2008-08-21T16:11:00Z</updated>
	<author>
		<name>Michelle Caisse</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;We will have our regular meeting Friday, Aug 22 at 9 am PDT to discuss 
&lt;br&gt;JDO TCK issues and status.
&lt;br&gt;&lt;br&gt;Dial-in numbers are:
&lt;br&gt;Domestic (toll-free): &amp;nbsp;866 230-6968
&lt;br&gt;International (caller-paid): &amp;nbsp;+1 213 787-0528
&lt;br&gt;Access code : &amp;nbsp;294-0479#
&lt;br&gt;&lt;br&gt;Agenda:
&lt;br&gt;&lt;br&gt;1. api2-legacy: maintain or dump?
&lt;br&gt;2. JDO 2.2 release timing
&lt;br&gt;3. getPMF tests (&lt;a href=&quot;http://issues.apache.org/jira/browse/JDO-582&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/browse/JDO-582&lt;/a&gt;)
&lt;br&gt;4. Other issues
&lt;br&gt;&lt;br&gt;Action Items from weeks past:
&lt;br&gt;&lt;br&gt;[Feb 1 2008] AI &amp;nbsp;Matthew see what would be needed to update the PMF 
&lt;br&gt;contract to support &amp;nbsp;ServiceLoader.
&lt;br&gt;&lt;br&gt;[Nov 30 2007] AI Christiaan propose more details on Update/copy by query 
&lt;br&gt;for post-JDO 2.1.
&lt;br&gt;&lt;br&gt;[May 25 2007] &amp;nbsp;AI everyone download the Grails demo from grails.org &amp;nbsp;and 
&lt;br&gt;check it out. Also look at Grails/Groovy ExpandoMetaClass that &amp;nbsp;has the 
&lt;br&gt;magic to avoid reflection and enhancement.
&lt;br&gt;&lt;br&gt;[May 25 2007] AI Matthew Adams prepare a proposal with just the basics 
&lt;br&gt;of schema synchronization with jdo and orm metadata.
&lt;br&gt;&lt;br&gt;[Aug 11 2006] AI Craig propose some semantics for behavior if user tries 
&lt;br&gt;to add to a list where the ordering element is incorrect.
&lt;br&gt;&lt;br&gt;[Sep 2 2005] AI: To recruit members: &amp;nbsp;Articles on &amp;nbsp;TheServerSide 
&lt;br&gt;directing attention to the site. T-shirts. &amp;nbsp;AI: &amp;nbsp; Craig write a 
&lt;br&gt;ServerSide article.
&lt;br&gt;&lt;br&gt;-- Michelle
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/JDO-TCK-Conference-Call-Friday%2C-June-15%2C-9-am-PDT-tp11129570p19098740.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19097963</id>
	<title>Re: svn commit: r687454 - /db/jdo/trunk/tck2/maven.xml</title>
	<published>2008-08-21T15:11:58Z</published>
	<updated>2008-08-21T15:11:58Z</updated>
	<author>
		<name>Craig L Russell</name>
	</author>
	<content type="html">Oops, the comment should read:
&lt;br&gt;&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo&amp;gt;The top-level directory name must terminate in &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;quot;jdo&amp;quot;.&amp;lt;/echo&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo&amp;gt;Please rename your directory to &amp;quot;jdo&amp;quot; or &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;quot;XXXjdo&amp;quot;.&amp;lt;/echo&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo&amp;gt;Otherwise the dist directory will be incorrectly &amp;nbsp;
&lt;br&gt;&amp;gt; named.&amp;lt;/echo&amp;gt;
&lt;br&gt;&lt;br&gt;Craig
&lt;br&gt;On Aug 20, 2008, at 1:44 PM, &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19097963&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mcaisse@...&lt;/a&gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Author: mcaisse
&lt;br&gt;&amp;gt; Date: Wed Aug 20 13:44:59 2008
&lt;br&gt;&amp;gt; New Revision: 687454
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=687454&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=687454&amp;view=rev&lt;/a&gt;&lt;br&gt;&amp;gt; Log:
&lt;br&gt;&amp;gt; JDO-603 Catch bad directory name and report problem.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;db/jdo/trunk/tck2/maven.xml
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Modified: db/jdo/trunk/tck2/maven.xml
&lt;br&gt;&amp;gt; URL: &lt;a href=&quot;http://svn.apache.org/viewvc/db/jdo/trunk/tck2/maven.xml?rev=687454&amp;r1=687453&amp;r2=687454&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/db/jdo/trunk/tck2/maven.xml?rev=687454&amp;r1=687453&amp;r2=687454&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; = 
&lt;br&gt;&amp;gt; ======================================================================
&lt;br&gt;&amp;gt; --- db/jdo/trunk/tck2/maven.xml (original)
&lt;br&gt;&amp;gt; +++ db/jdo/trunk/tck2/maven.xml Wed Aug 20 13:44:59 2008
&lt;br&gt;&amp;gt; @@ -123,6 +123,8 @@
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;j:set var=&amp;quot;nullval&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;j:set var=&amp;quot;true&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;j:set var=&amp;quot;false&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;j:set var=&amp;quot;slashval&amp;quot; value=&amp;quot;/&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;j:set var=&amp;quot;backslashval&amp;quot; value=&amp;quot;\&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;j:set var=&amp;quot;cfglist&amp;quot; value=&amp;quot;${jdo.tck.cfglist}&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;j:if test=&amp;quot;${cfglist == null}&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; @@ -829,7 +831,16 @@
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;lt;goal name=&amp;quot;dist&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- Just do a source distribution for tck20. --&amp;gt;
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attainGoal name=&amp;quot;dist:build-src&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;j:if test=&amp;quot;${basedir.lastIndexOf('jdo') == &amp;nbsp;
&lt;br&gt;&amp;gt; basedir.lastIndexOf('jdo\')
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || basedir.lastIndexOf('jdo') == &amp;nbsp;
&lt;br&gt;&amp;gt; basedir.lastIndexOf('jdo/')
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attainGoal name=&amp;quot;dist:build-src&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/j:if&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;j:else&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo&amp;gt;The top-level directory name must terminate in &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;quot;jdo&amp;quot;.&amp;lt;/echo&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo&amp;gt;Please rename your directory to &amp;quot;jdo&amp;quot; or &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;quot;jdoXXX&amp;quot;.&amp;lt;/echo&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo&amp;gt;Otherwise the dist directory will be incorrectly &amp;nbsp;
&lt;br&gt;&amp;gt; named.&amp;lt;/echo&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/j:else&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;lt;/goal&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;lt;preGoal name=&amp;quot;dist:build-src&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;/div&gt;Craig L Russell
&lt;br&gt;Architect, Sun Java Enterprise System &lt;a href=&quot;http://java.sun.com/products/jdo&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/jdo&lt;/a&gt;&lt;br&gt;408 276-5638 mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19097963&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Craig.Russell@...&lt;/a&gt;
&lt;br&gt;P.S. A good JDO? O, Gasp!
&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (3K) &lt;a href=&quot;http://www.nabble.com/attachment/19097963/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A-svn-commit%3A-r687454----db-jdo-trunk-tck2-maven.xml-tp19097963p19097963.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19089577</id>
	<title>Re: Updating datastore with transient instance</title>
	<published>2008-08-21T07:11:06Z</published>
	<updated>2008-08-21T07:11:06Z</updated>
	<author>
		<name>Joerg von Frantzius-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;the use-case sounds very reasonable to me, e.g. when the implementation
&lt;br&gt;of a web-service sends out a serialized persistent object, receives back
&lt;br&gt;the object with changes, and now needs to apply the changes to the
&lt;br&gt;database.
&lt;br&gt;&lt;br&gt;Since makePersistent() is handling attaching so far, this could be the
&lt;br&gt;place to transition such an object from transient to persistent-dirty
&lt;br&gt;(with all fields marked dirty). Maybe an exception should be thrown when
&lt;br&gt;there already is a persistent-dirty object with the same id managed by
&lt;br&gt;the same PM. Since that would mean change of behaviour (somebody might
&lt;br&gt;rely on inserting new objects when calling makePersistent() on transient
&lt;br&gt;instances that have an id value), there probably should be an additional
&lt;br&gt;setMergeOnMakePersistent(boolean) or something like that, defaulting to
&lt;br&gt;the old behaviour.
&lt;br&gt;&lt;br&gt;This would only work for application-identity. For datastore-identity,
&lt;br&gt;some new method(s) would be required to determine the objects' ids, as
&lt;br&gt;Pavel suggested.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Jörg
&lt;br&gt;&lt;br&gt;Pavel wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This email is a continuation of discussion started at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.jpox.org/servlet/forum/viewthread?thread=4893&amp;lastpage=yes&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jpox.org/servlet/forum/viewthread?thread=4893&amp;lastpage=yes&lt;/a&gt;&amp;nbsp;.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Quick summary is that there is a number of [I believe fairly strong] cases
&lt;br&gt;&amp;gt; where application deals with transient objects which somehow correspond to
&lt;br&gt;&amp;gt; already persisted objects.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; These instances have updated state in there, but persisting that state takes
&lt;br&gt;&amp;gt; extra code and datastore hits, just to preload persistent counterpart and
&lt;br&gt;&amp;gt; copy properties.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My question is whether it is possible and makes sense for JDO to support
&lt;br&gt;&amp;gt; &amp;quot;attachment&amp;quot; of transient objects, so that
&lt;br&gt;&amp;gt; a) all the steps required for such &amp;quot;attachment&amp;quot; become duty of JDO
&lt;br&gt;&amp;gt; implementation, not client code and
&lt;br&gt;&amp;gt; b) reads before update are optimized (e.g. one read for collection) or
&lt;br&gt;&amp;gt; eliminated at all.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Code-wise I imagine methods like
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Application identity
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; T attachTransient(T instanceWithAppIdentity);
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; Collection&amp;lt;T&amp;gt; attachTransientAll(Collection&amp;lt;T&amp;gt;
&lt;br&gt;&amp;gt; instancesWithAppIdentity);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Datastore identity - client code provides id explicitly to let JDO
&lt;br&gt;&amp;gt; identify persistent counterpart
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; T attachTransient(T instanceWithDSIdentity, Object id);
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; Map&amp;lt;Object, T&amp;gt; attachTransientAll(Map&amp;lt;Object, T&amp;gt;
&lt;br&gt;&amp;gt; instancesWithDSIdentity); &amp;nbsp; &amp;nbsp; // Map is {id =&amp;gt; instance}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What do you think?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Pavel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;____________________________________________________________________
&lt;br&gt;artnology GmbH - Milastraße 4 - 10437 Berlin - Germany
&lt;br&gt;Geschäftsführer: Ekkehard Blome (CEO), Felix Kuschnick (CCO)
&lt;br&gt;Registergericht: Amtsgericht Berlin Charlottenburg HRB 76376 
&lt;br&gt;UST-Id. DE 217652550
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A-Updating-datastore-with-transient-instance-tp19089577p19089577.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19089576</id>
	<title>Re: Updating datastore with transient instance</title>
	<published>2008-08-21T07:11:04Z</published>
	<updated>2008-08-21T07:11:04Z</updated>
	<author>
		<name>Joerg von Frantzius-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;the use-case sounds very reasonable to me, e.g. when the implementation
&lt;br&gt;of a web-service sends out a serialized persistent object, receives back
&lt;br&gt;the object with changes, and now needs to apply the changes to the
&lt;br&gt;database.
&lt;br&gt;&lt;br&gt;Since makePersistent() is handling attaching so far, this could be the
&lt;br&gt;place to transition such an object from transient to persistent-dirty
&lt;br&gt;(with all fields marked dirty). Maybe an exception should be thrown when
&lt;br&gt;there already is a persistent-dirty object with the same id managed by
&lt;br&gt;the same PM. Since that would mean change of behaviour (somebody might
&lt;br&gt;rely on inserting new objects when calling makePersistent() on transient
&lt;br&gt;instances that have an id value), there probably should be an additional
&lt;br&gt;setMergeOnMakePersistent(boolean) or something like that, defaulting to
&lt;br&gt;the old behaviour.
&lt;br&gt;&lt;br&gt;This would only work for application-identity. For datastore-identity,
&lt;br&gt;some new method(s) would be required to determine the objects' ids, as
&lt;br&gt;Pavel suggested.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Jörg
&lt;br&gt;&lt;br&gt;Pavel wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This email is a continuation of discussion started at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.jpox.org/servlet/forum/viewthread?thread=4893&amp;lastpage=yes&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jpox.org/servlet/forum/viewthread?thread=4893&amp;lastpage=yes&lt;/a&gt;&amp;nbsp;.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Quick summary is that there is a number of [I believe fairly strong] cases
&lt;br&gt;&amp;gt; where application deals with transient objects which somehow correspond to
&lt;br&gt;&amp;gt; already persisted objects.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; These instances have updated state in there, but persisting that state takes
&lt;br&gt;&amp;gt; extra code and datastore hits, just to preload persistent counterpart and
&lt;br&gt;&amp;gt; copy properties.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My question is whether it is possible and makes sense for JDO to support
&lt;br&gt;&amp;gt; &amp;quot;attachment&amp;quot; of transient objects, so that
&lt;br&gt;&amp;gt; a) all the steps required for such &amp;quot;attachment&amp;quot; become duty of JDO
&lt;br&gt;&amp;gt; implementation, not client code and
&lt;br&gt;&amp;gt; b) reads before update are optimized (e.g. one read for collection) or
&lt;br&gt;&amp;gt; eliminated at all.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Code-wise I imagine methods like
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Application identity
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; T attachTransient(T instanceWithAppIdentity);
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; Collection&amp;lt;T&amp;gt; attachTransientAll(Collection&amp;lt;T&amp;gt;
&lt;br&gt;&amp;gt; instancesWithAppIdentity);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Datastore identity - client code provides id explicitly to let JDO
&lt;br&gt;&amp;gt; identify persistent counterpart
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; T attachTransient(T instanceWithDSIdentity, Object id);
&lt;br&gt;&amp;gt; &amp;lt;T&amp;gt; Map&amp;lt;Object, T&amp;gt; attachTransientAll(Map&amp;lt;Object, T&amp;gt;
&lt;br&gt;&amp;gt; instancesWithDSIdentity); &amp;nbsp; &amp;nbsp; // Map is {id =&amp;gt; instance}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What do you think?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Pavel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;____________________________________________________________________
&lt;br&gt;artnology GmbH - Milastraße 4 - 10437 Berlin - Germany
&lt;br&gt;Geschäftsführer: Ekkehard Blome (CEO), Felix Kuschnick (CCO)
&lt;br&gt;Registergericht: Amtsgericht Berlin Charlottenburg HRB 76376 
&lt;br&gt;UST-Id. DE 217652550
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---User-f23352.html&quot; embed=&quot;fixTarget[23352]&quot; target=&quot;_top&quot; &gt;JDO - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Updating-datastore-with-transient-instance-tp17580189p19089576.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19078293</id>
	<title>[jira] Created: (JDO-606) jdo2-api maven2 pom missing for 2.2-SNAPSHOT</title>
	<published>2008-08-20T14:20:44Z</published>
	<updated>2008-08-20T14:20:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">jdo2-api maven2 pom missing for 2.2-SNAPSHOT
&lt;br&gt;--------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JDO-606
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-606&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-606&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: JDO
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Improvement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: api2
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: JDO 2 maintenance release 2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Jörg von Frantzius
&lt;br&gt;&lt;br&gt;&lt;br&gt;On &lt;a href=&quot;http://mirrors.ibiblio.org/pub/mirrors/maven2/javax/jdo/jdo2-api/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mirrors.ibiblio.org/pub/mirrors/maven2/javax/jdo/jdo2-api/&lt;/a&gt;&amp;nbsp;there currently is no jars or POM information for 2.2 (-SNAPSHOT).
&lt;br&gt;&lt;br&gt;I don't know how that's supposed to get there, but I hope somebody else does...
&lt;br&gt;&lt;br&gt;Last but not least, this makes it hard for building and testing the RI itself using maven2, since the missing POM precludes the jdo2-api-2.2-SNAPSHOT.jar artifact from easy inclusion e.g. in .war files used for integration-tests with J2EE containers.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-606%29-jdo2-api-maven2-pom-missing-for-2.2-SNAPSHOT-tp19078293p19078293.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19077734</id>
	<title>[jira] Resolved: (JDO-603) dist goal fails if top level dir does not end in &quot;jdo&quot;</title>
	<published>2008-08-20T13:46:44Z</published>
	<updated>2008-08-20T13:46:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Michelle Caisse resolved JDO-603.
&lt;br&gt;---------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;Completed: At revision: 687454 &amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; dist goal fails if top level dir does not end in &amp;quot;jdo&amp;quot;
&lt;br&gt;&amp;gt; ------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-603
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-603&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-603&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: site and infrastructure
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: JDO 2 maintenance release 1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The algorithm used to compute the dist directory requires that the top-level directory terminate in the string &amp;quot;jdo&amp;quot;. The algorithm is codified in this line of trunk/project.properties:
&lt;br&gt;&amp;gt; jdo.releases.dir = ${basedir.substring(0, basedir.lastIndexOf('jdo'))}jdo/releases
&lt;br&gt;&amp;gt; This, for example, takes c:/jdoFooBar/branches/2.1.1 and converts it to c:/jdo/releases. It will fail completely for c:/code/branches/2.1.1.
&lt;br&gt;&amp;gt; A fix allowing an arbitrary string as the local tree top level directory is difficult because it needs to work for both &amp;lt;topdir&amp;gt;/trunk/ and &amp;lt;topdir&amp;gt;/branches/&amp;lt;version&amp;gt;. The solution is to document the requirements for the directory name in &amp;lt;topdir&amp;gt;/HowToReleaseJDO.html.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-603%29-dist-goal-fails-if-top-level-dir-does-not-end-in-%22jdo%22-tp18779917p19077734.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19076758</id>
	<title>[jira] Commented: (JDO-558) Create tests for the serialization of PersistenceManagerFactory/PersistenceManager</title>
	<published>2008-08-20T12:46:44Z</published>
	<updated>2008-08-20T12:46:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12624110#action_12624110&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12624110#action_12624110&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-558:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;Tests will serialize a PMF and then materialize it in the same VM (easy with the current JUnit setup), and make sure it's equivalent by getting a PM and trying to retrieve an instance by its id. 
&lt;br&gt;&lt;br&gt;A different test will serialize a PM and materialize it in the same VM. It should also be possible to retrieve an instance that was stored using the previous PMF.
&lt;br&gt;&lt;br&gt;Another set of tests will create a new VM and try to materialize PMF and PM. This is more tricky with the current maven/JUnit setup since another VM needs to be created and communications established between the VMs.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Create tests for the serialization of PersistenceManagerFactory/PersistenceManager
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-558
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-558&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-558&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Task
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: tck2, tck2-legacy
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: JDO 2 maintenance release 1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Matthew T. Adams
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Craig Russell
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Serialization of PMFs/PMs needs to be tested as part of the TCK. &amp;nbsp;Forthcoming spec updates on PM serialization will need assertions.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-558%29-Create-tests-for-the-serialization-of-PersistenceManagerFactory-PersistenceManager-tp14097136p19076758.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19075220</id>
	<title>[jira] Resolved: (JDO-583) Add license headers to source files.</title>
	<published>2008-08-20T11:16:44Z</published>
	<updated>2008-08-20T11:16:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Michelle Caisse resolved JDO-583.
&lt;br&gt;---------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;Completed: At revision: 687404 &amp;nbsp;
&lt;br&gt;&lt;br&gt;Works for both /* */ and // comments.
&lt;br&gt;&lt;br&gt;License header added to signatures text file.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add license headers to source files.
&lt;br&gt;&amp;gt; ------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-583
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-583&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-583&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: tck2, tck2-legacy
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: JDO 2 maintenance release 1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Craig Russell
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: SignatureVerifier.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; RAT reveals files that need Apache license headers:
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/conf/jdo-2_1-signatures.txt
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/java/org/apache/jdo/tck/pc/company/ CompanyFactoryNewInstance.java
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/uml/org/apache/jdo/tck/pc/shoppingcart/ shoppingcart.argo.uml\
&lt;br&gt;&amp;gt; jdo2-tck-legacy-2.1/src/conf/jdo-2_1-signatures.txt
&lt;br&gt;&amp;gt; jdo2-tck-legacy-2.1/src/uml/org/apache/jdo/tck/pc/shoppingcart/ shoppingcart.argo.uml
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-583%29-Add-license-headers-to-source-files.-tp16127519p19075220.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19040849</id>
	<title>[jira] Resolved: (JDO-554) JDO2.2 : Dynamic fetch groups</title>
	<published>2008-08-18T14:57:44Z</published>
	<updated>2008-08-18T14:57:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Craig Russell resolved JDO-554.
&lt;br&gt;-------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; JDO2.2 : Dynamic fetch groups
&lt;br&gt;&amp;gt; -----------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-554
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: FetchGroup Lifecycle.JPG, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; From the Apache JDO jdo-dev mailing list, to register the issue for a subsequent JDO release, and holder for any further discussion
&lt;br&gt;&amp;gt; Below is a proposal that could possibly be included in a JDO2.2 (or in JDO2.1 
&lt;br&gt;&amp;gt; if feedback is positive for that, and JPOX already implements it).
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Problem : fetch groups are static, defined in metadata (XML/annotations). Sometimes it would be more convenient to be able to define fetch groups dynamically, for example based on user interaction in a web system.
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Proposal :
&lt;br&gt;&amp;gt; We add a new interface defining a FetchGroup, where a FetchGroup has a symbolic name and is for a class defining the fields of that class that are in the fetch group.
&lt;br&gt;&amp;gt; public interface FetchGroup
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getName(); // Symbolic name (as also used in MetaData)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getClassName(); // Class to which this group refers
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup add(String fieldName); // Add a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup remove(String fieldName); // Remove a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean hasField(String fieldName);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String[] getFieldNames();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void setPostLoad(boolean postLoad);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean getPostLoad();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; We allow users to register/deregister their FetchGroups with the PMF
&lt;br&gt;&amp;gt; PersistenceManagerFactory
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void addFetchGroup(FetchGroup grp);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void removeFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup createFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup getFetchGroup(String grpName, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup[] getFetchGroups();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void clearFetchGroups();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Usage:
&lt;br&gt;&amp;gt; FetchGroup grp1 = pmf.createFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class);
&lt;br&gt;&amp;gt; grp1.add(&amp;quot;field1&amp;quot;).add(&amp;quot;field2&amp;quot;).add(&amp;quot;field4&amp;quot;);
&lt;br&gt;&amp;gt; pmf.addFetchGroup(grp1); // FetchGroup registered
&lt;br&gt;&amp;gt; pm.getFetchPlan().setGroup(&amp;quot;myGroup1&amp;quot;); // FetchGroup used in this plan
&lt;br&gt;&amp;gt; // FetchPlan now has MyClass {field1, field2, field4}
&lt;br&gt;&amp;gt; We can then also allow dynamic changes like
&lt;br&gt;&amp;gt; pmf.getFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class).add(&amp;quot;field7&amp;quot;);
&lt;br&gt;&amp;gt; and this is directly reflected in the FetchPlan
&lt;br&gt;&amp;gt; Possible changes:-
&lt;br&gt;&amp;gt; 1. PMF has createFetchGroup and addFetchGroup and we could merge these so when &amp;nbsp;creating a FetchGroup it is added
&lt;br&gt;&amp;gt; 2. Doesnt support &amp;quot;recursion-depth&amp;quot; specification when adding a field to a FetchGroup, so we could add a method &amp;quot;add(String fieldName, int depth)&amp;quot;
&lt;br&gt;&amp;gt; Comments by Erik Samson
&lt;br&gt;&amp;gt; JDO 2 needs alternate ways to define fetch plans. Some food for thoughts here:
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add the DFG of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to create a global fetch plan without fetch groups at all
&lt;br&gt;&amp;gt; pm.setFetchPlan( &amp;quot;Person(name,age, address( {dfg} , country( {all} , -flagIMG ) ), accounts( {simple} , +{references} ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;quot; &amp;nbsp; ) ;
&lt;br&gt;&amp;gt; Person actually references the candidate class, so I suppose it could be optional.
&lt;br&gt;&amp;gt; This method will load name and age from a Person, then will load the configured DFG from the reference to Address, then will load all fields but flagIMG from the reference to Country into address, and finally will load simple fields and unary references to other objects from the collection of Accounts. We should also probably support depth in that mechanism.
&lt;br&gt;&amp;gt; Having this &amp;quot;SSFP&amp;quot; (Single String Fetch Plan) will allow to tune the system externally, from JMX or a configuration file for instance.
&lt;br&gt;&amp;gt; Comments by Matthew Adams
&lt;br&gt;&amp;gt; You might also consider overloaded methods on interface FetchGroup, just for completeness:
&lt;br&gt;&amp;gt; // (importing java.lang.reflect.Field)
&lt;br&gt;&amp;gt; FetchGroup add(Field field);
&lt;br&gt;&amp;gt; FetchGroup remove(Field field);
&lt;br&gt;&amp;gt; boolean hasField(Field field); // or has(Field) -- I'd consider &amp;nbsp;better verb
&lt;br&gt;&amp;gt; Field[] getFields();
&lt;br&gt;&amp;gt; The add &amp; remove methods should throw if the Field isn't contained in the class.
&lt;br&gt;&amp;gt; Comments by Christiaan:
&lt;br&gt;&amp;gt; May be also think about an option to restore to a fetchGroup to a state before you start changing it (possibly via supporting clone()) or reset to configuration defined in JDO file. 
&lt;br&gt;&amp;gt; Comments by Craig Russell:
&lt;br&gt;&amp;gt; Also, I think that we should consider ways to manipulate FetchPlans as well, both in programmatic as well as declarative approaches. Specifically, I'd like to be able to specify in my configuration the FetchPlan to use in a specific application context, e.g. the first time a PersistenceManager is used to getObjectById or newQuery, the FetchPlan for that use case is looked up from configuration and set as the current FetchPlan.
&lt;br&gt;&amp;gt; Further, if the application wants a specific FetchPlan, they should be able to call a method setFetchPlan with either the name of a configured FetchPlan or a FetchPlan to use.
&lt;br&gt;&amp;gt; And then, assuming that the FetchPlan must change during some interval of application processing, and then reset to the previous &amp;nbsp;settings, 
&lt;br&gt;&amp;gt; public void pushFetchPlan(FetchPlan); 
&lt;br&gt;&amp;gt; public void pushFetchPlan(String fetchPlanName) 
&lt;br&gt;&amp;gt; public FetchPlan popFetchPlan() 
&lt;br&gt;&amp;gt; would allow a temporary override of the FetchPlan without the application having to preserve the settings and update the FetchPlan to restore it.
&lt;br&gt;&amp;gt; In this light, it might make sense to be able to register FetchPlans by name with the PersistenceManagerFactory.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-554%29-JDO2.2-%3A-Dynamic-fetch-groups-tp13937782p19040849.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19034310</id>
	<title>[jira] Commented: (JDO-554) JDO2.2 : Dynamic fetch groups</title>
	<published>2008-08-18T08:40:44Z</published>
	<updated>2008-08-18T08:40:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623382#action_12623382&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623382#action_12623382&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-554:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;Very cool.
&lt;br&gt;&lt;br&gt;The discussion about api2-legacy is timely. There are other features that would also need to go into the legacy code as well. Just need volunteers...
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; JDO2.2 : Dynamic fetch groups
&lt;br&gt;&amp;gt; -----------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-554
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: FetchGroup Lifecycle.JPG, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; From the Apache JDO jdo-dev mailing list, to register the issue for a subsequent JDO release, and holder for any further discussion
&lt;br&gt;&amp;gt; Below is a proposal that could possibly be included in a JDO2.2 (or in JDO2.1 
&lt;br&gt;&amp;gt; if feedback is positive for that, and JPOX already implements it).
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Problem : fetch groups are static, defined in metadata (XML/annotations). Sometimes it would be more convenient to be able to define fetch groups dynamically, for example based on user interaction in a web system.
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Proposal :
&lt;br&gt;&amp;gt; We add a new interface defining a FetchGroup, where a FetchGroup has a symbolic name and is for a class defining the fields of that class that are in the fetch group.
&lt;br&gt;&amp;gt; public interface FetchGroup
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getName(); // Symbolic name (as also used in MetaData)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getClassName(); // Class to which this group refers
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup add(String fieldName); // Add a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup remove(String fieldName); // Remove a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean hasField(String fieldName);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String[] getFieldNames();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void setPostLoad(boolean postLoad);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean getPostLoad();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; We allow users to register/deregister their FetchGroups with the PMF
&lt;br&gt;&amp;gt; PersistenceManagerFactory
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void addFetchGroup(FetchGroup grp);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void removeFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup createFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup getFetchGroup(String grpName, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup[] getFetchGroups();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void clearFetchGroups();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Usage:
&lt;br&gt;&amp;gt; FetchGroup grp1 = pmf.createFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class);
&lt;br&gt;&amp;gt; grp1.add(&amp;quot;field1&amp;quot;).add(&amp;quot;field2&amp;quot;).add(&amp;quot;field4&amp;quot;);
&lt;br&gt;&amp;gt; pmf.addFetchGroup(grp1); // FetchGroup registered
&lt;br&gt;&amp;gt; pm.getFetchPlan().setGroup(&amp;quot;myGroup1&amp;quot;); // FetchGroup used in this plan
&lt;br&gt;&amp;gt; // FetchPlan now has MyClass {field1, field2, field4}
&lt;br&gt;&amp;gt; We can then also allow dynamic changes like
&lt;br&gt;&amp;gt; pmf.getFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class).add(&amp;quot;field7&amp;quot;);
&lt;br&gt;&amp;gt; and this is directly reflected in the FetchPlan
&lt;br&gt;&amp;gt; Possible changes:-
&lt;br&gt;&amp;gt; 1. PMF has createFetchGroup and addFetchGroup and we could merge these so when &amp;nbsp;creating a FetchGroup it is added
&lt;br&gt;&amp;gt; 2. Doesnt support &amp;quot;recursion-depth&amp;quot; specification when adding a field to a FetchGroup, so we could add a method &amp;quot;add(String fieldName, int depth)&amp;quot;
&lt;br&gt;&amp;gt; Comments by Erik Samson
&lt;br&gt;&amp;gt; JDO 2 needs alternate ways to define fetch plans. Some food for thoughts here:
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add the DFG of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to create a global fetch plan without fetch groups at all
&lt;br&gt;&amp;gt; pm.setFetchPlan( &amp;quot;Person(name,age, address( {dfg} , country( {all} , -flagIMG ) ), accounts( {simple} , +{references} ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;quot; &amp;nbsp; ) ;
&lt;br&gt;&amp;gt; Person actually references the candidate class, so I suppose it could be optional.
&lt;br&gt;&amp;gt; This method will load name and age from a Person, then will load the configured DFG from the reference to Address, then will load all fields but flagIMG from the reference to Country into address, and finally will load simple fields and unary references to other objects from the collection of Accounts. We should also probably support depth in that mechanism.
&lt;br&gt;&amp;gt; Having this &amp;quot;SSFP&amp;quot; (Single String Fetch Plan) will allow to tune the system externally, from JMX or a configuration file for instance.
&lt;br&gt;&amp;gt; Comments by Matthew Adams
&lt;br&gt;&amp;gt; You might also consider overloaded methods on interface FetchGroup, just for completeness:
&lt;br&gt;&amp;gt; // (importing java.lang.reflect.Field)
&lt;br&gt;&amp;gt; FetchGroup add(Field field);
&lt;br&gt;&amp;gt; FetchGroup remove(Field field);
&lt;br&gt;&amp;gt; boolean hasField(Field field); // or has(Field) -- I'd consider &amp;nbsp;better verb
&lt;br&gt;&amp;gt; Field[] getFields();
&lt;br&gt;&amp;gt; The add &amp; remove methods should throw if the Field isn't contained in the class.
&lt;br&gt;&amp;gt; Comments by Christiaan:
&lt;br&gt;&amp;gt; May be also think about an option to restore to a fetchGroup to a state before you start changing it (possibly via supporting clone()) or reset to configuration defined in JDO file. 
&lt;br&gt;&amp;gt; Comments by Craig Russell:
&lt;br&gt;&amp;gt; Also, I think that we should consider ways to manipulate FetchPlans as well, both in programmatic as well as declarative approaches. Specifically, I'd like to be able to specify in my configuration the FetchPlan to use in a specific application context, e.g. the first time a PersistenceManager is used to getObjectById or newQuery, the FetchPlan for that use case is looked up from configuration and set as the current FetchPlan.
&lt;br&gt;&amp;gt; Further, if the application wants a specific FetchPlan, they should be able to call a method setFetchPlan with either the name of a configured FetchPlan or a FetchPlan to use.
&lt;br&gt;&amp;gt; And then, assuming that the FetchPlan must change during some interval of application processing, and then reset to the previous &amp;nbsp;settings, 
&lt;br&gt;&amp;gt; public void pushFetchPlan(FetchPlan); 
&lt;br&gt;&amp;gt; public void pushFetchPlan(String fetchPlanName) 
&lt;br&gt;&amp;gt; public FetchPlan popFetchPlan() 
&lt;br&gt;&amp;gt; would allow a temporary override of the FetchPlan without the application having to preserve the settings and update the FetchPlan to restore it.
&lt;br&gt;&amp;gt; In this light, it might make sense to be able to register FetchPlans by name with the PersistenceManagerFactory.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-554%29-JDO2.2-%3A-Dynamic-fetch-groups-tp13937782p19034310.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19034145</id>
	<title>Re: JDK level support in JDO</title>
	<published>2008-08-18T08:32:06Z</published>
	<updated>2008-08-18T08:32:06Z</updated>
	<author>
		<name>Craig L Russell</name>
	</author>
	<content type="html">Hi Andy,
&lt;br&gt;&lt;br&gt;On Aug 18, 2008, at 7:41 AM, Andy Jefferson wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; all previous JDO releases have always supported JDKs 1.3 and above.
&lt;br&gt;&amp;gt; JDO2.1 started providing the &amp;quot;api2-legacy&amp;quot; for JDK1.3/4, and &amp;quot;api2&amp;quot; &amp;nbsp;
&lt;br&gt;&amp;gt; for
&lt;br&gt;&amp;gt; JDK1.5+ specifics.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Just a note about DataNucleus AccessPlatform support levels.
&lt;br&gt;&amp;gt; 1. AccessPlatform 1.0 will be the last release that will support &amp;nbsp;
&lt;br&gt;&amp;gt; JDK1.3/1.4.
&lt;br&gt;&amp;gt; 2. AccessPlatform 1.1 will support JDK1.5+ only.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; AccessPlatform 1.0 will be branched at its 1.0 final release (start &amp;nbsp;
&lt;br&gt;&amp;gt; of Sept)
&lt;br&gt;&amp;gt; and there could be minor releases on that branch after this point, &amp;nbsp;
&lt;br&gt;&amp;gt; but we
&lt;br&gt;&amp;gt; just don't have the resources to support 2 branches for any period.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What are the Apache JDO timescales for dropping support for &amp;nbsp;
&lt;br&gt;&amp;gt; JDK1.3/1.4 ?
&lt;br&gt;&amp;gt; Perhaps make JDO2.2 the final release supporting JDK1.3/1.4?
&lt;/div&gt;&lt;/div&gt;I'd be happy with either JDO 2.1 or JDO 2.2 being the last release to &amp;nbsp;
&lt;br&gt;support the legacy JVMs. Subject to the community, of course (and &amp;nbsp;
&lt;br&gt;subject to people to do the work).
&lt;br&gt;&lt;br&gt;There's real work in migrating the 2.2 work done so far to the 2.1 &amp;nbsp;
&lt;br&gt;platform, and I'd be happy to help a volunteer to do it. Not so keen &amp;nbsp;
&lt;br&gt;on doing all the work myself.
&lt;br&gt;&lt;br&gt;Craig
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Andy &amp;nbsp;(DataNucleus - &lt;a href=&quot;http://www.datanucleus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.datanucleus.org&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;Craig L Russell
&lt;br&gt;Architect, Sun Java Enterprise System &lt;a href=&quot;http://java.sun.com/products/jdo&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/jdo&lt;/a&gt;&lt;br&gt;408 276-5638 mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19034145&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Craig.Russell@...&lt;/a&gt;
&lt;br&gt;P.S. A good JDO? O, Gasp!
&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (3K) &lt;a href=&quot;http://www.nabble.com/attachment/19034145/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/JDK-level-support-in-JDO-tp19033174p19034145.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19033174</id>
	<title>JDK level support in JDO</title>
	<published>2008-08-18T07:41:00Z</published>
	<updated>2008-08-18T07:41:00Z</updated>
	<author>
		<name>Andy Jefferson-4</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;all previous JDO releases have always supported JDKs 1.3 and above. 
&lt;br&gt;JDO2.1 started providing the &amp;quot;api2-legacy&amp;quot; for JDK1.3/4, and &amp;quot;api2&amp;quot; for 
&lt;br&gt;JDK1.5+ specifics.
&lt;br&gt;&lt;br&gt;Just a note about DataNucleus AccessPlatform support levels.
&lt;br&gt;1. AccessPlatform 1.0 will be the last release that will support JDK1.3/1.4.
&lt;br&gt;2. AccessPlatform 1.1 will support JDK1.5+ only.
&lt;br&gt;&lt;br&gt;AccessPlatform 1.0 will be branched at its 1.0 final release (start of Sept) 
&lt;br&gt;and there could be minor releases on that branch after this point, but we 
&lt;br&gt;just don't have the resources to support 2 branches for any period.
&lt;br&gt;&lt;br&gt;&lt;br&gt;What are the Apache JDO timescales for dropping support for JDK1.3/1.4 ? 
&lt;br&gt;Perhaps make JDO2.2 the final release supporting JDK1.3/1.4?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Andy &amp;nbsp;(DataNucleus - &lt;a href=&quot;http://www.datanucleus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.datanucleus.org&lt;/a&gt;)
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/JDK-level-support-in-JDO-tp19033174p19033174.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19033044</id>
	<title>[jira] Commented: (JDO-554) JDO2.2 : Dynamic fetch groups</title>
	<published>2008-08-18T07:33:44Z</published>
	<updated>2008-08-18T07:33:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623359#action_12623359&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623359#action_12623359&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andy Jefferson commented on JDO-554:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;DataNucleus SVN (and nightly build) passes all TCK tests. 
&lt;br&gt;fetchgroup.conf is now part of configurations.list in Apache JDO SVN
&lt;br&gt;&lt;br&gt;PS. Does FetchGroup also need to go into api2-legacy? It isn't there currently, and I don't see anything JDK1.5 specific in it.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; JDO2.2 : Dynamic fetch groups
&lt;br&gt;&amp;gt; -----------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-554
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: FetchGroup Lifecycle.JPG, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; From the Apache JDO jdo-dev mailing list, to register the issue for a subsequent JDO release, and holder for any further discussion
&lt;br&gt;&amp;gt; Below is a proposal that could possibly be included in a JDO2.2 (or in JDO2.1 
&lt;br&gt;&amp;gt; if feedback is positive for that, and JPOX already implements it).
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Problem : fetch groups are static, defined in metadata (XML/annotations). Sometimes it would be more convenient to be able to define fetch groups dynamically, for example based on user interaction in a web system.
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Proposal :
&lt;br&gt;&amp;gt; We add a new interface defining a FetchGroup, where a FetchGroup has a symbolic name and is for a class defining the fields of that class that are in the fetch group.
&lt;br&gt;&amp;gt; public interface FetchGroup
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getName(); // Symbolic name (as also used in MetaData)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getClassName(); // Class to which this group refers
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup add(String fieldName); // Add a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup remove(String fieldName); // Remove a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean hasField(String fieldName);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String[] getFieldNames();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void setPostLoad(boolean postLoad);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean getPostLoad();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; We allow users to register/deregister their FetchGroups with the PMF
&lt;br&gt;&amp;gt; PersistenceManagerFactory
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void addFetchGroup(FetchGroup grp);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void removeFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup createFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup getFetchGroup(String grpName, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup[] getFetchGroups();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void clearFetchGroups();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Usage:
&lt;br&gt;&amp;gt; FetchGroup grp1 = pmf.createFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class);
&lt;br&gt;&amp;gt; grp1.add(&amp;quot;field1&amp;quot;).add(&amp;quot;field2&amp;quot;).add(&amp;quot;field4&amp;quot;);
&lt;br&gt;&amp;gt; pmf.addFetchGroup(grp1); // FetchGroup registered
&lt;br&gt;&amp;gt; pm.getFetchPlan().setGroup(&amp;quot;myGroup1&amp;quot;); // FetchGroup used in this plan
&lt;br&gt;&amp;gt; // FetchPlan now has MyClass {field1, field2, field4}
&lt;br&gt;&amp;gt; We can then also allow dynamic changes like
&lt;br&gt;&amp;gt; pmf.getFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class).add(&amp;quot;field7&amp;quot;);
&lt;br&gt;&amp;gt; and this is directly reflected in the FetchPlan
&lt;br&gt;&amp;gt; Possible changes:-
&lt;br&gt;&amp;gt; 1. PMF has createFetchGroup and addFetchGroup and we could merge these so when &amp;nbsp;creating a FetchGroup it is added
&lt;br&gt;&amp;gt; 2. Doesnt support &amp;quot;recursion-depth&amp;quot; specification when adding a field to a FetchGroup, so we could add a method &amp;quot;add(String fieldName, int depth)&amp;quot;
&lt;br&gt;&amp;gt; Comments by Erik Samson
&lt;br&gt;&amp;gt; JDO 2 needs alternate ways to define fetch plans. Some food for thoughts here:
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add the DFG of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to create a global fetch plan without fetch groups at all
&lt;br&gt;&amp;gt; pm.setFetchPlan( &amp;quot;Person(name,age, address( {dfg} , country( {all} , -flagIMG ) ), accounts( {simple} , +{references} ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;quot; &amp;nbsp; ) ;
&lt;br&gt;&amp;gt; Person actually references the candidate class, so I suppose it could be optional.
&lt;br&gt;&amp;gt; This method will load name and age from a Person, then will load the configured DFG from the reference to Address, then will load all fields but flagIMG from the reference to Country into address, and finally will load simple fields and unary references to other objects from the collection of Accounts. We should also probably support depth in that mechanism.
&lt;br&gt;&amp;gt; Having this &amp;quot;SSFP&amp;quot; (Single String Fetch Plan) will allow to tune the system externally, from JMX or a configuration file for instance.
&lt;br&gt;&amp;gt; Comments by Matthew Adams
&lt;br&gt;&amp;gt; You might also consider overloaded methods on interface FetchGroup, just for completeness:
&lt;br&gt;&amp;gt; // (importing java.lang.reflect.Field)
&lt;br&gt;&amp;gt; FetchGroup add(Field field);
&lt;br&gt;&amp;gt; FetchGroup remove(Field field);
&lt;br&gt;&amp;gt; boolean hasField(Field field); // or has(Field) -- I'd consider &amp;nbsp;better verb
&lt;br&gt;&amp;gt; Field[] getFields();
&lt;br&gt;&amp;gt; The add &amp; remove methods should throw if the Field isn't contained in the class.
&lt;br&gt;&amp;gt; Comments by Christiaan:
&lt;br&gt;&amp;gt; May be also think about an option to restore to a fetchGroup to a state before you start changing it (possibly via supporting clone()) or reset to configuration defined in JDO file. 
&lt;br&gt;&amp;gt; Comments by Craig Russell:
&lt;br&gt;&amp;gt; Also, I think that we should consider ways to manipulate FetchPlans as well, both in programmatic as well as declarative approaches. Specifically, I'd like to be able to specify in my configuration the FetchPlan to use in a specific application context, e.g. the first time a PersistenceManager is used to getObjectById or newQuery, the FetchPlan for that use case is looked up from configuration and set as the current FetchPlan.
&lt;br&gt;&amp;gt; Further, if the application wants a specific FetchPlan, they should be able to call a method setFetchPlan with either the name of a configured FetchPlan or a FetchPlan to use.
&lt;br&gt;&amp;gt; And then, assuming that the FetchPlan must change during some interval of application processing, and then reset to the previous &amp;nbsp;settings, 
&lt;br&gt;&amp;gt; public void pushFetchPlan(FetchPlan); 
&lt;br&gt;&amp;gt; public void pushFetchPlan(String fetchPlanName) 
&lt;br&gt;&amp;gt; public FetchPlan popFetchPlan() 
&lt;br&gt;&amp;gt; would allow a temporary override of the FetchPlan without the application having to preserve the settings and update the FetchPlan to restore it.
&lt;br&gt;&amp;gt; In this light, it might make sense to be able to register FetchPlans by name with the PersistenceManagerFactory.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-554%29-JDO2.2-%3A-Dynamic-fetch-groups-tp13937782p19033044.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19008041</id>
	<title>[jira] Commented: (JDO-603) dist goal fails if top level dir does not end in &quot;jdo&quot;</title>
	<published>2008-08-15T19:17:44Z</published>
	<updated>2008-08-15T19:17:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623075#action_12623075&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623075#action_12623075&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-603:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;Good idea. The dist goal should not continue if the directory is wrongly named.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; dist goal fails if top level dir does not end in &amp;quot;jdo&amp;quot;
&lt;br&gt;&amp;gt; ------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-603
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-603&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-603&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: site and infrastructure
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: JDO 2 maintenance release 1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The algorithm used to compute the dist directory requires that the top-level directory terminate in the string &amp;quot;jdo&amp;quot;. The algorithm is codified in this line of trunk/project.properties:
&lt;br&gt;&amp;gt; jdo.releases.dir = ${basedir.substring(0, basedir.lastIndexOf('jdo'))}jdo/releases
&lt;br&gt;&amp;gt; This, for example, takes c:/jdoFooBar/branches/2.1.1 and converts it to c:/jdo/releases. It will fail completely for c:/code/branches/2.1.1.
&lt;br&gt;&amp;gt; A fix allowing an arbitrary string as the local tree top level directory is difficult because it needs to work for both &amp;lt;topdir&amp;gt;/trunk/ and &amp;lt;topdir&amp;gt;/branches/&amp;lt;version&amp;gt;. The solution is to document the requirements for the directory name in &amp;lt;topdir&amp;gt;/HowToReleaseJDO.html.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-603%29-dist-goal-fails-if-top-level-dir-does-not-end-in-%22jdo%22-tp18779917p19008041.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19007908</id>
	<title>[jira] Commented: (JDO-554) JDO2.2 : Dynamic fetch groups</title>
	<published>2008-08-15T18:49:44Z</published>
	<updated>2008-08-15T18:49:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623073#action_12623073&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623073#action_12623073&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-554:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt; also in the test you helpfully added the relevant bit of Employee/Person classes with the fields but phoneNumbers/address haven't been transferred to the list(s) of expected members
&lt;br&gt;&lt;br&gt;Right. 
&lt;br&gt;&lt;br&gt;&amp;gt; 1. testCategoriesInterface assumes that IEmployee is a persistent interface whereas in fact it isn't. Should this be PIEmployee? 
&lt;br&gt;&lt;br&gt;This test was renamed and turned into a failing case, and PIEmployee is now used for a positive test. 
&lt;br&gt;&lt;br&gt;&amp;gt; 2. testAddMember has its final check for the number of members yet seems to be 1 behind with the size. If i is 0 then there should be (i+1) members. Maybe testRemoveMember has something similar? not got that far yet. 
&lt;br&gt;&lt;br&gt;I've looked at this, and testAddMember has been fixed to expect one more than the index. But testRemoveMember should be correct as is.
&lt;br&gt;&lt;br&gt;I've checked in a new version with more diagnostics. 
&lt;br&gt;&lt;br&gt;svn commit -m &amp;quot;JDO-554 Added diagnostics, fixed errors&amp;quot; 
&lt;br&gt;Sending &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tck2/src/java/org/apache/jdo/tck/api/fetchgroup/FetchGroupTest.java
&lt;br&gt;Transmitting file data .
&lt;br&gt;Committed revision 686437.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; JDO2.2 : Dynamic fetch groups
&lt;br&gt;&amp;gt; -----------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-554
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: FetchGroup Lifecycle.JPG, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; From the Apache JDO jdo-dev mailing list, to register the issue for a subsequent JDO release, and holder for any further discussion
&lt;br&gt;&amp;gt; Below is a proposal that could possibly be included in a JDO2.2 (or in JDO2.1 
&lt;br&gt;&amp;gt; if feedback is positive for that, and JPOX already implements it).
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Problem : fetch groups are static, defined in metadata (XML/annotations). Sometimes it would be more convenient to be able to define fetch groups dynamically, for example based on user interaction in a web system.
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Proposal :
&lt;br&gt;&amp;gt; We add a new interface defining a FetchGroup, where a FetchGroup has a symbolic name and is for a class defining the fields of that class that are in the fetch group.
&lt;br&gt;&amp;gt; public interface FetchGroup
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getName(); // Symbolic name (as also used in MetaData)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getClassName(); // Class to which this group refers
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup add(String fieldName); // Add a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup remove(String fieldName); // Remove a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean hasField(String fieldName);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String[] getFieldNames();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void setPostLoad(boolean postLoad);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean getPostLoad();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; We allow users to register/deregister their FetchGroups with the PMF
&lt;br&gt;&amp;gt; PersistenceManagerFactory
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void addFetchGroup(FetchGroup grp);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void removeFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup createFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup getFetchGroup(String grpName, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup[] getFetchGroups();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void clearFetchGroups();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Usage:
&lt;br&gt;&amp;gt; FetchGroup grp1 = pmf.createFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class);
&lt;br&gt;&amp;gt; grp1.add(&amp;quot;field1&amp;quot;).add(&amp;quot;field2&amp;quot;).add(&amp;quot;field4&amp;quot;);
&lt;br&gt;&amp;gt; pmf.addFetchGroup(grp1); // FetchGroup registered
&lt;br&gt;&amp;gt; pm.getFetchPlan().setGroup(&amp;quot;myGroup1&amp;quot;); // FetchGroup used in this plan
&lt;br&gt;&amp;gt; // FetchPlan now has MyClass {field1, field2, field4}
&lt;br&gt;&amp;gt; We can then also allow dynamic changes like
&lt;br&gt;&amp;gt; pmf.getFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class).add(&amp;quot;field7&amp;quot;);
&lt;br&gt;&amp;gt; and this is directly reflected in the FetchPlan
&lt;br&gt;&amp;gt; Possible changes:-
&lt;br&gt;&amp;gt; 1. PMF has createFetchGroup and addFetchGroup and we could merge these so when &amp;nbsp;creating a FetchGroup it is added
&lt;br&gt;&amp;gt; 2. Doesnt support &amp;quot;recursion-depth&amp;quot; specification when adding a field to a FetchGroup, so we could add a method &amp;quot;add(String fieldName, int depth)&amp;quot;
&lt;br&gt;&amp;gt; Comments by Erik Samson
&lt;br&gt;&amp;gt; JDO 2 needs alternate ways to define fetch plans. Some food for thoughts here:
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add the DFG of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to create a global fetch plan without fetch groups at all
&lt;br&gt;&amp;gt; pm.setFetchPlan( &amp;quot;Person(name,age, address( {dfg} , country( {all} , -flagIMG ) ), accounts( {simple} , +{references} ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;quot; &amp;nbsp; ) ;
&lt;br&gt;&amp;gt; Person actually references the candidate class, so I suppose it could be optional.
&lt;br&gt;&amp;gt; This method will load name and age from a Person, then will load the configured DFG from the reference to Address, then will load all fields but flagIMG from the reference to Country into address, and finally will load simple fields and unary references to other objects from the collection of Accounts. We should also probably support depth in that mechanism.
&lt;br&gt;&amp;gt; Having this &amp;quot;SSFP&amp;quot; (Single String Fetch Plan) will allow to tune the system externally, from JMX or a configuration file for instance.
&lt;br&gt;&amp;gt; Comments by Matthew Adams
&lt;br&gt;&amp;gt; You might also consider overloaded methods on interface FetchGroup, just for completeness:
&lt;br&gt;&amp;gt; // (importing java.lang.reflect.Field)
&lt;br&gt;&amp;gt; FetchGroup add(Field field);
&lt;br&gt;&amp;gt; FetchGroup remove(Field field);
&lt;br&gt;&amp;gt; boolean hasField(Field field); // or has(Field) -- I'd consider &amp;nbsp;better verb
&lt;br&gt;&amp;gt; Field[] getFields();
&lt;br&gt;&amp;gt; The add &amp; remove methods should throw if the Field isn't contained in the class.
&lt;br&gt;&amp;gt; Comments by Christiaan:
&lt;br&gt;&amp;gt; May be also think about an option to restore to a fetchGroup to a state before you start changing it (possibly via supporting clone()) or reset to configuration defined in JDO file. 
&lt;br&gt;&amp;gt; Comments by Craig Russell:
&lt;br&gt;&amp;gt; Also, I think that we should consider ways to manipulate FetchPlans as well, both in programmatic as well as declarative approaches. Specifically, I'd like to be able to specify in my configuration the FetchPlan to use in a specific application context, e.g. the first time a PersistenceManager is used to getObjectById or newQuery, the FetchPlan for that use case is looked up from configuration and set as the current FetchPlan.
&lt;br&gt;&amp;gt; Further, if the application wants a specific FetchPlan, they should be able to call a method setFetchPlan with either the name of a configured FetchPlan or a FetchPlan to use.
&lt;br&gt;&amp;gt; And then, assuming that the FetchPlan must change during some interval of application processing, and then reset to the previous &amp;nbsp;settings, 
&lt;br&gt;&amp;gt; public void pushFetchPlan(FetchPlan); 
&lt;br&gt;&amp;gt; public void pushFetchPlan(String fetchPlanName) 
&lt;br&gt;&amp;gt; public FetchPlan popFetchPlan() 
&lt;br&gt;&amp;gt; would allow a temporary override of the FetchPlan without the application having to preserve the settings and update the FetchPlan to restore it.
&lt;br&gt;&amp;gt; In this light, it might make sense to be able to register FetchPlans by name with the PersistenceManagerFactory.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-554%29-JDO2.2-%3A-Dynamic-fetch-groups-tp13937782p19007908.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19007059</id>
	<title>[jira] Commented: (JDO-554) JDO2.2 : Dynamic fetch groups</title>
	<published>2008-08-15T16:37:44Z</published>
	<updated>2008-08-15T16:37:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623058#action_12623058&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623058#action_12623058&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-554:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;I think Date should be a basic type, since the intent is things that are represented as a simple mapping of a single column. Here's a proposed update to the javadoc:
&lt;br&gt;&amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* For use with {@link #addCategory} and {@link #removeCategory} calls.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* This category includes members of all primitive and immutable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* object class types as defined in section 6.4 of the specification,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* including String, Locale, Currency, BigDecimal, and BigInteger; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* as well as Date and its jdbc subtypes and Enum types.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @since 2.2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String BASIC = &amp;quot;basic&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; JDO2.2 : Dynamic fetch groups
&lt;br&gt;&amp;gt; -----------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-554
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-554&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-554&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: FetchGroup Lifecycle.JPG, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch, jdo-554.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; From the Apache JDO jdo-dev mailing list, to register the issue for a subsequent JDO release, and holder for any further discussion
&lt;br&gt;&amp;gt; Below is a proposal that could possibly be included in a JDO2.2 (or in JDO2.1 
&lt;br&gt;&amp;gt; if feedback is positive for that, and JPOX already implements it).
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Problem : fetch groups are static, defined in metadata (XML/annotations). Sometimes it would be more convenient to be able to define fetch groups dynamically, for example based on user interaction in a web system.
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Proposal :
&lt;br&gt;&amp;gt; We add a new interface defining a FetchGroup, where a FetchGroup has a symbolic name and is for a class defining the fields of that class that are in the fetch group.
&lt;br&gt;&amp;gt; public interface FetchGroup
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getName(); // Symbolic name (as also used in MetaData)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String getClassName(); // Class to which this group refers
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup add(String fieldName); // Add a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup remove(String fieldName); // Remove a field
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean hasField(String fieldName);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; String[] getFieldNames();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void setPostLoad(boolean postLoad);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean getPostLoad();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; We allow users to register/deregister their FetchGroups with the PMF
&lt;br&gt;&amp;gt; PersistenceManagerFactory
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void addFetchGroup(FetchGroup grp);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void removeFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup createFetchGroup(String name, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup getFetchGroup(String grpName, Class cls);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FetchGroup[] getFetchGroups();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; void clearFetchGroups();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; ========================================
&lt;br&gt;&amp;gt; Usage:
&lt;br&gt;&amp;gt; FetchGroup grp1 = pmf.createFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class);
&lt;br&gt;&amp;gt; grp1.add(&amp;quot;field1&amp;quot;).add(&amp;quot;field2&amp;quot;).add(&amp;quot;field4&amp;quot;);
&lt;br&gt;&amp;gt; pmf.addFetchGroup(grp1); // FetchGroup registered
&lt;br&gt;&amp;gt; pm.getFetchPlan().setGroup(&amp;quot;myGroup1&amp;quot;); // FetchGroup used in this plan
&lt;br&gt;&amp;gt; // FetchPlan now has MyClass {field1, field2, field4}
&lt;br&gt;&amp;gt; We can then also allow dynamic changes like
&lt;br&gt;&amp;gt; pmf.getFetchGroup(&amp;quot;myGroup1&amp;quot;, MyClass.class).add(&amp;quot;field7&amp;quot;);
&lt;br&gt;&amp;gt; and this is directly reflected in the FetchPlan
&lt;br&gt;&amp;gt; Possible changes:-
&lt;br&gt;&amp;gt; 1. PMF has createFetchGroup and addFetchGroup and we could merge these so when &amp;nbsp;creating a FetchGroup it is added
&lt;br&gt;&amp;gt; 2. Doesnt support &amp;quot;recursion-depth&amp;quot; specification when adding a field to a FetchGroup, so we could add a method &amp;quot;add(String fieldName, int depth)&amp;quot;
&lt;br&gt;&amp;gt; Comments by Erik Samson
&lt;br&gt;&amp;gt; JDO 2 needs alternate ways to define fetch plans. Some food for thoughts here:
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add the DFG of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to add all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all primitive fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all reference fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to remove all collections fields of a class into a fetch group
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;possibility to create a global fetch plan without fetch groups at all
&lt;br&gt;&amp;gt; pm.setFetchPlan( &amp;quot;Person(name,age, address( {dfg} , country( {all} , -flagIMG ) ), accounts( {simple} , +{references} ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;quot; &amp;nbsp; ) ;
&lt;br&gt;&amp;gt; Person actually references the candidate class, so I suppose it could be optional.
&lt;br&gt;&amp;gt; This method will load name and age from a Person, then will load the configured DFG from the reference to Address, then will load all fields but flagIMG from the reference to Country into address, and finally will load simple fields and unary references to other objects from the collection of Accounts. We should also probably support depth in that mechanism.
&lt;br&gt;&amp;gt; Having this &amp;quot;SSFP&amp;quot; (Single String Fetch Plan) will allow to tune the system externally, from JMX or a configuration file for instance.
&lt;br&gt;&amp;gt; Comments by Matthew Adams
&lt;br&gt;&amp;gt; You might also consider overloaded methods on interface FetchGroup, just for completeness:
&lt;br&gt;&amp;gt; // (importing java.lang.reflect.Field)
&lt;br&gt;&amp;gt; FetchGroup add(Field field);
&lt;br&gt;&amp;gt; FetchGroup remove(Field field);
&lt;br&gt;&amp;gt; boolean hasField(Field field); // or has(Field) -- I'd consider &amp;nbsp;better verb
&lt;br&gt;&amp;gt; Field[] getFields();
&lt;br&gt;&amp;gt; The add &amp; remove methods should throw if the Field isn't contained in the class.
&lt;br&gt;&amp;gt; Comments by Christiaan:
&lt;br&gt;&amp;gt; May be also think about an option to restore to a fetchGroup to a state before you start changing it (possibly via supporting clone()) or reset to configuration defined in JDO file. 
&lt;br&gt;&amp;gt; Comments by Craig Russell:
&lt;br&gt;&amp;gt; Also, I think that we should consider ways to manipulate FetchPlans as well, both in programmatic as well as declarative approaches. Specifically, I'd like to be able to specify in my configuration the FetchPlan to use in a specific application context, e.g. the first time a PersistenceManager is used to getObjectById or newQuery, the FetchPlan for that use case is looked up from configuration and set as the current FetchPlan.
&lt;br&gt;&amp;gt; Further, if the application wants a specific FetchPlan, they should be able to call a method setFetchPlan with either the name of a configured FetchPlan or a FetchPlan to use.
&lt;br&gt;&amp;gt; And then, assuming that the FetchPlan must change during some interval of application processing, and then reset to the previous &amp;nbsp;settings, 
&lt;br&gt;&amp;gt; public void pushFetchPlan(FetchPlan); 
&lt;br&gt;&amp;gt; public void pushFetchPlan(String fetchPlanName) 
&lt;br&gt;&amp;gt; public FetchPlan popFetchPlan() 
&lt;br&gt;&amp;gt; would allow a temporary override of the FetchPlan without the application having to preserve the settings and update the FetchPlan to restore it.
&lt;br&gt;&amp;gt; In this light, it might make sense to be able to register FetchPlans by name with the PersistenceManagerFactory.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-554%29-JDO2.2-%3A-Dynamic-fetch-groups-tp13937782p19007059.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19006891</id>
	<title>[jira] Commented: (JDO-583) Add license headers to source files.</title>
	<published>2008-08-15T16:17:44Z</published>
	<updated>2008-08-15T16:17:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623054#action_12623054&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623054#action_12623054&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-583:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;Looks good. Were you planning on adding the // style comments?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add license headers to source files.
&lt;br&gt;&amp;gt; ------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-583
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-583&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-583&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: tck2, tck2-legacy
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: JDO 2 maintenance release 1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Craig Russell
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: SignatureVerifier.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; RAT reveals files that need Apache license headers:
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/conf/jdo-2_1-signatures.txt
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/java/org/apache/jdo/tck/pc/company/ CompanyFactoryNewInstance.java
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/uml/org/apache/jdo/tck/pc/shoppingcart/ shoppingcart.argo.uml\
&lt;br&gt;&amp;gt; jdo2-tck-legacy-2.1/src/conf/jdo-2_1-signatures.txt
&lt;br&gt;&amp;gt; jdo2-tck-legacy-2.1/src/uml/org/apache/jdo/tck/pc/shoppingcart/ shoppingcart.argo.uml
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-583%29-Add-license-headers-to-source-files.-tp16127519p19006891.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19006706</id>
	<title>[jira] Resolved: (JDO-597) PMF : Add &quot;readOnly&quot; setting for better handling of read-only datastores</title>
	<published>2008-08-15T15:55:44Z</published>
	<updated>2008-08-15T15:55:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Craig Russell resolved JDO-597.
&lt;br&gt;-------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;All tck tests now pass.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; PMF : Add &amp;quot;readOnly&amp;quot; setting for better handling of read-only datastores
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-597
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: JDOReadOnlyException.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A user has a datastore that is outside their control and they either don't have permission to write to it, or maybe they have permissions but don't want to write to it. They want a better way of handling this, preventing updates to the datastore.
&lt;br&gt;&amp;gt; Propose :-
&lt;br&gt;&amp;gt; PMF property (with setter/getter)
&lt;br&gt;&amp;gt; javax.jdo.option.ReadOnly - values true | false
&lt;br&gt;&amp;gt; JDOReadOnlyException extends JDOUserException
&lt;br&gt;&amp;gt; Behaviour :-
&lt;br&gt;&amp;gt; When readOnly is set to true :-
&lt;br&gt;&amp;gt; Any operation resulting in a creation/modification of an object to be sent to the datastore should throw a JDOReadOnlyException. This may be at commit(), flush(), or alternatively at makePersistent() when using datastore txns, or query.deletePersistentAll(). That is, no change should be made to the datastore contents at all.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-597%29-PMF-%3A-Add-%22readOnly%22-setting-for-better-handling-of-read-only-datastores-tp18063883p19006706.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19006709</id>
	<title>[jira] Commented: (JDO-597) PMF : Add &quot;readOnly&quot; setting for better handling of read-only datastores</title>
	<published>2008-08-15T15:55:44Z</published>
	<updated>2008-08-15T15:55:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623051#action_12623051&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12623051#action_12623051&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-597:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;Loading the oid class did the trick.
&lt;br&gt;&lt;br&gt;svn commit -m &amp;quot;JDO-597 Make sure oid class is loaded&amp;quot; 
&lt;br&gt;Sending &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tck2/src/java/org/apache/jdo/tck/api/persistencemanagerfactory/FlushThrowsIfReadOnly.java
&lt;br&gt;Transmitting file data .
&lt;br&gt;Committed revision 686413.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; PMF : Add &amp;quot;readOnly&amp;quot; setting for better handling of read-only datastores
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-597
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: JDOReadOnlyException.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A user has a datastore that is outside their control and they either don't have permission to write to it, or maybe they have permissions but don't want to write to it. They want a better way of handling this, preventing updates to the datastore.
&lt;br&gt;&amp;gt; Propose :-
&lt;br&gt;&amp;gt; PMF property (with setter/getter)
&lt;br&gt;&amp;gt; javax.jdo.option.ReadOnly - values true | false
&lt;br&gt;&amp;gt; JDOReadOnlyException extends JDOUserException
&lt;br&gt;&amp;gt; Behaviour :-
&lt;br&gt;&amp;gt; When readOnly is set to true :-
&lt;br&gt;&amp;gt; Any operation resulting in a creation/modification of an object to be sent to the datastore should throw a JDOReadOnlyException. This may be at commit(), flush(), or alternatively at makePersistent() when using datastore txns, or query.deletePersistentAll(). That is, no change should be made to the datastore contents at all.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-597%29-PMF-%3A-Add-%22readOnly%22-setting-for-better-handling-of-read-only-datastores-tp18063883p19006709.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19004030</id>
	<title>[jira] Commented: (JDO-597) PMF : Add &quot;readOnly&quot; setting for better handling of read-only datastores</title>
	<published>2008-08-15T12:07:44Z</published>
	<updated>2008-08-15T12:07:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12622985#action_12622985&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12622985#action_12622985&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Craig Russell commented on JDO-597:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;Added constants to signatures file.
&lt;br&gt;&lt;br&gt;svn commit -m &amp;quot;JDO-597 Update signatures for readonly Constants&amp;quot; src/conf/jdo-2_2-signatures.txt
&lt;br&gt;Sending &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;src/conf/jdo-2_2-signatures.txt
&lt;br&gt;Transmitting file data .
&lt;br&gt;Committed revision 686326.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; PMF : Add &amp;quot;readOnly&amp;quot; setting for better handling of read-only datastores
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-597
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: JDOReadOnlyException.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A user has a datastore that is outside their control and they either don't have permission to write to it, or maybe they have permissions but don't want to write to it. They want a better way of handling this, preventing updates to the datastore.
&lt;br&gt;&amp;gt; Propose :-
&lt;br&gt;&amp;gt; PMF property (with setter/getter)
&lt;br&gt;&amp;gt; javax.jdo.option.ReadOnly - values true | false
&lt;br&gt;&amp;gt; JDOReadOnlyException extends JDOUserException
&lt;br&gt;&amp;gt; Behaviour :-
&lt;br&gt;&amp;gt; When readOnly is set to true :-
&lt;br&gt;&amp;gt; Any operation resulting in a creation/modification of an object to be sent to the datastore should throw a JDOReadOnlyException. This may be at commit(), flush(), or alternatively at makePersistent() when using datastore txns, or query.deletePersistentAll(). That is, no change should be made to the datastore contents at all.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-597%29-PMF-%3A-Add-%22readOnly%22-setting-for-better-handling-of-read-only-datastores-tp18063883p19004030.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19004015</id>
	<title>[jira] Updated: (JDO-583) Add license headers to source files.</title>
	<published>2008-08-15T12:05:44Z</published>
	<updated>2008-08-15T12:05:44Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Michelle Caisse updated JDO-583:
&lt;br&gt;--------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: SignatureVerifier.patch
&lt;br&gt;&lt;br&gt;The attached patch seems to work, but could use a bit of clean-up, I think.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add license headers to source files.
&lt;br&gt;&amp;gt; ------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-583
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-583&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-583&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: tck2, tck2-legacy
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: JDO 2 maintenance release 1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Craig Russell
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Michelle Caisse
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: SignatureVerifier.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; RAT reveals files that need Apache license headers:
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/conf/jdo-2_1-signatures.txt
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/java/org/apache/jdo/tck/pc/company/ CompanyFactoryNewInstance.java
&lt;br&gt;&amp;gt; jdo2-tck-2.1/src/uml/org/apache/jdo/tck/pc/shoppingcart/ shoppingcart.argo.uml\
&lt;br&gt;&amp;gt; jdo2-tck-legacy-2.1/src/conf/jdo-2_1-signatures.txt
&lt;br&gt;&amp;gt; jdo2-tck-legacy-2.1/src/uml/org/apache/jdo/tck/pc/shoppingcart/ shoppingcart.argo.uml
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-583%29-Add-license-headers-to-source-files.-tp16127519p19004015.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19003958</id>
	<title>[jira] Commented: (JDO-597) PMF : Add &quot;readOnly&quot; setting for better handling of read-only datastores</title>
	<published>2008-08-15T12:01:46Z</published>
	<updated>2008-08-15T12:01:46Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12622979#action_12622979&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12622979#action_12622979&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andy Jefferson commented on JDO-597:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;The log entry &amp;quot;2) Id &amp;quot;org.apache.jdo.tck.pc.company.Company$Oid: 1&amp;quot; has not determined to the class&amp;quot;
&lt;br&gt;suggests that the OID class (passed in to pm.getObjectById) is not known about, and indeed it is a custom PK class and &amp;quot;Company&amp;quot; has not been mentioned during that PMF2's existence, so no metadata is loaded at that point. Consequently DataNucleus has no way of knowing what (persistable) class this PK class refers to and so cannot find the object. Perhaps if you did a pm.getExtent(Company.class) first (to give the implementation knowledge and hence load the metadata) then it would get the object from the id
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; PMF : Add &amp;quot;readOnly&amp;quot; setting for better handling of read-only datastores
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JDO-597
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-597&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-597&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: JDO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: api2, api2-legacy, specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Andy Jefferson
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: JDO 2 maintenance release 2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: JDOReadOnlyException.patch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A user has a datastore that is outside their control and they either don't have permission to write to it, or maybe they have permissions but don't want to write to it. They want a better way of handling this, preventing updates to the datastore.
&lt;br&gt;&amp;gt; Propose :-
&lt;br&gt;&amp;gt; PMF property (with setter/getter)
&lt;br&gt;&amp;gt; javax.jdo.option.ReadOnly - values true | false
&lt;br&gt;&amp;gt; JDOReadOnlyException extends JDOUserException
&lt;br&gt;&amp;gt; Behaviour :-
&lt;br&gt;&amp;gt; When readOnly is set to true :-
&lt;br&gt;&amp;gt; Any operation resulting in a creation/modification of an object to be sent to the datastore should throw a JDOReadOnlyException. This may be at commit(), flush(), or alternatively at makePersistent() when using datastore txns, or query.deletePersistentAll(). That is, no change should be made to the datastore contents at all.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28JDO-597%29-PMF-%3A-Add-%22readOnly%22-setting-for-better-handling-of-read-only-datastores-tp18063883p19003958.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19003832</id>
	<title>Re: ServiceLoader for JDO PersistenceManagerFactory</title>
	<published>2008-08-15T11:51:16Z</published>
	<updated>2008-08-15T11:51:16Z</updated>
	<author>
		<name>Craig L Russell</name>
	</author>
	<content type="html">Here's the proposed text for the specification update:
&lt;br&gt;&lt;br&gt;&amp;lt;proposed&amp;gt;
&lt;br&gt;The PersistenceManagerFactory implementation class must implement a no- 
&lt;br&gt;args constructor. This allows the standard Java 6 service discovery &amp;nbsp;
&lt;br&gt;implementation to create a factory instance upon which the &amp;nbsp;
&lt;br&gt;getPersistenceManagerFactory methods can be invoked.
&lt;br&gt;&amp;lt;/proposed&amp;gt;
&lt;br&gt;&lt;br&gt;Craig
&lt;br&gt;&lt;br&gt;On Aug 15, 2008, at 11:37 AM, Craig L Russell wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Re: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-556&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-556&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In order to implement this feature, we will need to require that an &amp;nbsp;
&lt;br&gt;&amp;gt; implementation support a public constructor of the implementation &amp;nbsp;
&lt;br&gt;&amp;gt; class so that the getPersistenceManager(Map) and (Map, Map) can be &amp;nbsp;
&lt;br&gt;&amp;gt; invoked on the factory.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'd like to propose that we update the specification to include this &amp;nbsp;
&lt;br&gt;&amp;gt; requirement. Any objections?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [The RI currently supports this feature, although there are no tests &amp;nbsp;
&lt;br&gt;&amp;gt; for it.]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Craig
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Craig L Russell
&lt;br&gt;&amp;gt; Architect, Sun Java Enterprise System &lt;a href=&quot;http://java.sun.com/products/jdo&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/jdo&lt;/a&gt;&lt;br&gt;&amp;gt; 408 276-5638 mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19003832&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Craig.Russell@...&lt;/a&gt;
&lt;br&gt;&amp;gt; P.S. A good JDO? O, Gasp!
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;/div&gt;Craig L Russell
&lt;br&gt;Architect, Sun Java Enterprise System &lt;a href=&quot;http://java.sun.com/products/jdo&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/jdo&lt;/a&gt;&lt;br&gt;408 276-5638 mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19003832&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Craig.Russell@...&lt;/a&gt;
&lt;br&gt;P.S. A good JDO? O, Gasp!
&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (3K) &lt;a href=&quot;http://www.nabble.com/attachment/19003832/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/JDO---Development-f23351.html&quot; embed=&quot;fixTarget[23351]&quot; target=&quot;_top&quot; &gt;JDO - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/ServiceLoader-for-JDO-PersistenceManagerFactory-tp19003646p19003832.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19003646</id>
	<title>ServiceLoader for JDO PersistenceManagerFactory</title>
	<published>2008-08-15T11:37:02Z</published>
	<updated>2008-08-15T11:37:02Z</updated>
	<author>
		<name>Craig L Russell</name>
	</author>
	<content type="html">Re: &lt;a href=&quot;https://issues.apache.org/jira/browse/JDO-556&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JDO-556&lt;/a&gt;&lt;br&gt;&lt;br&gt;In order to implement this feature, we will need to require that an &amp;nbsp;
&lt;br&gt;implementation support a public constructor of the implementation &amp;nbsp;
&lt;br&gt;class so that the getPersistenceManager(Map) and (Map, Map) can be &amp;nbsp;
&lt;br&gt;invoked on the factory.
&lt;br&gt;&lt;br&gt;I'd like to propose that we update the specification to include this &amp;nbsp;
&lt;br&gt;requirement. Any objections?
&lt;br&gt;&lt;br&gt;[The RI currently supports this feature, although there are no tests &amp;nbsp;
&lt;br&gt;for it.]
&lt;br&gt;&lt;br&gt;Craig
&lt;br&gt;&lt;br&gt;Craig L Russell
&lt;br&gt;Architect, Sun Java Enterprise System &lt;a href=&quot;http://java.sun.com/products/jdo&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/jdo&lt;/a&gt;&lt;br&gt;408 276-5638 mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=190