Author: mcaisse Date: Thu Feb 28 12:17:16 2008 New Revision: 632111 URL: http://svn.apache.org/viewvc?rev=632111&view=rev Log: more files for spec update Modified: db/jdo/site/docs/exceptions.html db/jdo/site/docs/glossary.html db/jdo/site/docs/jdo_v_jpa.html db/jdo/site/docs/jdo_v_jpa_api.html db/jdo/site/docs/jdo_v_jpa_orm.html db/jdo/site/docs/mail-lists.html db/jdo/site/docs/pmf.html db/jdo/site/docs/specifications.html db/jdo/site/docs/state_transition.html db/jdo/site/docs/team-list.html Modified: db/jdo/site/docs/exceptions.html URL: http://svn.apache.org/viewvc/db/jdo/site/docs/exceptions.html?rev=632111&r1=632110&r2=632111&view=diff ============================================================================== --- db/jdo/site/docs/exceptions.html (original) +++ db/jdo/site/docs/exceptions.html Thu Feb 28 12:17:16 2008 @@ -9,20 +9,20 @@ This is the base class for all JDO exceptions. It is a subclass of RuntimeException, and need not be declared or caught.



Can Retry Exceptions

JDO Can Retry Exceptions -
ExceptionDescription
JDOCanRetryExceptionThis is the base class for errors that can be retried.
JDOUserExceptionThis is the base class for user errors that can be retried.
JDODataStoreExceptionThis is the base class for datastore errors that can be retried. - Any root SQLException that caused this will typically be nested within this exception.
JDOObjectNotFoundExceptionThis exception is to notify the application that an object does not exist in the +
ExceptionDescription
JDOCanRetryExceptionThis is the base class for errors that can be retried.
JDOUserExceptionThis is the base class for user errors that can be retried.
JDODataStoreExceptionThis is the base class for datastore errors that can be retried. + Any root SQLException that caused this will typically be nested within this exception.
JDOObjectNotFoundExceptionThis exception is to notify the application that an object does not exist in the datastore. When this exception is thrown during a transaction, there has been no change in the status of the transaction in progress. If this exception is a nested exception - thrown during commit, then the transaction is rolled back.
JDOUnsupportedOptionExceptionThis exception is thrown by an implementation to indicate that it does not implement a + thrown during commit, then the transaction is rolled back.
JDOUnsupportedOptionExceptionThis exception is thrown by an implementation to indicate that it does not implement a JDO optional feature.


Fatal Exceptions

JDO Fatal Exceptions -
ExceptionDescription
JDOFatalExceptionThis is the base class for errors that cannot be retried. This exception generally +
ExceptionDescription
JDOFatalExceptionThis is the base class for errors that cannot be retried. This exception generally means that the transaction associated with the PersistenceManager has been rolled back, - and the transaction should be abandoned.
JDOFatalUserExceptionThis is the base class for user errors that cannot be retried.
JDOFatalInternalExceptionThis is the base class for JDO implementation failures.
JDOFatalDataStoreExceptionThis is the base class for fatal datastore errors. When this exception is thrown, the + and the transaction should be abandoned.
JDOFatalUserExceptionThis is the base class for user errors that cannot be retried.
JDOFatalInternalExceptionThis is the base class for JDO implementation failures.
JDOFatalDataStoreExceptionThis is the base class for fatal datastore errors. When this exception is thrown, the transaction has been rolled back. Any root SQLException that caused this will typically be nested - within this exception.
JDOOptimisticVerificationExceptionThis exception is the result of a user commit operation in an optimistic transaction + within this exception.
JDOOptimisticVerificationExceptionThis exception is the result of a user commit operation in an optimistic transaction where the verification of new, modified, or deleted instances fails the verification. - The user will never see this exception except as a result of commit.
JDODetachedFieldAccessExceptionThis exception is the result of a user accessing a field of a detached instance, where + The user will never see this exception except as a result of commit.
JDODetachedFieldAccessExceptionThis exception is the result of a user accessing a field of a detached instance, where the field was not copied to the detached instance.

Modified: db/jdo/site/docs/glossary.html URL: http://svn.apache.org/viewvc/db/jdo/site/docs/glossary.html?rev=632111&r1=632110&r2=632111&view=diff ============================================================================== --- db/jdo/site/docs/glossary.html (original) +++ db/jdo/site/docs/glossary.html Thu Feb 28 12:17:16 2008 @@ -4,41 +4,41 @@ @import url("./style/maven-theme.css");

