[jboss-cvs] JBossAS SVN: r112584 - in projects/jboss-jca/trunk: as/src/main/java/org/jboss/jca/as/rarinfo and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 19 10:03:51 EST 2012


Author: jesper.pedersen
Date: 2012-01-19 10:03:51 -0500 (Thu, 19 Jan 2012)
New Revision: 112584

Added:
   projects/jboss-jca/trunk/common/src/main/resources/schema/resource-adapters_1_1.xsd
Modified:
   projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/converters/LegacyConnectionFactoryImp.java
   projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/rarinfo/RaImpl.java
   projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/resourceadapter/ResourceAdapter.java
   projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterImpl.java
   projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java
Log:
[JBJCA-735] Add id attribute to <resource-adapter>

Modified: projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/converters/LegacyConnectionFactoryImp.java
===================================================================
--- projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/converters/LegacyConnectionFactoryImp.java	2012-01-18 14:47:55 UTC (rev 112583)
+++ projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/converters/LegacyConnectionFactoryImp.java	2012-01-19 15:03:51 UTC (rev 112584)
@@ -111,7 +111,7 @@
             Defaults.ENABLED, Defaults.USE_JAVA_CONTEXT, Defaults.USE_CCM, pool, timeOut, validation, security, null);
       connectionDefinitions = new ArrayList<CommonConnDef>();
       connectionDefinitions.add(connDef);
-      raImpl = new ResourceAdapterImpl(rarName, transactionSupport, connectionDefinitions, null,
+      raImpl = new ResourceAdapterImpl(null, rarName, transactionSupport, connectionDefinitions, null,
             null, null, null);
    }
    

