From jdo-commits-return-2981-apmail-db-jdo-commits-archive=www.apache.org@db.apache.org Sat Feb 18 20:37:51 2012 Return-Path: X-Original-To: apmail-db-jdo-commits-archive@www.apache.org Delivered-To: apmail-db-jdo-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0880B971A for ; Sat, 18 Feb 2012 20:37:51 +0000 (UTC) Received: (qmail 24742 invoked by uid 500); 18 Feb 2012 20:37:50 -0000 Mailing-List: contact jdo-commits-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-commits@db.apache.org Received: (qmail 24734 invoked by uid 99); 18 Feb 2012 20:37:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 18 Feb 2012 20:37:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.131] (HELO eos.apache.org) (140.211.11.131) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 18 Feb 2012 20:37:46 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id 877A7D24; Sat, 18 Feb 2012 20:37:25 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Apache Wiki To: Apache Wiki Date: Sat, 18 Feb 2012 20:37:25 -0000 Message-ID: <20120218203725.3751.46481@eos.apache.org> Subject: =?utf-8?q?=5BJdo_Wiki=5D_Update_of_=22ChangeLog=22_by_MichaelBouschen?= Auto-Submitted: auto-generated X-Virus-Checked: Checked by ClamAV on apache.org Dear Wiki user, You have subscribed to a wiki page or wiki category on "Jdo Wiki" for chang= e notification. The "ChangeLog" page has been changed by MichaelBouschen: http://wiki.apache.org/jdo/ChangeLog?action=3Ddiff&rev1=3D67&rev2=3D68 Comment: Moved items 12-17 from proposed to accepted =3D This is the list of changes for maintenance of JSR-243. =3D IssueLog has the list of changes requested by the community. + = =3D=3D PROPOSED =3D=3D - = 1. Run the TCK using maven 2 instead of maven 1. Add a special maven pro= ject exectck that executes the tck tests in various configurations. = 1. Use Java 6 {{{ServiceLoader}}} to find a JDO {{{PersistenceManagerFac= tory}}} implementation. @@ -13, +13 @@ 1. Change the return type for avg in JDOQL query. = 1. Add methods to JDOQL query: - a. {{{charAt(int)}}} applies to {{{String}}} type = + a. {{{charAt(int)}}} applies to {{{String}}} type - a. {{{startsWith(String, int)}}} applies to {{{String}}} type = + a. {{{startsWith(String, int)}}} applies to {{{String}}} type - a. {{{length()}}} applies to {{{String}}} type = + a. {{{length()}}} applies to {{{String}}} type - a. {{{trim()}}} applies to {{{String}}} type = + a. {{{trim()}}} applies to {{{String}}} type - a. {{{ordinal()}}} applies to {{{Enum}}} types = + a. {{{ordinal()}}} applies to {{{Enum}}} types - a. {{{toString()}}} applies to {{{Enum}}} types = + a. {{{toString()}}} applies to {{{Enum}}} types - a. {{{getHour()}}} applies to {{{java.util.Date}}} type = + a. {{{getHour()}}} applies to {{{java.util.Date}}} type - a. {{{getMinutes()}}} applies {{{to java.util.Date}}} type = + a. {{{getMinutes()}}} applies {{{to java.util.Date}}} type - a. {{{getSeconds()}}} applies {{{to java.util.Date}}} type = + a. {{{getSeconds()}}} applies {{{to java.util.Date}}} type - a. {{{getDay()}}} applies to {{{java.util.Date}}} type = + a. {{{getDay()}}} applies to {{{java.util.Date}}} type - a. {{{getMonth()}}} applies to {{{java.util.Date}}} type = + a. {{{getMonth()}}} applies to {{{java.util.Date}}} type - a. {{{getYear()}}} applies to {{{java.util.Date}}} type = + a. {{{getYear()}}} applies to {{{java.util.Date}}} type - a. {{{Math.cos(number)}}} static method in java.lang.Math, applies to {= {{double}}} type = + a. {{{Math.cos(number)}}} static method in java.lang.Math, applies to {= {{double}}} type - a. {{{Math.sin(number)}}} static method in java.lang.Math, applies to {= {{double}}} type = + a. {{{Math.sin(number)}}} static method in java.lang.Math, applies to {= {{double}}} type - a. {{{Math.tan(number)}}} static method in java.lang.Math, applies to {= {{double}}} type = + a. {{{Math.tan(number)}}} static method in java.lang.Math, applies to {= {{double}}} type a. {{{JDOHelper.getVersion(Object)}}} static method in {{{JDOHelper}}},= allows using the version of an instance directly in a query = 1. Allow specifying position of fields in generated schema using the "po= sition" attribute or annotation. @@ -42, +42 @@ = 1. Provide a boolean property to serialize access to objects. Add method= s to set and clear the property. Add xml metadata to specify the property p= er class or interface. = - 1. Provide an API to dynamically create and access metadata equivalent t= o specifying metadata via annotations or xml. - = - 1. Change the meaning of the validate flag in getObjectById to allow use= rs to assert that the class of the oid is the exact class of the datastore = instance. - = - 1. Add extensions[] to the @Order annotation to mirror the xml. - = - 1. Deprecate the api2-legacy and tck2-legacy projects as these are for u= se with JDK 1.4 and no longer need to be maintained. - = - 1. Add an API to cancel a running query. - = - 1. Add an API and PMF properties to get and set datastore read and write= timeout values. - = =3D=3D ACCEPTED =3D=3D - = - 1. Allow multiple fields (properties) to be used for ordering persistent= Lists or Maps. = + 1. Allow multiple fields (properties) to be used for ordering persistent= Lists or Maps. = 1. Specify the behavior at flush time if the user has inserted elements = or entries out of order in ordered fields (properties). = @@ -78, +65 @@ = 1. Remove the "serialized" attribute from 18.15.8 since the ordering col= umn is not serialized. = + 1. Add property {{{CopyOnAttach}}} to {{{PersistenceManager}}} and {{{Pe= rsistenceManagerFactory}}}. With the property set to true, makes a copy of = the detached instance on {{{makePersistent}}}. If the property is set to fa= lse, it attaches the detached instance itself. + = + 1. Add {{{ObjectState}}} enum and convenience methods in {{{JDOHelper}}}= to return the {{{ObjectState}}} of an instance. + = + 1. Add method {{{void evictAll (boolean subclasses, Class pcClass)}}} to= {{{PersistenceManager}}}. This allows to evict instances for a particular = class. Change signatures of {{{DataStoreCache}}} methods pinAll, unpinAll, = and evictAll from {{{(Class pcClass, boolean subclasses)}}} to {{{(boolean = subclasses, Class pcClass)}}} to accommodate adding methods that change the= pcClass parameter from Class to Class.... + = + 1. Clarify the behavior of method {{{evictAll}}} if the parameter is a p= ersistent interface. This comment also applies to the {{{DataStoreCache}}} = interface method {{{void evictAll (Class pcClass, boolean subclasses)}}}. + = + 1. Require that the implementation not hold a strong reference to flushe= d dirty instances, allowing these instances to be garbage collected. + = + 1. Change signatures of {{{PersistenceManager}}} methods that take {{{Ob= ject[]}}} as an argument to take {{{Object...}}} as an argument. These sign= atures are source and binary compatible with existing programs. Where the {= {{Object...}}} parameter would not be the last parameter, deprecate the met= hod and reorder the parameters so {{{Object...}}} is last. = 1. In 5.4.1, Compound Identity should be updated to reflect that for key= fields of reference types, the type of the key field is the reference type= in the class but the oid of the reference type in the oid class. = @@ -94, +92 @@ 1. In section 7.5, add {{{public byte storeByteField(int fieldNumber, by= te value);}}} to {{{ObjectIdFieldConsumer}}}. = 1. In Chapter 8, add after {{{class JDOHelper {}}} - = - {{{public JDOHelper();}}} + . {{{public JDOHelper();}}} - = For some usage patterns, an instance of {{{JDOHelper}}} on which to invo= ke methods is preferable to the use of static methods. For this purpose, a = public constructor is provided. = 1. In Chapter 8, add a convenience method that returns a {{{PersistenceM= anager}}} proxy that can be used in web and ejb containers to dynamically b= ind to the transaction-associated {{{PersistenceManager}}}. = 1. In Chapter 9, add section on managing date formatting for {{{ObjectId= entity}}} constructors. - {{{public synchronized void registerDateFormat(java.text.DateFormat df)= ;}}} + . {{{public synchronized void registerDateFormat(java.text.DateFormat d= f);}}} = 1. In 9.4, add method to retrieve persistence-capable classes that have = been registered. - {{{public java.util.Collection getRegisteredClasses();}}} + . {{{public java.util.Collection getRegisteredClasses();}}} = 1. In 9.5, add method to verify that the class is authorized to be a sta= te manager. - {{{public static void checkAuthorizedStateManagerClass(Class smClass);}= }} + . {{{public static void checkAuthorizedStateManagerClass(Class smClass)= ;}}} = 1. In 9.5, add method to register multiple state manager classes. - {{{public static void registerAuthorizedStateManagerClasses(java.util.C= ollection smClasses) throws SecurityException;}}} + . {{{public static void registerAuthorizedStateManagerClasses(java.util= .Collection smClasses) throws SecurityException;}}} = 1. In Chapter 11, add properties for configuring {{{PersistenceManagerFa= ctory}}} that are consistent with JPA specification of {{{TransactionType}}= } and Persistence Unit Name. = - 1. In Chapter 12, specify the behavior of {{{PersistenceManager}}} if it= extends {{{Serializable}}} and {{{writeObject}}} is called. = + 1. In Chapter 12, specify the behavior of {{{PersistenceManager}}} if it= extends {{{Serializable}}} and {{{writeObject}}} is called. = 1. In 12.6.6, clarify that a {{{JDOUserException}}} will be thrown when = invoking {{{newInstance}}}: if a class is not persistence-capable, or does = not declare a public no-args constructor; if an interface is not persistenc= e-capable or declares methods that are not defined as persistent properties= ; if an abstract class is not persistence-capable or declares abstract meth= ods that are not defined as persistent properties. = @@ -144, +140 @@ 1. In 15.3, add text to describe updating the other side of relationship= s where this side is deleted. This maintains referential integrity for dele= te as well as update. = 1. Add to 17.1.11 - {{{JDOUserCallbackException extends javax.jdo.JDOUserException}}} + . {{{JDOUserCallbackException extends javax.jdo.JDOUserException}}} = 1. In Chapter 18, add an xml element to specify the fetch plan to use fo= r a query. = 1. In 18.15.1, change "(e.g. a field of type Object can specify field-t= ype=3D=E2=80=9DInteger=E2=80=9D)." to "(e.g. an element of type Object can = specify element-type=3D=E2=80=9DInteger=E2=80=9D). = 1. In Chapter 18, add to .jdo metadata: - = - {{{ }}} + . {{{ }}} = 1. Add to 18.15.1 "The default for dependent-element is false." = @@ -164, +159 @@ = 1. Change 21.13 from "Some methods require a non-null state manager. In = these cases, if the {{{jdoStateManager}}} is null, then {{{IllegalStateExce= ption}}} is thrown." to "Some methods require a non-null state manager. In = these cases, if the {{{jdoStateManager}}} is null, then {{{JDOFatalInternal= Exception}}} is thrown." = - 1. Change 21.21.7 Generated jdoGetManagedFieldCount sample implementatio= n to avoid using the jdoFieldNames field that might be initialized after it= is used during initialization of a subclass. = + 1. Change 21.21.7 Generated jdoGetManagedFieldCount sample implementatio= n to avoid using the jdoFieldNames field that might be initialized after it= is used during initialization of a subclass. {{{ protected static int jdoGetManagedFieldCount () { return jdoFieldNames.length; } - }}} + }}} - to = + to {{{ protected static int jdoGetManagedFieldCount () { return ; - } = + } - }}} + }}} 1. Add to Chapter 23, constants defined in the {{{JDOPermission}}} class: {{{ public static final javax.jdo.spi.JDOPermission CLOSE_PERSISTENCE_MANAGER= _FACTORY =3D "closePersistenceManagerFactory"; public static final javax.jdo.spi.JDOPermission GET_METADATA =3D "getMeta= data"; public static final javax.jdo.spi.JDOPermission MANAGE_METADATA =3D "mana= geMetadata"; public static final javax.jdo.spi.JDOPermission SET_STATE_MANAGER =3D "se= tStateManager"; - }}} + }}} - 1. Add property {{{CopyOnAttach}}} to {{{PersistenceManager}}} and {{{Pe= rsistenceManagerFactory}}}. With the property set to true, makes a copy of = the detached instance on {{{makePersistent}}}. If the property is set to fa= lse, it attaches the detached instance itself. = - 1. Add {{{ObjectState}}} enum and convenience methods in {{{JDOHelper}}}= to return the {{{ObjectState}}} of an instance. + 1. Provide an API to dynamically create and access metadata equivalent t= o specifying metadata via annotations or xml. = - 1. Add method {{{void evictAll (boolean subclasses, Class pcClass)}}} to= {{{PersistenceManager}}}. This allows to evict instances for a particular = class. Change signatures of {{{DataStoreCache}}} methods pinAll, unpinAll, = and evictAll from {{{(Class pcClass, boolean subclasses)}}} to {{{(boolean = subclasses, Class pcClass)}}} to accommodate adding methods that change the= pcClass parameter from Class to Class.... + 1. Change the meaning of the validate flag in getObjectById to allow use= rs to assert that the class of the oid is the exact class of the datastore = instance. = - 1. Clarify the behavior of method {{{evictAll}}} if the parameter is a p= ersistent interface. This comment also applies to the {{{DataStoreCache}}} = interface method {{{void evictAll (Class pcClass, boolean subclasses)}}}. = + 1. Add extensions[] to the @Order annotation to mirror the xml. = - 1. Require that the implementation not hold a strong reference to flushe= d dirty instances, allowing these instances to be garbage collected. + 1. Deprecate the api2-legacy and tck2-legacy projects as these are for u= se with JDK 1.4 and no longer need to be maintained. = - 1. Change signatures of {{{PersistenceManager}}} methods that take {{{Ob= ject[]}}} as an argument to take {{{Object...}}} as an argument. These sign= atures are source and binary compatible with existing programs. Where the {= {{Object...}}} parameter would not be the last parameter, deprecate the met= hod and reorder the parameters so {{{Object...}}} is last. + 1. Add an API to cancel a running query. + = + 1. Add an API and PMF properties to get and set datastore read and write= timeout values. = =3D=3D=3D JDK 1.5 changes =3D=3D=3D These are changes proposed for JDO 2 to better support JDK 1.5. @@ -201, +197 @@ 1. Add to 6.3 a section requiring support for enum types, including subc= lasses of enum types. = 1. Change in 12.6 signatures of the following {{{PersistenceManager}}} m= ethods to be generic. Note that these changes are source compatible with ex= isting application programs. - ||JDO 2.0||JDO 2.0 Maintenance Release|| + ||JDO 2.0 ||JDO 2.0 Maintenance Release || - ||Object getObjectById (Class cls, Object key)|| T getObjectById (C= lass cls, Object key)|| + ||Object getObjectById (Class cls, Object key) ||T getObjectById (Class= cls, Object key) || - ||Object newInstance(Class persistenceCapable)|| T newInstance(Clas= s persistenceCapable)|| + ||Object newInstance(Class persistenceCapable) ||T newInstance(Class= persistenceCapable) || - ||Object makePersistent (Object pc)|| T makePersistent (T pc)|| + ||Object makePersistent (Object pc) ||T makePersistent (T pc) || - ||Object[ ] makePersistentAll (Object[ ] pcs)|| T[ ] makePersistent= All (T[ ] pcs)|| + ||Object[ ] makePersistentAll (Object[ ] pcs) ||T[ ] makePersistentAll = (T[ ] pcs) || - ||Collection makePersistentAll (Collection pcs)|| Collection mak= ePersistentAll (Collection pcs)|| + ||Collection makePersistentAll (Collection pcs) ||Collection makePer= sistentAll (Collection pcs) || - ||Object detachCopy(Object pc) || T detachCopy(T pc) || + ||Object detachCopy(Object pc) ||T detachCopy(T pc) || - ||Collection detachCopyAll(Collection pcs) || Collection detachC= opyAll(Collection pcs) || + ||Collection detachCopyAll(Collection pcs) ||Collection detachCopyAl= l(Collection pcs) || - ||Object[ ] detachCopyAll(Object[ ] pcs) || T[ ] detachCopyAll(T[ ]= pcs) || + ||Object[ ] detachCopyAll(Object[ ] pcs) ||T[ ] detachCopyAll(T[ ] pcs)= || + = + = = 1. Add to 15.1 a paragraph describing that mapping an enum to a fixed-pr= ecision numeric type uses the ordinal() value for storage; mapping to a cha= racter column type (CHAR, VARCHAR, etc.) uses the name() value for storage;= mapping to any other column type is an error. = @@ -218, +216 @@ 1. Provide interfaces that extend both JDO and JPA in order to make it e= asier to migrate applications from JDO to JPA. = =3D=3D DEFERRED =3D=3D - = - none yet - =20