JDO Glossary

JDO utilizes some terminology used elsewhere (e.g J2EE) but also introduces some terminology that may be new to people. Below is a glossary of some common terms that may be encountered. -

TermDefinition
application identityWhen the persistence of a class is defined in a MetaData file, the developer can decide that they want +

TermDefinition
application identityWhen the persistence of a class is defined in a MetaData file, the developer can decide that they want to control the identity of objects of that class. This is called application identity because - the application has the control.
attach/detachWhen you have an object of a class that is associated with a PersistenceManager it is referred to as being + the application has the control.
attach/detachWhen you have an object of a class that is associated with a PersistenceManager it is referred to as being attached. If you want to stop persistence of that object you can detach the object. This has the effect that any changes to the object will not be persisted, and also that the object can be used - outside transactions.
datastore identityWhen the persistence of a class is defined in a MetaData file, the developer can decide that they want the + outside transactions.
datastore identityWhen the persistence of a class is defined in a MetaData file, the developer can decide that they want the identity of objects of that class to be defined by the JDO implementation. This is called datastore - identity
default-fetch-group (DFG)When a persisted object is retrieved from the datastore its fields can be retrieved with it, or optionally + identity
default-fetch-group (DFG)When a persisted object is retrieved from the datastore its fields can be retrieved with it, or optionally can be retrieved only when needed. If a field is in the default-fetch-group it will be retrieved when the object is retrieved. Some field types default to being in the default-fetch-group (e.g primitives, - wrappers to primtives, java.util.Date) and others (e.g java.util.Set, java.util.List) don't.
embeddedA field can be defined as embedded if it will be stored as a column in the table of its containing object.
enhancerJDO 1.0.1 requires the use of a byte-code enhancer that takes the Java compiled classes and "enhances" them, - adding in information to permit their use in a JDO environment.
FCOJDO defines 2 main groups of Java objects. The first is those objects that have an identity. These are - termed "First Class Objects" or FCO for short.
Fetch GroupJDO allows a user to define groups of fields that should be retrieved (fetched) at the same time. These are called a "fetch group". + wrappers to primtives, java.util.Date) and others (e.g java.util.Set, java.util.List) don't.
embeddedA field can be defined as embedded if it will be stored as a column in the table of its containing object.
enhancerJDO 1.0.1 requires the use of a byte-code enhancer that takes the Java compiled classes and "enhances" them, + adding in information to permit their use in a JDO environment.
FCOJDO defines 2 main groups of Java objects. The first is those objects that have an identity. These are + termed "First Class Objects" or FCO for short.
Fetch GroupJDO allows a user to define groups of fields that should be retrieved (fetched) at the same time. These are called a "fetch group". The principal "fetch group" is the "default fetch group", where JDO has rules for what fields are in this group. - A user can define their own group, and make this active so that when objects of their type are retrieved, they have control over the fetching process.
JDOQLJDO introduces its own Java-like query language as a datastore independent way of retrieving objects from - the datastore. This is known as JDOQL (JDO Query Language).
nondurable identityWhere the objects of a class should be unique in the JVM but not in the datastore (where an RDBMS table doesnt have a PK for example).
objectid classWhen an object of a class is persisted, it is assigned an object identity. When the developer has chosen to + A user can define their own group, and make this active so that when objects of their type are retrieved, they have control over the fetching process.
JDOQLJDO introduces its own Java-like query language as a datastore independent way of retrieving objects from + the datastore. This is known as JDOQL (JDO Query Language).
nondurable identityWhere the objects of a class should be unique in the JVM but not in the datastore (where an RDBMS table doesnt have a PK for example).
objectid classWhen an object of a class is persisted, it is assigned an object identity. When the developer has chosen to use application identity they can assign a class to represent this - identity (as a primary key) - this is the object id class.
optimistic transactionWhen working with long duration transactions it is undesirable to have locking and so the assumption is made + identity (as a primary key) - this is the object id class.
optimistic transactionWhen working with long duration transactions it is undesirable to have locking and so the assumption is made that the data being updated by the transaction will not be modified by any other transaction during the course of the (optimistic) transaction. The data is checked just before commit to confirm integrity that no data has been changed. See also pessimistic transaction for the contrary type - which provides locking.
persistence-by-reachabilityWhen you call makePersistent() on an object, the object will be persisted and, in addition, any + which provides locking.
persistence-by-reachabilityWhen you call makePersistent() on an object, the object will be persisted and, in addition, any other objects reachable from that object (via relationships) will also be persisted. This is known as persistence-by-reachability. This process is repeated at commit() time when - it checks whether these reachable objects are still reachable and, if not, removes them from persistence.
persistence-awareWhen an class needs to access fields of a persistence capable class directly, it should be enhanced, and is referred to as "Persistence Aware". If a class uses field accessor methods then it doesnt need to become "Persistence Aware".
persistence-capable (PC)When an class is byte-code enhanced, and has valid MetaData, it is referred to as "Persistence Capable". This - means that it can be persisted by a JDO implementation.
persistence-modifierWhen defining the persistence of a class, the developer can select particular fields to be persisted, and + it checks whether these reachable objects are still reachable and, if not, removes them from persistence.
persistence-awareWhen an class needs to access fields of a persistence capable class directly, it should be enhanced, and is referred to as "Persistence Aware". If a class uses field accessor methods then it doesnt need to become "Persistence Aware".
persistence-capable (PC)When an class is byte-code enhanced, and has valid MetaData, it is referred to as "Persistence Capable". This + means that it can be persisted by a JDO implementation.
persistence-modifierWhen defining the persistence of a class, the developer can select particular fields to be persisted, and others not depending on their importance in the scope of their application. The persistence-modifier defines whether a field is persistent. If this tag is not specified JDO will assign defaults based on the field type (primitives, primitive wrappers, java.util.Data, persistence capable fields, etc are by default - persistent).
persistentThis is an object state where the object is persistent in a datastore.
pessimistic transactionThis is the default transaction type in JDO, and is suitable for shortlived operations where there is no + persistent).
persistentThis is an object state where the object is persistent in a datastore.
pessimistic transactionThis is the default transaction type in JDO, and is suitable for shortlived operations where there is no other blocking activity during the transaction. When data is accessed other transactions are locked out from accessing it until the transaction is complete. See also optimistic - transaction for the contrary type which reduces locking.
Requires ExtentWhen the persistent of a class is defined, the developer decides if the object will be stored with its own + transaction for the contrary type which reduces locking.
Requires ExtentWhen the persistent of a class is defined, the developer decides if the object will be stored with its own identity (in its own table for example) or whether it will be stored as part of another object. If it will - have its own identity, it will require and Extent.
SCOJDO defines 2 main groups of Java objects. The second group is those objects that don't have an identity. - These are termed "Second Class Objects" or SCO for short.
SQLJDO allows use of multiple query languages. One of these, for use with RDBMS datastores, is SQL.
transientThis is an object state where the object is not persistent.

