[ https://issues.apache.org/jira/browse/JDO-764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16243172#comment-16243172 ]
Craig L Russell commented on JDO-764: ------------------------------------- clr% svn commit tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC tck/src/java/org/apache/jdo/tck/pc/compositeAnnotation Adding tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/DatastoreIdDiscriminatorClassNameInheritanceNew.java Adding tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/DatastoreIdDiscriminatorClassNameInheritanceSuperclass.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppDepartment.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppEmployee.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppPerson.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSCompany.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSDepartment.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSEmployee.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSFullTimeEmployee.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSInsurance.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSMeetingRoom.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSPartTimeEmployee.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSPerson.java Sending tck/src/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSProject.java Adding tck/src/java/org/apache/jdo/tck/pc/compositeAnnotation Adding tck/src/java/org/apache/jdo/tck/pc/compositeAnnotation/ApplicationIdDiscriminatorClassName.java Transmitting file data ...............done Committing transaction... Committed revision 1814545. > Allow JDO annotations to be used in meta-annotations > ---------------------------------------------------- > > Key: JDO-764 > URL: https://issues.apache.org/jira/browse/JDO-764 > Project: JDO > Issue Type: Improvement > Components: api, specification > Affects Versions: JDO 3.1 > Reporter: Andy Jefferson > Fix For: JDO 3.2 > > Attachments: duplicate-annotations.txt, jdo764.patch > > > By default annotations are used directly in a persistable class. Java > additionally allows annotations to be formed of other annotations. This is > particularly useful where a user has a particular combination of annotations > to set on a class/field/method and wants to simply annotate with an > abbreviated form. For example, specifying attributes of an annotation > @PersistenceCapable(detachable="true", identityType="datastore", > embeddedOnly="true") > or formed of multiple annotations > @PersistenceCapable(detachable="true") > @Extension(vendorName="datanucleus", key="multitenancy-column-name", > value="TENANT") > These can be represented as meta-annotations like this > @Target(TYPE) > @Retention(RUNTIME) > @PersistenceCapable(detachable="true", identityType="datastore", > embeddedOnly="true") > public @interface DatastoreIdPersistable > { > } > @Target(TYPE) > @Retention(RUNTIME) > @PersistenceCapable(detachable="true") > @Extension(vendorName="datanucleus", key="multitenancy-column-name", > value="TENANT") > public @interface MultitenantPersistable > { > } > and the user can subsequently just annotate their persistable class as > @DatastoreIdPersistable > public class MyClass1 {...} > @MultitenantPersistable > public class MyClass2 {...} > The work required to support this in the JDO spec is simply to update the > following annotations to add @Target({ElementType.ANNOTATION_TYPE}) > The annotations requiring this are > @Element, @EmbeddedId, @Key, @NotPersistent, @Order, @Persistent, > @Serialized, @Transactional, and @Value (all other annotations already have > @Target({ElementType.TYPE}) which already permits their usage in > meta-annotations. > The same is proposed for JPA 2.2, see > https://github.com/javaee/jpa-spec/issues/43 -- This message was sent by Atlassian JIRA (v6.4.14#64029)