As I have lobbied before…
Some of the optional collections are supported by all of the JDO implementations (that I am aware of). A developer reaction back when JDO 1.0 was first released was that there were an insufficient number of collections that were required and guaranteed to be available with all implementations. A few of our optional collections may also be required (i.e. guaranteed) with EJB 3.0. So I’d recommend that some of our optional collections be required. Such an action would affect this list.
David Jordan
Object Identity, Inc.
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Monday, February 13, 2006 4:00 PM
To: JDO Expert Group; Apache JDO project
Subject: Negative VOTE Issue 138: Define optional features for PMF
Javadogs,
Here's the proposed optional feature list for JDO 2. Please make sure your favorite optional feature is accurately represented.
Collection supportedOptions();
The JDO implementation might optionally support certain features, and will report the features that are supported. The supported query languages are included in the returned Collection.
A11.5-1 [This method returns a Collection of String, each String instance representing an optional feature of the implementation or a supported query language. The following are the values of the String for each optional feature in the JDO specification:
javax.jdo.option.TransientTransactional
The JDO implementation supports the transient transactional life cycle states.
javax.jdo.option.NontransactionalRead
The JDO implementation supports reading and querying outside a transaction.
javax.jdo.option.NontransactionalWrite
The JDO implementation supports the persistent-nontransactional-dirty life cycle state.
javax.jdo.option.RetainValues
The JDO implementation supports retaining values of persistent instances after commit.
javax.jdo.option.Optimistic
The JDO implementation supports the optimistic transaction semantics.
javax.jdo.option.ApplicationIdentity
The JDO implementation supports application identity for persistent classes.
javax.jdo.option.DatastoreIdentity
The JDO implementation supports datastore identity for persistent classes.
javax.jdo.option.NonDurableIdentity
The JDO implementation supports nondurable identity for persistent classes
javax.jdo.option.ArrayList
The JDO implementation supports persistent field types of ArrayList.
javax.jdo.option.LinkedList
The JDO implementation supports persistent field types of LinkedList.
The JDO implementation supports persistent field types of TreeMap.
The JDO implementation supports persistent field types of TreeSet.
The JDO implementation supports persistent field types of Vector.
The JDO implementation supports persistent field types of List. This is now a requirement but the option is for compatibility with JDO 1.0 where this support was optional.
The JDO implementation supports persistent field types of Array.
javax.jdo.option.NullCollection
The JDO implementation allows null collections to be stored. Most relational implementations do not distinguish between empty and null collections, and this option will not be set for those implementations.
javax.jdo.option.ChangeApplicationIdentity
The JDO implementation supports changing of the application identity of instances.
javax.jdo.option.BinaryCompatibility
The JDO implementation supports the binary compatibility contract.
javax.jdo.option.GetDataStoreConnection
The JDO implementation supports use of a direct datastore connection.
javax.jdo.option.GetJDBCConnection
The JDO implementation supports use of a direct datastore connection that implements the java.sql.Connection interface.
The JDO implementation supports SQL for queries executed via the javax.jdo.Query interface.
javax.jdo.option.UnconstrainedQueryVariables]
The JDO implementation supports JDOQL queries that contain a variable without a contains clause to constrain the variable.
javax.jdo.option.version.DateTime
The JDO implementation supports use of a the date-time strategy for version checking.
javax.jdo.option.version.StateImage
The JDO implementation supports use of the state-image strategy for version checking.
javax.jdo.option.PreDirtyEvent
The JDO implementation supports event notifications of changes made to persistent instances before the instance is made dirty.
javax.jdo.option.mapping.HeterogeneousObjectType
The JDO implementation supports mapping a persistent field of type Object to multiple types. There is no standard way to map this support.
javax.jdo.option.mapping.HeterogeneousInterfaceType
The JDO implementation supports mapping a persistent field of a persistent interface type to multiple types. There is no standard way to map this support.
javax.jdo.option.mapping.JoinedTablePerClass
The JDO implementation supports mapping persistent class inheritance hierarchies to tables in which each class, including abstract classes, is mapped to a table; and each table mapped to a subclass defines a primary key that has a foreign key relationship to the primary key of the table mapped by the superclass.
javax.jdo.option.mapping.JoinedTablePerConcreteClass
The JDO implementation supports mapping persistent class inheritance hierarchies to tables in which each concrete class (excluding abstract classes) is mapped to a table; and each table mapped to a subclass defines a primary key that has a foreign key relationship to the primary key of the table mapped by the superclass.
javax.jdo.option.mapping.NonJoinedTablePerConcreteClass
The JDO implementation supports mapping persistent class inheritance hierarchies to tables in which each concrete class (excluding abstract classes) is mapped to a table; and there is not necessarily any foreign key relationship among the mapped tables.
javax.jdo.option.mapping.RelationSubclassTable
The JDO implementation supports mapping persistent fields containing relationships to classes in an inheritance relationship that use subclass-table as the field mapping strategy.
A11.5-2 [The standard JDO query must be returned as the String:
Other query languages are represented by a String not defined in this specification.