SCOJDO defines 2 main groups of Java objects. The second group is those objects that don't have an identity. + These are termed "Second Class Objects" or SCO for short.
SQLJDO allows use of multiple query languages. One of these, for use with RDBMS datastores, is SQL.
transientThis is an object state where the object is not persistent.

Modified: db/jdo/site/docs/jdo_v_jpa.html URL: http://svn.apache.org/viewvc/db/jdo/site/docs/jdo_v_jpa.html?rev=632111&r1=632110&r2=632111&view=diff ============================================================================== --- db/jdo/site/docs/jdo_v_jpa.html (original) +++ db/jdo/site/docs/jdo_v_jpa.html Thu Feb 28 12:17:16 2008 @@ -11,8 +11,8 @@ features of JPA1. Below we show some of the differences of these 2 standards to give you assistance in selecting what you need. Highlighted in bold are the notable differences where one specification provides something not available in the other. -

FeatureJDO2JPA1
JDK Requirement1.3+1.5+
UsageJ2EE, J2SEJ2EE, J2SE
Persistence specification mechanismMetaData, Annotations [1]MetaData, Annotations
Datastore supportedAnyRDBMS only
Restrictions on persisted classesno-arg constructor (could be added by compiler/enhancer)No final classes. No final methods. Non-private no-arg constructor. Identity Field. - Version Field.
TransactionsPessimistic, OptimisticOptimistic
Object Identitydatastore-identity, application-identityapplication-identity
Object Identity generationSequence, Table, Identity, Auto, UUID String, UUID HexSequence, Table, Identity, Auto
Change objects identityThrow exception when not allowedUndefined, so expect anything !!
Supported typesJava primitive types, wrappers of primitive types, java.lang.String, java.lang.Number, java.math.BigInteger, java.math.BigDecimal, +