Modified: projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/rarinfo/RaImpl.java
===================================================================
--- projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/rarinfo/RaImpl.java	2012-01-18 14:47:55 UTC (rev 112583)
+++ projects/jboss-jca/trunk/as/src/main/java/org/jboss/jca/as/rarinfo/RaImpl.java	2012-01-19 15:03:51 UTC (rev 112584)
@@ -71,7 +71,7 @@
     */
    public void buildResourceAdapterImpl()  throws Exception
    {
-      raImpl = new ResourceAdapterImpl(rarName, transactionSupport, connectionDefinitions, adminObjects,
+      raImpl = new ResourceAdapterImpl(null, rarName, transactionSupport, connectionDefinitions, adminObjects,
             raConfigProperties, null, null);
    }
    

Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/resourceadapter/ResourceAdapter.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/resourceadapter/ResourceAdapter.java	2012-01-18 14:47:55 UTC (rev 112583)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/resourceadapter/ResourceAdapter.java	2012-01-19 15:03:51 UTC (rev 112584)
@@ -36,7 +36,6 @@
  */
 public interface ResourceAdapter extends CommonIronJacamar
 {
-
    /**
     * Get the archive.
     *
@@ -45,6 +44,13 @@
    public String getArchive();
 
    /**
+    * Get the id
+    *
+    * @return the value.
+    */
+   public String getId();
+
+   /**
    *
    * A Tag.
    *
@@ -165,4 +171,82 @@
       }
 
    }
+
+   /**
+    *
+    * A Attribute.
+    *
+    * @author <a href="jesper.pedersen at jboss.org">Jesper Pedersen</a>
+    *
+    */
+   public enum Attribute
+   {
+
+      /** always first
+      *
+      */
+      UNKNOWN(null),
+      /** id attribute
+       *
+       */
+      ID("id");
+
+      private final String name;
+
+      /**
+       *
+       * Create a new Tag.
+       *
+       * @param name a name
+       */
+      Attribute(final String name)
+      {
+         this.name = name;
+      }
+
+      /**
+       * Get the local name of this element.
+       *
+       * @return the local name
+       */
+      public String getLocalName()
+      {
+         return name;
+      }
+
+      /**
+       * {@inheritDoc}
+       */
+      public String toString()
+      {
+         return name;
+      }
+
+      private static final Map<String, Attribute> MAP;
+
+      static
+      {
+         final Map<String, Attribute> map = new HashMap<String, Attribute>();
+         for (Attribute element : values())
+         {
+            final String name = element.getLocalName();
+            if (name != null)
+               map.put(name, element);
+         }
+         MAP = map;
+      }
+
+      /**
+      *
+      * Static method to get enum instance given localName XsdString
+      *
+      * @param localName a XsdString used as localname (typically tag name as defined in xsd)
+      * @return the enum instance
+      */
+      public static Attribute forName(String localName)
+      {
+         final Attribute element = MAP.get(localName);
+         return element == null ? UNKNOWN : element;
+      }
+   }
 }

Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterImpl.java	2012-01-18 14:47:55 UTC (rev 112583)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterImpl.java	2012-01-19 15:03:51 UTC (rev 112584)
@@ -42,11 +42,15 @@
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 7607776873201143875L;
+
+   private final String id;
    private final String archive;
+
    /**
     *
     * Create a new ResourceAdapterImpl.
     *
+    * @param id The id
     * @param archive archive
     * @param transactionSupport transactionSupport
     * @param connectionDefinitions connectionDefinitions
@@ -55,16 +59,28 @@
     * @param beanValidationGroups beanValidationGroups
     * @param bootstrapContext bootstrapContext
     */
-   public ResourceAdapterImpl(String archive, TransactionSupportEnum transactionSupport,
+   public ResourceAdapterImpl(String id, String archive, TransactionSupportEnum transactionSupport,
       List<CommonConnDef> connectionDefinitions, List<CommonAdminObject> adminObjects,
       Map<String, String> configProperties, List<String> beanValidationGroups, String bootstrapContext)
    {
       super(transactionSupport, configProperties, adminObjects, connectionDefinitions, beanValidationGroups,
             bootstrapContext);
+      this.id = id;
       this.archive = archive;
    }
 
    /**
+    * Get the id.
+    *
+    * @return the value.
+    */
+   @Override
+   public final String getId()
+   {
+      return id;
+   }
+
+   /**
     * Get the archive.
     *
     * @return the archive.
@@ -80,6 +96,7 @@
    {
       final int prime = 31;
       int result = super.hashCode();
+      result = prime * result + ((id == null) ? 0 : id.hashCode());
       result = prime * result + ((archive == null) ? 0 : archive.hashCode());
       return result;
    }
@@ -94,6 +111,13 @@
       if (!(obj instanceof ResourceAdapterImpl))
          return false;
       ResourceAdapterImpl other = (ResourceAdapterImpl) obj;
+      if (id == null)
+      {
+         if (other.id != null)
+            return false;
+      }
+      else if (!id.equals(other.id))
+         return false;
       if (archive == null)
       {
          if (other.archive != null)
@@ -109,8 +133,15 @@
    {
       StringBuilder sb = new StringBuilder(1024);
 
-      sb.append("<resource-adapter>");
+      sb.append("<resource-adapter");
 
+      if (id != null)
+      {
+         sb.append(" ").append(ResourceAdapter.Attribute.ID).append("=\"").append(id).append("\"");
+      }
+
+      sb.append(">");
+
       sb.append("<").append(ResourceAdapter.Tag.ARCHIVE).append(">");
       sb.append(archive);
       sb.append("</").append(ResourceAdapter.Tag.ARCHIVE).append(">");

Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java	2012-01-18 14:47:55 UTC (rev 112583)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java	2012-01-19 15:03:51 UTC (rev 112584)
@@ -170,9 +170,26 @@
       ArrayList<CommonAdminObject> adminObjects = null;
       ArrayList<String> beanValidationGroups = null;
       String bootstrapContext = null;
+      String id = null;
       String archive = null;
       TransactionSupportEnum transactionSupport = null;
       HashMap<String, String> configProperties = null;
+
+      int attributeSize = reader.getAttributeCount();
+      for (int i = 0; i < attributeSize; i++)
+      {
+         ResourceAdapter.Attribute attribute = ResourceAdapter.Attribute.forName(reader.getAttributeLocalName(i));
+         switch (attribute)
+         {
+            case ID : {
+               id = attributeAsString(reader, attribute.getLocalName());
+               break;
+            }
+            default :
+               throw new ParserException(bundle.unexpectedAttribute(attribute.getLocalName(), reader.getLocalName()));
+         }
+      }
+
       while (reader.hasNext())
       {
          switch (reader.nextTag())
@@ -180,7 +197,7 @@
             case END_ELEMENT : {
                if (ResourceAdapters.Tag.forName(reader.getLocalName()) == ResourceAdapters.Tag.RESOURCE_ADAPTER)
                {
-                  return new ResourceAdapterImpl(archive, transactionSupport, connectionDefinitions, adminObjects,
+                  return new ResourceAdapterImpl(id, archive, transactionSupport, connectionDefinitions, adminObjects,
                                                  configProperties, beanValidationGroups, bootstrapContext);
                }
                else

Added: projects/jboss-jca/trunk/common/src/main/resources/schema/resource-adapters_1_1.xsd
===================================================================
--- projects/jboss-jca/trunk/common/src/main/resources/schema/resource-adapters_1_1.xsd	                        (rev 0)
+++ projects/jboss-jca/trunk/common/src/main/resources/schema/resource-adapters_1_1.xsd	2012-01-19 15:03:51 UTC (rev 112584)
@@ -0,0 +1,674 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+  targetNamespace="http://www.jboss.org/ironjacamar/schema" xmlns="http://www.jboss.org/ironjacamar/schema">
+
+  <xs:complexType name="boolean-presenceType"></xs:complexType>
+
+  <xs:complexType name="config-propertyType" mixed="true">
+    <xs:annotation>
+      <xs:documentation>
+        <![CDATA[[
+          Specifies an override for a config-property element in ra.xml or a @ConfigProperty
+         ]]>
+      </xs:documentation>
+    </xs:annotation>
+    <xs:simpleContent>
+      <xs:extension base="xs:token">
+        <xs:attribute use="required" name="name" type="xs:token">
+          <xs:annotation>
+            <xs:documentation>
+              <![CDATA[[
+                Specifies the name of the config-property
+               ]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="resource-adapterType">
+    <xs:sequence>
+      <xs:element name="archive" type="xs:token" minOccurs="1" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the resource adapter archive to be activated
+              E.g. <archive>myra.rar</archive>
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="bean-validation-groups" type="bean-validation-groupsType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies bean validation group that should be used
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="bootstrap-context" type="xs:token" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the unique name of the bootstrap context that should be used
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="config-property" type="config-propertyType" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+               The config-property specifies resource adapter configuration properties.
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="transaction-support" type="transaction-supportType" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the transaction support level of the resource adapter
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="connection-definitions" type="connection-definitionsType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the connection definitions
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="admin-objects" type="admin-objectsType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the administration objects
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="id" type="xs:token" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            An unique identifier for the resource adapter
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:simpleType name="transaction-supportType">
+    <xs:annotation>
+      <xs:documentation>
+        <![CDATA[[
+          Define the type of transaction supported by this resource adapter.
+          Valid values are: NoTransaction, LocalTransaction, XATransaction
+         ]]>
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="NoTransaction" />
+      <xs:enumeration value="LocalTransaction" />
+      <xs:enumeration value="XATransaction" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="common-attribute">
+    <xs:attribute name="class-name" type="xs:token" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Specifies the the fully qualified class name of a managed connection factory
+            or admin object
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="jndi-name" type="xs:token" use="required">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Specifies the JNDI name
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="enabled" type="xs:boolean" default="true" form="unqualified" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Should the object in question be activated
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute default="true" name="use-java-context" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Specifies if a java:/ JNDI context should be used 
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="pool-name" type="xs:token" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Specifies the pool name for the object
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="admin-objectType">
+    <xs:sequence>
+      <xs:element name="config-property" type="config-propertyType" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              The config-property specifies administration object configuration properties.
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attributeGroup ref="common-attribute"></xs:attributeGroup>
+  </xs:complexType>
+
+  <xs:complexType name="timeoutType">
+    <xs:sequence>
+      <xs:element name="blocking-timeout-millis" type="xs:nonNegativeInteger" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+                The blocking-timeout-millis element indicates the maximum time in 
+                milliseconds to block while waiting for a connection before throwing an exception. 
+                Note that this blocks only while waiting for a permit for a connection, and 
+                will never throw an exception if creating a new connection takes an inordinately 
+                long time. The default is 30000 (30 seconds).  
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="idle-timeout-minutes" type="xs:nonNegativeInteger" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              The idle-timeout-minutes elements indicates the maximum time in minutes 
+              a connection may be idle before being closed. The actual maximum time depends 
+              also on the IdleRemover scan time, which is 1/2 the smallest idle-timeout-minutes 
+              of any pool. 
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="allocation-retry" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              The allocation retry element indicates the number of times that allocating 
+              a connection should be tried before throwing an exception. The default is 
+              0.  
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="allocation-retry-wait-millis" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              The allocation retry wait millis element indicates the time in milliseconds 
+              to wait between retrying to allocate a connection. The default is 5000 (5 
+              seconds). 
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="xa-resource-timeout" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Passed to XAResource.setTransactionTimeout(). Default is zero which does not invoke the setter.              
+              Specified in seconds - e.g. 5 minutes
+              <xa-resource-timeout>300</xa-resource-timeout>
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="validationType">
+    <xs:sequence>
+      <xs:element name="background-validation" type="xs:boolean" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              An element to specify that connections should be validated on a background 
+              thread versus being validated prior to use 
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="background-validation-millis" type="xs:nonNegativeInteger" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+               The background-validation-millis element specifies the amount of 
+               time, in millis, that background validation will run. 
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="use-fast-fail" type="xs:boolean" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+                Whether fail a connection allocation on the first connection if it 
+                is invalid (true) or keep trying until the pool is exhausted of all potential 
+                connections (false) default false. e.g. <use-fast-fail>true</use-fast-fail>
+              ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="resource-adapters" type="resource-adaptersType">
+    <xs:annotation>
+      <xs:documentation>
+        <![CDATA[[
+          Specifies activation of resource adapters
+         ]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:complexType name="resource-adaptersType">
+    <xs:sequence>
+      <xs:element name="resource-adapter" type="resource-adapterType" minOccurs="1" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies activation of a resource adapter
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="connection-definitionsType">
+    <xs:sequence>
+      <xs:element name="connection-definition" type="connection-defintionType" minOccurs="1" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies a connection definition
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="connection-defintionType">
+    <xs:sequence>
+      <xs:element name="config-property" type="config-propertyType" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+             The config-property specifies managed connection factory configuration properties.
+            ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:choice>
+        <xs:element name="pool" type="poolType" minOccurs="0" maxOccurs="1">
+          <xs:annotation>
+            <xs:documentation>
+                <![CDATA[[
+                  Specifies pooling settings
+                 ]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xa-pool" type="xa-poolType" minOccurs="0" maxOccurs="1">
+          <xs:annotation>
+            <xs:documentation>
+                <![CDATA[[
+                  Specifies xa-pooling settings
+                 ]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+      <xs:element name="security" type="securityType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies security settings
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="timeout" type="timeoutType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies timeout settings
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="validation" type="validationType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies validation settings
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="recovery" type="recoverType" minOccurs="0" maxOccurs="1"></xs:element>
+    </xs:sequence>
+    <xs:attribute name="use-ccm" type="xs:boolean" default="true" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Enable cached connection manager
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="common-attribute"></xs:attributeGroup>
+  </xs:complexType>
+
+  <xs:complexType name="poolType">
+    <xs:sequence>
+      <xs:element name="min-pool-size" type="xs:nonNegativeInteger" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              The min-pool-size element indicates the minimum number of connections 
+              a pool should hold. These are not created until a Subject is known from a 
+              request for a connection. This default to 0. Ex: <min-pool-size>1</min-pool-size>
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="max-pool-size" type="xs:nonNegativeInteger" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              The max-pool-size element indicates the maximum number of connections 
+              for a pool. No more than max-pool-size connections will be created in each sub-pool. 
+              This defaults to 20. 
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="prefill" type="xs:boolean" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Whether to attempt to prefill the connection pool. Default is false.
+              e.g. <prefill>false</prefill>.
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="use-strict-min" type="xs:boolean" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Define if the min-pool-size should be considered strict.
+              Default false
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="flush-strategy" type="xs:token" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies how the pool should be flush in case of an error.
+              Valid values are: FailingConnectionOnly (default), IdleConnections, EntirePool 
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="xa-poolType">
+    <xs:complexContent>
+      <xs:extension base="poolType">
+        <xs:sequence>
+          <xs:element name="is-same-rm-override" type="xs:boolean" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                <![CDATA[[
+                  The is-same-rm-override element allows one to unconditionally 
+                  set whether the javax.transaction.xa.XAResource.isSameRM(XAResource) returns 
+                  true or false. Ex: <is-same-rm-override>true</is-same-rm-override>
+                 ]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="interleaving" type="boolean-presenceType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                <![CDATA[[
+                  An element to enable interleaving for XA connection factories 
+                  Ex: <interleaving/>
+                 ]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="no-tx-separate-pools" type="boolean-presenceType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                <![CDATA[[
+                  Oracle does not like XA connections getting used both inside and outside a JTA transaction. 
+                  To workaround the problem you can create separate sub-pools for the different contexts
+                  using <no-tx-separate-pools/>
+                  Ex: <no-tx-separate-pools/>
+                 ]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="pad-xid" type="xs:boolean" default="false" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                <![CDATA[[
+                   Should the Xid be padded
+                   Ex: <pad-xid>true</pad-xid>
+                 ]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="wrap-xa-resource" type="xs:boolean" default="false" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                <![CDATA[[
+                   Should the XAResource instances be wrapped in a org.jboss.tm.XAResourceWrapper
+                   instance
+                   Ex: <wrap-xa-resource>true</wrap-xa-resource>
+                 ]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="securityType">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="application" type="boolean-presenceType" minOccurs="0" maxOccurs="1">
+          <xs:annotation>
+            <xs:documentation>
+              <![CDATA[[
+                Indicates that app supplied parameters (such as from getConnection(user, pw))
+                are used to distinguish connections in the pool.
+                Ex:
+                <application/>
+              ]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="security-domain" type="xs:token" minOccurs="0" maxOccurs="1">
+          <xs:annotation>
+            <xs:documentation>
+              <![CDATA[[
+                Indicates Subject (from security domain) are used to distinguish connections in the pool. 
+                The content of the security-domain is the name of the JAAS security manager that will handle
+                authentication. This name correlates to the JAAS login-config.xml descriptor
+                application-policy/name attribute.
+                Ex:
+                <security-domain>HsqlDbRealm</security-domain>
+              ]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="security-domain-and-application" type="xs:token" minOccurs="0" maxOccurs="1">
+          <xs:annotation>
+            <xs:documentation>
+              <![CDATA[[
+                Indicates that either app supplied parameters (such as from
+                getConnection(user, pw)) or Subject (from security domain) are used to
+                distinguish connections in the pool. The content of the
+                security-domain is the name of the JAAS security manager that will handle
+                authentication. This name correlates to the JAAS login-config.xml descriptor
+                application-policy/name attribute.
+                
+                Ex:
+                <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
+              ]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="admin-objectsType">
+    <xs:sequence>
+      <xs:element name="admin-object" type="admin-objectType" minOccurs="1" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the setup for an admin object
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="bean-validation-groupsType">
+    <xs:sequence>
+      <xs:element name="bean-validation-group" type="xs:token" minOccurs="1" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the fully qualified class name for a bean validation group that
+              should be used for validation
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="recoverType">
+    <xs:sequence>
+      <xs:element name="recover-credential" type="credentialType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the security options used when creating a connection during recovery.
+              Note: if this credential are not specified the security credential are used for recover too
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="recover-plugin" type="extensionType" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Specifies the extension plugin used in spi (core.spi.xa) 
+              which can be implemented by various plugins to provide better feedback to the XA recovery system.
+             ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="no-recovery" type="xs:boolean" default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation>
+          <![CDATA[[
+            Specify if the xa-datasource should be excluded from recovery.
+            Default false.
+           ]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="extensionType">
+    <xs:sequence>
+      <xs:element name="config-property" type="config-propertyType"></xs:element>
+    </xs:sequence>
+    <xs:attribute name="class-name" type="xs:token" use="required"></xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="credentialType">
+    <xs:sequence>
+      <xs:element name="user-name" type="xs:token" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+              <![CDATA[[
+                Specify the username used when creating a new connection. 
+                Ex: <user-name>sa</user-name>
+               ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="password" type="xs:token" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>
+              <![CDATA[[
+                Specify the password used when creating a new connection. 
+                Ex: <password>sa-pass</password>
+               ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="security-domain" type="xs:token" minOccurs="0" maxOccurs="1">
+        <xs:annotation>
+          <xs:documentation>
+            <![CDATA[[
+              Indicates Subject (from security domain) are used to distinguish connections in the pool. 
+              The content of the security-domain is the name of the JAAS security manager that will handle
+              authentication. This name correlates to the JAAS login-config.xml descriptor
+              application-policy/name attribute.
+              Ex:
+              <security-domain>HsqlDbRealm</security-domain>
+            ]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+   </xs:complexType>
+
+</xs:schema>



More information about the jboss-cvs-commits mailing list