Hi David,

What would you specifically change to make this list work? For JDO 1 applications that test their implementation, we will need to include a requirement that any collection/map type that can be tested for from JDO1 be represented in the list. For JDO 2 TCK, we can require that they are supported.

How about a line in the spec, e.g.

For JDO 2, this feature is not optional. For compatibility with applications written to the JDO 1 interface, this feature must be included in the optional features list.

Add this line for each of the options:

javax.jdo.option.ArrayList

javax.jdo.option.LinkedList

javax.jdo.option.TreeMap

javax.jdo.option.TreeSet

javax.jdo.option.Vector

javax.jdo.option.List

Craig

On Feb 13, 2006, at 1:07 PM, David Jordan wrote:

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.

 

<proposed>

Optional Feature Support

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.

javax.jdo.option.TreeMap

The JDO implementation supports persistent field types of TreeMap.

javax.jdo.option.TreeSet

The JDO implementation supports persistent field types of TreeSet.

javax.jdo.option.Vector

The JDO implementation supports persistent field types of Vector.

javax.jdo.option.List

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.

javax.jdo.option.Array

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.

javax.jdo.query.SQL

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:

javax.jdo.query.JDOQL]

Other query languages are represented by a String not defined in this specification.

</proposed>

 

Craig Russell

Architect, Sun Java Enterprise System http://java.sun.com/products/jdo

408 276-5638 mailto:[EMAIL PROTECTED]

P.S. A good JDO? O, Gasp!

 


Craig Russell

Architect, Sun Java Enterprise System http://java.sun.com/products/jdo

408 276-5638 mailto:[EMAIL PROTECTED]

P.S. A good JDO? O, Gasp!


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to