FeatureJDO2JPA1
JDK Requirement1.3+1.5+
UsageJ2EE, J2SEJ2EE, J2SE
Persistence specification mechanismMetaData, Annotations [1]MetaData, Annotations
Datastore supportedAnyRDBMS only
Restrictions on persisted classesno-arg constructor (could be added by compiler/enhancer)No final classes. No final methods. Non-private no-arg constructor. Identity Field. + Version Field.
TransactionsPessimistic, OptimisticOptimistic
Object Identitydatastore-identity, application-identityapplication-identity
Object Identity generationSequence, Table, Identity, Auto, UUID String, UUID HexSequence, Table, Identity, Auto
Change objects identityThrow exception when not allowedUndefined, so expect anything !!
Supported typesJava primitive types, wrappers of primitive types, java.lang.String, java.lang.Number, java.math.BigInteger, java.math.BigDecimal, java.util.Currency, java.util.Locale, java.util.Date, java.sql.Time, java.sql.Date, java.sql.Timestamp, java.io.Serializable, boolean[], byte[], char[], double[], float[], int[], long[], short[], java.lang.Object, interface, @@ -25,9 +25,9 @@ java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.io.Serializable, byte[], Byte[], char[], Character[], Enums, java.util.Collection, java.util.Set, java.util.List, java.util.Map - Collection/List/Map of persistable types
Embedded FieldsEmbedded persistent objects, Embedded Collections, Embedded MapsEmbedded persistent objects
Access a non-detached fieldThrow exceptionUndefined, so expect anything !!
InheritanceEach class has its own strategyRoot class defines the strategy
Operation cascade defaultpersist, (delete)
Operation Cascade configurationdeletepersist, delete, refresh
Query LanguageJDOQL, SQLJPQL, SQL
Query candidatesCandidate without subclasses, Candidate and its subclassesCandidate and its subclasses
Object retrieval controlLazy loading, eager fet ching, fetch groupsLazy loading, eager fetching
Bulk update/deleteJDOQL Bulk DeleteJPQL Bulk Delete, Bulk Update
RDBMS Schema ControlTables, columns, PK columns, PK constraints, FK columns, FK constraints, index columns, - index constraints, unique key columns, unique key constraintsTables, columns, PK columns, FK columns, unique key columns
ORM RelationshipsFull range of Collection, Map, List, Array, 1-1, 1-N, M-N using - PC, Non-PC and interface objectsBasic 1-1, 1-N, M-N only
Caching interfaceL2 Caching APINothing
    + Collection/List/Map of persistable types
Embedded FieldsEmbedded persistent objects, Embedded Collections, Embedded MapsEmbedded persistent objects
Access a non-detached fieldThrow exceptionUndefined, so expect anything !!
InheritanceEach class has its own strategyRoot class defines the strategy
Operation cascade defaultpersist, (delete)
Operation Cascade configurationdeletepersist, delete, refresh
Query LanguageJDOQL, SQLJPQL, SQL
Query candidatesCandidate without subclasses, Candidate and its subclassesCandidate and its subclasses
Object retrieval controlLazy loading, eager fet ching, fetch groupsLazy loading, eager fetching
Bulk update/deleteJDOQL Bulk DeleteJPQL Bulk Delete, Bulk Update
RDBMS Schema ControlTables, columns, PK columns, PK constraints, FK columns, FK constraints, index columns, + index constraints, unique key columns, unique key constraintsTables, columns, PK columns, FK columns, unique key columns
ORM RelationshipsFull range of Collection, Map, List, Array, 1-1, 1-N, M-N using + PC, Non-PC and interface objectsBasic 1-1, 1-N, M-N only
Caching interfaceL2 Caching APINothing
  • [1] - included in JDO 2.1

As an overall conclusion "JPA1" is a subset of what is already available in "JDO2". Modified: db/jdo/site/docs/jdo_v_jpa_api.html URL: http://svn.apache.org/viewvc/db/jdo/site/docs/jdo_v_jpa_api.html?rev=632111&r1=632110&r2=632111&view=diff ============================================================================== --- db/jdo/site/docs/jdo_v_jpa_api.html (original) +++ db/jdo/site/docs/jdo_v_jpa_api.html Thu Feb 28 12:17:16 2008 @@ -5,7 +5,7 @@ The two persistence standards in Java have very similar API's on the face of it. Here we give a comparison of the method calls and their equivalent in the other API. -

OperationJDO2JPA1
Persist Objectpm.makePersistent()em.persist
Update Objectpm.makePersistent()em.merge()
Remove Objectpm.deletePersistent()em.remove()
Retrieve Objectpm.getObjectById()

