jsr342-experts@javaee-spec.java.net

[jsr342-experts] Re: resource-specific approach to metadata

From: Linda DeMichiel <linda.demichiel_at_oracle.com>
Date: Tue, 18 Oct 2011 10:19:20 -0700

On 10/13/2011 10:44 AM, Linda DeMichiel wrote:
[snip]
>
> Definitions for the proposed annotations are given below. If the expert
> group agrees with this approach, I'll follow up with corresponding XML.
>
>

Here are the type definitions for the XML elements corresponding to
the annotations.

These would be referenced in the "jndiEnvironmentRefsGroup" after
"data-source" as follows:

       <xsd:element name="jms-connection-factory" type="javaee:jms-connection-factoryType" minOccurs="0"
maxOccurs="unbounded"/>
       <xsd:element name="jms-destination" type="javaee:jms-destinationType" minOccurs="0" maxOccurs="unbounded"/>
       <xsd:element name="mail-session" type="javaee:mail-sessionType" minOccurs="0" maxOccurs="unbounded"/>
       <xsd:element name="connector-resource" type="javaee:connector-resourceType" minOccurs="0" maxOccurs="unbounded"/>

<!-- **************************************************** -->

   <xsd:complexType name="jms-connection-factoryType">
     <xsd:annotation>
       <xsd:documentation>

         Configuration of a JMS Connection Factory.

       </xsd:documentation>
     </xsd:annotation>
     <xsd:sequence>
       <xsd:element name="description"
                    type="javaee:descriptionType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Description of this JMS Connection Factory.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="name"
                    type="javaee:jndi-nameType">
         <xsd:annotation>
           <xsd:documentation>

             The name element specifies the JNDI name of the
             JMS connection factory being defined.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="class-name"
                    type="javaee:fully-qualified-classType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

               javax.jms.ConnectionFactory, javax.jms.QueueConnectionFactory, or javax.jms.TopicConnectionFactory

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="resource-adapter-name"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Resource adapter name.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="user"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             User name to use for connection authentication.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="password"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Password to use for connection authentication.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="client-id"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Client id to use for connection.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="property"
                    type="javaee:propertyType"
                    minOccurs="0"
                    maxOccurs="unbounded">
         <xsd:annotation>
           <xsd:documentation>

             JMS Connection Factory property. This may be a vendor-specific
             property or a less commonly used ConnectionFactory property.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="connection-timeout"
                    type="javaee:xsdIntegerType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Sets the maximum time in seconds that to wait while
             attempting to connect to the resource.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="transactional"
                    type="javaee:xsdBooleanType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Set to false if connections should not participate in
             transactions.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="initial-pool-size"
                    type="javaee:xsdIntegerType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Number of connections that should be created when a
             connection pool is initialized.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="max-pool-size"
                    type="javaee:xsdIntegerType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Maximum number of connections that should be concurrently
             allocated for a connection pool.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="min-pool-size"
                    type="javaee:xsdIntegerType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Minimum number of connections that should be concurrently
             allocated for a connection pool.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="max-idle-time"
                    type="javaee:xsdIntegerType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             The number of seconds that a physical connection should
             remain unused in the pool before the connection is
             closed for a connection pool.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
     </xsd:sequence>
     <xsd:attribute name="id"
                    type="xsd:ID"/>
   </xsd:complexType>


<!-- **************************************************** -->

   <xsd:complexType name="jms-destinationType">
     <xsd:annotation>
       <xsd:documentation>

         Configuration of a JMS Destination.

       </xsd:documentation>
     </xsd:annotation>
     <xsd:sequence>
       <xsd:element name="description"
                    type="javaee:descriptionType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Description of this JMS Destination.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="name"
                    type="javaee:jndi-nameType">
         <xsd:annotation>
           <xsd:documentation>

             The name element specifies the JNDI name of the
             JMS destination being defined.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="class-name"
                    type="javaee:fully-qualified-classType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

               javax.jms.Queue or javax.jms.Topic

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="resource-adapter-name"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Resource adapter name.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="resource-name"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Name of the queue or topic.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="property"
                    type="javaee:propertyType"
                    minOccurs="0"
                    maxOccurs="unbounded">
         <xsd:annotation>
           <xsd:documentation>

             JMS Destination property. This may be a vendor-specific
             property or a less commonly used Destination property.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
     </xsd:sequence>
     <xsd:attribute name="id"
                    type="xsd:ID"/>
   </xsd:complexType>


<!-- **************************************************** -->

   <xsd:complexType name="mail-sessionType">
     <xsd:annotation>
       <xsd:documentation>

         Configuration of a Mail Session resource.

       </xsd:documentation>
     </xsd:annotation>
     <xsd:sequence>
       <xsd:element name="description"
                    type="javaee:descriptionType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Description of this Mail Session resource.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="name"
                    type="javaee:jndi-nameType">
         <xsd:annotation>
           <xsd:documentation>

             The name element specifies the JNDI name of the
             Mail Session resource being defined.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="store-protocol"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Storage protocol.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="store-protocol-class"
                    type="javaee:fully-qualified-classType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

               Service provider store protocol implementation class

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="transport-protocol"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Transport protocol.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="transport-protocol-class"
                    type="javaee:fully-qualified-classType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

               Service provider transport protocol implementation class

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="host"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Mail server host name.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="user"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Mail server user name.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="from"
                    type="javaee:string"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Email address to indicate the message sender.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="property"
                    type="javaee:propertyType"
                    minOccurs="0"
                    maxOccurs="unbounded">
         <xsd:annotation>
           <xsd:documentation>

             Mail server property. This may be a vendor-specific
             property.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
     </xsd:sequence>
     <xsd:attribute name="id"
                    type="xsd:ID"/>
   </xsd:complexType>


<!-- **************************************************** -->

   <xsd:complexType name="connector-resourceType">
     <xsd:annotation>
       <xsd:documentation>

         Configuration of a resource, possibly a custom resource.

       </xsd:documentation>
     </xsd:annotation>
     <xsd:sequence>
       <xsd:element name="description"
                    type="javaee:descriptionType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

             Description of this resource.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="name"
                    type="javaee:jndi-nameType">
         <xsd:annotation>
           <xsd:documentation>

             The name element specifies the JNDI name of the
             resource being defined.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="class-name"
                    type="javaee:fully-qualified-classType"
                    minOccurs="0">
         <xsd:annotation>
           <xsd:documentation>

               The resource type.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
       <xsd:element name="property"
                    type="javaee:propertyType"
                    minOccurs="0"
                    maxOccurs="unbounded">
         <xsd:annotation>
           <xsd:documentation>

             Resource property. This may be a vendor-specific
             property.

           </xsd:documentation>
         </xsd:annotation>
       </xsd:element>
     </xsd:sequence>
     <xsd:attribute name="id"
                    type="xsd:ID"/>
   </xsd:complexType>


<!-- **************************************************** -->