users@javaee-spec.java.net

[javaee-spec users] [jsr342-experts] resource definition metadata for administered objects

From: Linda DeMichiel <linda.demichiel_at_oracle.com>
Date: Mon, 05 Mar 2012 17:06:56 -0800

We've gotten feedback from our internal team, including connector lead,
that we should also include metadata for connector administered objects.

While I had initially thought that the proposed connector resource definition
metadata was flexible enough to accommodate this (especially since we
had already covered the most important administered object case, JMS
destination objects), I agree that it would be clearer for developers if we
separate out this additional case.

I plan to add a subsection to the spec to cover this in the EDR we submit
to the JCP. Please let me know asap if you disagree with this.

Draft annotation and XML element are below. I propose that the annotation
should be added to javax.resource

thanks,

-Linda

-------------------------------------------


/**
  * Annotation used to define a Connector administered object to be
  * registered in JNDI.
  *
  * Once defined, an administered object may be referenced
  * by a component using the lookup element of the
  * Resource annotation.
  *
  */
@Retention(RUNTIME)
@Target({TYPE})
public @interface AdministeredObjectDefinition {

     /**
      * Description of the administered object.
      */
     String description() default "";

     /**
      * JNDI name of the administered object being defined.
      */
     String name();

     /**
      * Type of the administered object.
      */
     String className();

     /**
      * Name of the resource adapter.
      */
     String resourceAdapterName() default "";

     /**
      * Properties of the administered object. These may be
      * vendor-specific properties.
      */
     String[] properties() default {};
}


XML example:

<administered-object>
     <description>Sample Admin Object definition</description>
     <name>java:app/MyAdminObject</name>
     <class-name>com.extraServices.AdminObject</class-name>
     <resource-adapter-name>myESRA</resource-adapter-name>
     <property>
       <name>Property1</name>
       <value>10</value>
     </property>
     <property>
       <name>Property2</name>
       <value>20</value>
     </property>
</administered-object>