- pm.getExtent()
em.find()
Refresh Objectpm.refresh()em.refresh()
Flush changespm.flush()em.flush()
Access transactionpm.currentTransaction()em.getTransaction()
New Querypm.newQuery()em.createQuery()
New Named Querypm.newNamedQuery()em.createNamedQuery()


Modified: db/jdo/site/docs/jdo_v_jpa_orm.html URL: http://svn.apache.org/viewvc/db/jdo/site/docs/jdo_v_jpa_orm.html?rev=632111&r1=632110&r2=632111&view=diff ============================================================================== --- db/jdo/site/docs/jdo_v_jpa_orm.html (original) +++ db/jdo/site/docs/jdo_v_jpa_orm.html Thu Feb 28 12:17:16 2008 @@ -8,6 +8,6 @@ In this guide we show the different types of ORM relation commonly used, and mark against it which specification supports it. This list is not yet complete but will be added to to provide a comprehensive list of relationship type and where you can find it. -

List<PC>
Field TypeRelationJDO2JPA1
PC1-1 Unidirectional
PC1-1 Bidirectional
PC1-1 serialised
PC1-1 CompoundIdentity Unidirectional
PC1-N CompoundIdentity Collection Bidirectional
PC1-N CompoundIdentity Map Bidirectional< /td>
Interface1-1 Unidirectional
Interface1-1 Bidirectional
Interface1-1 serialised?
Collection<PC>1-N ForeignKey Unidirectional Collection
Collection<PC>1-N ForeignKey Bidirectional Collection
Collection<PC>1-N JoinTable Unidirecti onal Collection
Collection<PC>1-N JoinTable Bidirectional Collection
Collection<Non-PC>1-N JoinTable Collection
Collection<PC>1-N JoinTable Collection using shared JoinTable
Collection<PC>1-N ForeignKey Collection using shared ForeignKey
Collection<PC>M-N JoinTable
Collection<PC>1-N CompoundIdentity Unidirectional
Collection<PC>1-N serialised Collection
Collection<PC>1-N JoinTable Collection of serialised elements
List<PC>1-N ForeignKey Unidirectional Indexed List
List<PC>1-N ForeignKey Bidirectional Indexed List
List<PC>1-N JoinTable U nidirectional Indexed List
List<PC>1-N JoinTable Bidirectional Indexed List
List<Non-PC>1-N JoinTable Indexed List
List<PC>1-N ForeignKey Unidirectional Ordered List
List<PC>1-N ForeignKey Bidirectional Ordered List
List<PC>1-N JoinTable Unidirectional Ordered List
1-N JoinTable Bidirectional Ordered List
Map<PC, PC>1-N JoinTable Map
Map<Non-PC, PC>1-N JoinTable Map
Map<PC, Non-PC>1-N JoinTable Map
Map<Non-PC, Non-PC>1-N JoinTable Map
Map<Non-PC, PC>1-N ForeignKey Map Unidirectional (key stored in value)
Map<Non-PC, PC>1-N ForeignKey Map Bidirectional (key stored in value)
Map<PC, Non-PC>1-N ForeignKey Map Unidirectional (value stored in key)
Map<PC, PC>1-N serialised Map
Map<PC, PC>1-N JoinTable Map of serialised keys/values
PC[ ]1-N ForeignKey Unidirectional Array
PC[ ]1-N JoinTable Unidirectional Array
PC[ ]1-N serialised Array
Non-PC[ ]1-N JoinTable Unidirectional Array

< /hr>

< /hr>
Modified: db/jdo/site/docs/mail-lists.html URL: http://svn.apache.org/viewvc/db/jdo/site/docs/mail-lists.html?rev=632111&r1=632110&r2=632111&view=diff ============================================================================== --- db/jdo/site/docs/mail-lists.html (original) +++ db/jdo/site/docs/mail-lists.html Thu Feb 28 12:17:16 2008 @@ -8,7 +8,7 @@ open to the public if you are interested in seeing how the sausage is made. For those dedicated to the project who want to follow its development even more closely there's the commits mailing list! -

+

User List : jdo-user@db.apache.org

@@ -21,7 +21,7 @@

Archive

-
+

Dev List : jdo-dev@db.apache.org

Subscribe

@@ -31,7 +31,7 @@

Archive

-
+

Commits List : jdo-commits@db.apache.org

Subscribe