JDO metadata must be available both during class enhancement and at runtime. The metadata document listing a persistent class must be available as a resource from the class' class loader, and must exist in one of two standard locations:
In a resource called
<class-name>.jdo
, where
<class-name>
is the name of the class
the document applies to, without package name. The resource
must be located in the same package as the class.
In a resource called package.jdo
.
The resource should be placed in the corresponding package, or
in any ancestor package. Package-level documents contain the
metadata for all the persistence-capable classes
in the package, except those classes that have individual
class-name.jdo
resources.
Package-level documents may also contain the metadata for
classes in any sub-packages.
Assuming you are using a standard Java class loader, these rules
imply that for a class Magazine
defined by the
file org/mag/Magazine.class
, you can define the
corresponding metadata in any of the following files:
org/mag/Magazine.jdo
org/mag/package.jdo
org/package.jdo
package.jdo
Because metadata documents are loaded as resources, JDO implementations
can also read them from jar
files.