[jboss-cvs] JBossAS SVN: r108169 - in projects/jboss-jca/trunk: common/src/test/java/org/jboss/jca/common/metadata/merge and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 16 05:45:11 EDT 2010


Author: maeste
Date: 2010-09-16 05:45:10 -0400 (Thu, 16 Sep 2010)
New Revision: 108169

Added:
   projects/jboss-jca/trunk/common/src/test/resources/merger/
   projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ironjacamar.xml
   projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ra.xml
   projects/jboss-jca/trunk/common/src/test/resources/merger/ironjacamar-merging-with-connector.xml
   projects/jboss-jca/trunk/common/src/test/resources/merger/ra-merging-with-connector.xml
Modified:
   projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/merge/Merger.java
   projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/merge/MergerTestCase.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployer.java
Log:
integrating merger into deployers. JBJCA-422: initial test suite. Fixed some bugs in Merger class

Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/merge/Merger.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/merge/Merger.java	2010-09-16 09:43:46 UTC (rev 108168)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/merge/Merger.java	2010-09-16 09:45:10 UTC (rev 108169)
@@ -107,7 +107,7 @@
                XsdString newValue = new XsdString(ijProperties.get(c.getConfigPropertyName().getValue()), c
                   .getConfigPropertyName().getId());
                ConfigProperty newProp = new ConfigPropertyImpl(c.getDescriptions(), c.getConfigPropertyName(),
-                                                               c.getConfigPropertyName(), newValue, c.getId());
+                                                               c.getConfigPropertyType(), newValue, c.getId());
                mergedProperties.add(newProp);
             }
 
@@ -151,6 +151,9 @@
       ExtensionMatcher<ConnectionDefinition, CommonConnDef> connDefMatcher)
    {
 
+      if (ij == null)
+         return conn;
+
       if (adminMatcher == null)
          adminMatcher = new DefaultAdminObjectMatcher();
 
@@ -178,12 +181,16 @@
             for (AdminObject adminObj : ra1516.getAdminObjects())
             {
                boolean found = false;
-               for (CommonAdminObject commonAdminObj : ij.getAdminObjects())
+               if (ij.getAdminObjects() != null)
                {
-                  if (adminMatcher.match(adminObj, commonAdminObj))
+                  for (CommonAdminObject commonAdminObj : ij.getAdminObjects())
+
                   {
-                     found = true;
-                     newAdminObjects.add(mergeAdminObject(commonAdminObj, adminObj));
+                     if (adminMatcher.match(adminObj, commonAdminObj))
+                     {
+                        found = true;
+                        newAdminObjects.add(mergeAdminObject(commonAdminObj, adminObj));
+                     }
                   }
                }
                if (!found)
@@ -202,18 +209,22 @@
             for (ConnectionDefinition conDef : ra1516.getOutboundResourceadapter().getConnectionDefinitions())
             {
                boolean found = false;
-               for (CommonConnDef commonConDef : ij.getConnectionDefinitions())
+               if (ij.getConnectionDefinitions() != null)
                {
-                  if (connDefMatcher.match(conDef, commonConDef))
+                  for (CommonConnDef commonConDef : ij.getConnectionDefinitions())
                   {
-                     found = true;
-                     newConDefs.add(mergeConDef(commonConDef, conDef));
+                     if (connDefMatcher.match(conDef, commonConDef))
+                     {
+                        found = true;
+                        newConDefs.add(mergeConDef(commonConDef, conDef));
+                     }
                   }
                }
                if (!found)
                {
                   newConDefs.add(conDef);
                }
+
             }
             ((OutboundResourceAdapterImpl) ra1516.getOutboundResourceadapter())
                .forceConnectionDefinitionsContent(newConDefs);
@@ -221,7 +232,7 @@
 
       }
 
-      return null;
+      return conn;
    }
 
    private ConnectionDefinition mergeConDef(CommonConnDef commonConDef, ConnectionDefinition conDef)

Modified: projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/merge/MergerTestCase.java
===================================================================
--- projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/merge/MergerTestCase.java	2010-09-16 09:43:46 UTC (rev 108168)
+++ projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/merge/MergerTestCase.java	2010-09-16 09:45:10 UTC (rev 108169)
@@ -23,14 +23,19 @@
 
 import org.jboss.jca.common.api.metadata.common.TransactionSupportEnum;
 import org.jboss.jca.common.api.metadata.ds.DataSources;
+import org.jboss.jca.common.api.metadata.ironjacamar.IronJacamar;
 import org.jboss.jca.common.api.metadata.ra.ConfigProperty;
 import org.jboss.jca.common.api.metadata.ra.Connector;
 import org.jboss.jca.common.api.metadata.ra.Connector.Version;
 import org.jboss.jca.common.api.metadata.ra.ResourceAdapter1516;
 import org.jboss.jca.common.api.metadata.ra.XsdString;
 import org.jboss.jca.common.api.metadata.ra.ra15.Connector15;
+import org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapters;
 import org.jboss.jca.common.metadata.ds.DsParser;
+import org.jboss.jca.common.metadata.ironjacamar.IronJacamarParser;
 import org.jboss.jca.common.metadata.ra.RaParser;
+import org.jboss.jca.common.metadata.ra.common.ConfigPropertyImpl;
+import org.jboss.jca.common.metadata.resourceadapter.ResourceAdapterParser;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -42,6 +47,7 @@
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
 import static org.hamcrest.core.IsNot.not;
+import static org.hamcrest.core.IsNull.notNullValue;
 import static org.junit.Assert.assertThat;
 import static org.junit.matchers.JUnitMatchers.hasItem;
 
@@ -68,13 +74,13 @@
       {
          //given
          File xmlFile = new File(Thread.currentThread().getContextClassLoader().getResource("adapters/ra.xml")
-               .toURI());
+            .toURI());
          is = new FileInputStream(xmlFile);
          RaParser parser = new RaParser();
          Connector connector = parser.parse(is);
          is.close();
          xmlFile = new File(Thread.currentThread().getContextClassLoader().getResource("ds/postgres-ds.xml")
-               .toURI());
+            .toURI());
          is = new FileInputStream(xmlFile);
          DsParser dsparser = new DsParser();
          //when
@@ -88,16 +94,15 @@
              resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions() != null)
          {
             properties = resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
-                  .getConfigProperties();
+               .getConfigProperties();
          }
 
          //verify pre-condition
          assertThat(resourceAdapter1516.getOutboundResourceadapter().getTransactionSupport(),
-               is(TransactionSupportEnum.LocalTransaction));
-         assertThat(
-               resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
-                     .getManagedConnectionFactoryClass(),
-               equalTo(new XsdString("org.jboss.jca.adapters.jdbc.local." + "LocalManagedConnectionFactory", null)));
+            is(TransactionSupportEnum.LocalTransaction));
+         assertThat(resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
+            .getManagedConnectionFactoryClass(), equalTo(new XsdString("org.jboss.jca.adapters.jdbc.local."
+                                                                       + "LocalManagedConnectionFactory", null)));
 
          //when
          Merger m = new Merger();
@@ -115,7 +120,7 @@
              resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions() != null)
          {
             mergedProperties = mergedResourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions()
-                  .get(0).getConfigProperties();
+               .get(0).getConfigProperties();
          }
          //then merged properties are presents
          assertThat((List<ConfigProperty>) mergedProperties,
@@ -127,17 +132,17 @@
          assertThat((List<ConfigProperty>) mergedProperties,
             hasItem(Merger.ConfigPropertyFactory.createConfigProperty(
                Merger.ConfigPropertyFactory.Prototype.CONNECTIONURL,
-                     "jdbc:postgresql://[servername]:[port]/[database name]")));
+               "jdbc:postgresql://[servername]:[port]/[database name]")));
          assertThat((List<ConfigProperty>) mergedProperties,
             hasItem(Merger.ConfigPropertyFactory.createConfigProperty(
                Merger.ConfigPropertyFactory.Prototype.DRIVERCLASS, "org.postgresql.Driver")));
 
          //then metadata read from ra.xml still present (not deleted by merge)
          assertThat(mergedResourceAdapter1516.getOutboundResourceadapter().getTransactionSupport(),
-               is(TransactionSupportEnum.LocalTransaction));
+            is(TransactionSupportEnum.LocalTransaction));
          assertThat(mergedResourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
-               .getManagedConnectionFactoryClass(),
-               equalTo(new XsdString("org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory", null)));
+            .getManagedConnectionFactoryClass(),
+            equalTo(new XsdString("org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory", null)));
 
          //then it have empty property for not set ones
          assertThat((List<ConfigProperty>) mergedProperties,
@@ -172,13 +177,13 @@
       {
          //given
          File xmlFile = new File(Thread.currentThread().getContextClassLoader().getResource("adapters/ra-xa.xml")
-               .toURI());
+            .toURI());
          is = new FileInputStream(xmlFile);
          RaParser parser = new RaParser();
          Connector connector = parser.parse(is);
          is.close();
          xmlFile = new File(Thread.currentThread().getContextClassLoader().getResource("ds/postgres-xa-ds.xml")
-               .toURI());
+            .toURI());
          is = new FileInputStream(xmlFile);
          DsParser dsparser = new DsParser();
          //when
@@ -192,15 +197,15 @@
              resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions() != null)
          {
             properties = resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
-                  .getConfigProperties();
+               .getConfigProperties();
          }
 
          //verify pre-condition
          assertThat(resourceAdapter1516.getOutboundResourceadapter().getTransactionSupport(),
-               is(TransactionSupportEnum.XATransaction));
+            is(TransactionSupportEnum.XATransaction));
          assertThat(resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
-               .getManagedConnectionFactoryClass(),
-               equalTo(new XsdString("org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory", null)));
+            .getManagedConnectionFactoryClass(),
+            equalTo(new XsdString("org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory", null)));
 
          //when
          Merger mf = new Merger();
@@ -218,7 +223,7 @@
              resourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions() != null)
          {
             mergedProperties = mergedResourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions()
-                  .get(0).getConfigProperties();
+               .get(0).getConfigProperties();
          }
 
          //then merged properties are presents
@@ -226,20 +231,19 @@
          assertThat((List<ConfigProperty>) mergedProperties,
             hasItem(Merger.ConfigPropertyFactory.createConfigProperty(
                Merger.ConfigPropertyFactory.Prototype.XADATASOURCEPROPERTIES,
-                     "DatabaseName=database_name;User=user;ServerName=server_name;PortNumber=5432;"
-                           + "Password=password;")));
+               "DatabaseName=database_name;User=user;ServerName=server_name;PortNumber=5432;"
+                  + "Password=password;")));
 
          assertThat((List<ConfigProperty>) mergedProperties,
             hasItem(Merger.ConfigPropertyFactory.createConfigProperty(
-               Merger.ConfigPropertyFactory.Prototype.XADATASOURCECLASS,
-                     "org.postgresql.xa.PGXADataSource")));
+               Merger.ConfigPropertyFactory.Prototype.XADATASOURCECLASS, "org.postgresql.xa.PGXADataSource")));
 
          //then metadata read from ra.xml still present (not deleted by merge)
          assertThat(mergedResourceAdapter1516.getOutboundResourceadapter().getTransactionSupport(),
-               is(TransactionSupportEnum.XATransaction));
+            is(TransactionSupportEnum.XATransaction));
          assertThat(mergedResourceAdapter1516.getOutboundResourceadapter().getConnectionDefinitions().get(0)
-               .getManagedConnectionFactoryClass(),
-               equalTo(new XsdString("org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory", null)));
+            .getManagedConnectionFactoryClass(),
+            equalTo(new XsdString("org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory", null)));
 
          //then it have empty property for not set ones
          assertThat((List<ConfigProperty>) mergedProperties,
@@ -259,4 +263,104 @@
       }
 
    }
+
+   /**
+    * shouldMergeRaXmlConnector
+    * @throws Exception in case of error
+    */
+   @SuppressWarnings("unchecked")
+   @Test
+   public void shouldMergeRaXmlConnector() throws Exception
+   {
+      FileInputStream is = null;
+      try
+      {
+         //given
+         File xmlFile = new File(Thread.currentThread().getContextClassLoader()
+            .getResource("merger/connector-merging-with-ra.xml").toURI());
+         is = new FileInputStream(xmlFile);
+         RaParser parser = new RaParser();
+         Connector connector = parser.parse(is);
+         is.close();
+         xmlFile = new File(Thread.currentThread().getContextClassLoader()
+            .getResource("merger/ra-merging-with-connector.xml").toURI());
+         is = new FileInputStream(xmlFile);
+         ResourceAdapterParser raparser = new ResourceAdapterParser();
+         ResourceAdapters ra = raparser.parse(is);
+
+         assertThat(connector, notNullValue());
+         assertThat(ra.getResourceAdapters().get(0), notNullValue());
+
+         //when
+         Merger mf = new Merger();
+         Connector merged = mf.mergeConnectorWithCommonIronJacamar(ra.getResourceAdapters().get(0), connector);
+         //then
+
+         assertThat(merged, notNullValue());
+      }
+      finally
+      {
+         if (is != null)
+            is.close();
+      }
+
+   }
+
+   /**
+    * shouldMergeIronJacamarConnector
+    * @throws Exception in case of error
+    */
+   @SuppressWarnings("unchecked")
+   @Test
+   public void shouldMergeIronJacamarConnector() throws Exception
+   {
+      FileInputStream is = null;
+      try
+      {
+         //given
+         File xmlFile = new File(Thread.currentThread().getContextClassLoader()
+            .getResource("merger/connector-merging-with-ironjacamar.xml").toURI());
+         is = new FileInputStream(xmlFile);
+         RaParser parser = new RaParser();
+         Connector connector = parser.parse(is);
+         is.close();
+         xmlFile = new File(Thread.currentThread().getContextClassLoader()
+            .getResource("merger/ironjacamar-merging-with-connector.xml").toURI());
+         is = new FileInputStream(xmlFile);
+         IronJacamarParser raparser = new IronJacamarParser();
+         IronJacamar ij = raparser.parse(is);
+
+         assertThat(connector, notNullValue());
+         assertThat(ij, notNullValue());
+         assertThat(((ResourceAdapter1516) connector.getResourceadapter()).getOutboundResourceadapter()
+            .getConnectionDefinitions().size(), is(1));
+
+         //when
+         Merger mf = new Merger();
+         Connector merged = mf.mergeConnectorWithCommonIronJacamar(ij, connector);
+         //then
+         ConfigProperty expectedConfigProp = new ConfigPropertyImpl(null, new XsdString("StringRAR", null),
+                                                                    new XsdString("java.lang.String", null),
+                                                                    new XsdString("XMLOVERRIDE", null), null);
+         assertThat(merged, notNullValue());
+         assertThat((List<ConfigProperty>) connector.getResourceadapter().getConfigProperties(),
+            hasItem(expectedConfigProp));
+         assertThat(merged.getEisType(), equalTo(connector.getEisType()));
+         assertThat(merged.getVersion(), equalTo(connector.getVersion()));
+         assertThat(((ResourceAdapter1516) merged.getResourceadapter()).getResourceadapterClass(),
+            equalTo(((ResourceAdapter1516) connector.getResourceadapter()).getResourceadapterClass()));
+         assertThat(((ResourceAdapter1516) merged.getResourceadapter()).getOutboundResourceadapter(),
+            equalTo(((ResourceAdapter1516) connector.getResourceadapter()).getOutboundResourceadapter()));
+         assertThat(((ResourceAdapter1516) merged.getResourceadapter()).getOutboundResourceadapter()
+            .getConnectionDefinitions().size(), is(1));
+         assertThat(((ResourceAdapter1516) merged.getResourceadapter()).getInboundResourceadapter(),
+            equalTo(((ResourceAdapter1516) connector.getResourceadapter()).getInboundResourceadapter()));
+      }
+      finally
+      {
+         if (is != null)
+            is.close();
+      }
+
+   }
 }

Added: projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ironjacamar.xml
===================================================================
--- projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ironjacamar.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ironjacamar.xml	2010-09-16 09:45:10 UTC (rev 108169)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id $ -->
+
+<connector xmlns="http://java.sun.com/xml/ns/javaee"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+           http://java.sun.com/xml/ns/j2ee/connector_1_6.xsd"
+           version="1.6" metadata-complete="true">
+
+   <vendor-name>Red Hat Middleware LLC</vendor-name>
+   <eis-type>Test RA</eis-type>
+   <resourceadapter-version>0.1</resourceadapter-version>
+
+   <resourceadapter>
+      <resourceadapter-class>org.jboss.jca.test.deployers.spec.rars.ra16inoutjbossra.TestResourceAdapter</resourceadapter-class>
+      <config-property>
+         <config-property-name>StringRAR</config-property-name>
+         <config-property-type>java.lang.String</config-property-type>
+         <config-property-value>StringFromRARProperties</config-property-value>
+      </config-property>
+      <outbound-resourceadapter>
+         <connection-definition>
+            <managedconnectionfactory-class>org.jboss.jca.test.deployers.spec.rars.ra16inoutjbossra.TestManagedConnectionFactory</managedconnectionfactory-class>
+
+            <connectionfactory-interface>javax.resource.spi.ManagedConnection</connectionfactory-interface>
+            <connectionfactory-impl-class>org.jboss.jca.test.deployers.spec.rars.ra16inoutjbossra.TestManagedConnection</connectionfactory-impl-class>
+            <connection-interface>org.jboss.jca.test.deployers.spec.rars.TestConnectionInterface</connection-interface>
+            <connection-impl-class>org.jboss.jca.test.deployers.spec.rars.TestConnection</connection-impl-class>
+         </connection-definition>
+         <transaction-support>LocalTransaction</transaction-support>
+         <reauthentication-support>false</reauthentication-support>
+      </outbound-resourceadapter>
+      <inbound-resourceadapter>
+         <messageadapter>        
+            <messagelistener>
+               <messagelistener-type>org.jboss.jca.test.deployers.spec.rars.MessageListener</messagelistener-type>
+               <activationspec>
+                  <activationspec-class>org.jboss.jca.test.deployers.spec.rars.ra16inoutjbossra.TestActivationSpec</activationspec-class>
+               </activationspec>
+            </messagelistener>
+         </messageadapter>
+      </inbound-resourceadapter>
+   </resourceadapter>
+</connector>
\ No newline at end of file

Added: projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ra.xml
===================================================================
--- projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ra.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/common/src/test/resources/merger/connector-merging-with-ra.xml	2010-09-16 09:45:10 UTC (rev 108169)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id $ -->
+
+<connector xmlns="http://java.sun.com/xml/ns/javaee"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+           http://java.sun.com/xml/ns/j2ee/connector_1_6.xsd"
+           version="1.6" metadata-complete="true">
+
+   <vendor-name>Red Hat Middleware LLC</vendor-name>
+   <eis-type>Test RA</eis-type>
+   <resourceadapter-version>0.1</resourceadapter-version>
+
+   <resourceadapter>
+      <resourceadapter-class>org.jboss.jca.test.deployers.spec.rars.ra16out.TestResourceAdapter</resourceadapter-class>
+
+      <outbound-resourceadapter>
+         <connection-definition>
+            <managedconnectionfactory-class>org.jboss.jca.test.deployers.spec.rars.ra16out.TestManagedConnectionFactory</managedconnectionfactory-class>
+
+            <connectionfactory-interface>javax.resource.spi.ManagedConnection</connectionfactory-interface>
+            <connectionfactory-impl-class>org.jboss.jca.test.deployers.spec.rars.ra16out.TestManagedConnection</connectionfactory-impl-class>
+            <connection-interface>org.jboss.jca.test.deployers.spec.rars.TestConnectionInterface</connection-interface>
+            <connection-impl-class>org.jboss.jca.test.deployers.spec.rars.TestConnection</connection-impl-class>
+         </connection-definition>
+         <transaction-support>LocalTransaction</transaction-support>
+         <reauthentication-support>false</reauthentication-support>
+      </outbound-resourceadapter>
+   </resourceadapter>
+</connector>
\ No newline at end of file

Added: projects/jboss-jca/trunk/common/src/test/resources/merger/ironjacamar-merging-with-connector.xml
===================================================================
--- projects/jboss-jca/trunk/common/src/test/resources/merger/ironjacamar-merging-with-connector.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/common/src/test/resources/merger/ironjacamar-merging-with-connector.xml	2010-09-16 09:45:10 UTC (rev 108169)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id $ -->
+
+<ironjacamar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="../../../../../../common/src/main/resources/schema/ironjacamar_1_0.xsd">
+  
+   <config-property name="StringRAR">XMLOVERRIDE</config-property>
+   
+</ironjacamar>
\ No newline at end of file

Added: projects/jboss-jca/trunk/common/src/test/resources/merger/ra-merging-with-connector.xml
===================================================================
--- projects/jboss-jca/trunk/common/src/test/resources/merger/ra-merging-with-connector.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/common/src/test/resources/merger/ra-merging-with-connector.xml	2010-09-16 09:45:10 UTC (rev 108169)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<resource-adapters>
+  <resource-adapter>
+    <archive>ra16out.rar</archive>
+    <connection-definitions>
+      <connection-definition jndi-name="java:/eis/ra16out-raxml"
+                             class-name="org.jboss.jca.test.deployers.spec.rars.ra16out.TestManagedConnectionFactory">
+      </connection-definition>
+    </connection-definitions>
+  </resource-adapter>
+</resource-adapters>

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java	2010-09-16 09:43:46 UTC (rev 108168)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java	2010-09-16 09:45:10 UTC (rev 108169)
@@ -32,6 +32,7 @@
 import org.jboss.jca.common.api.metadata.ra.MessageListener;
 import org.jboss.jca.common.api.metadata.ra.ResourceAdapter1516;
 import org.jboss.jca.common.api.metadata.ra.ra10.ResourceAdapter10;
+import org.jboss.jca.common.metadata.merge.Merger;
 import org.jboss.jca.core.connectionmanager.ConnectionManager;
 import org.jboss.jca.core.connectionmanager.ConnectionManagerFactory;
 import org.jboss.jca.core.connectionmanager.pool.api.Pool;
@@ -184,7 +185,7 @@
                log.trace("Processing: " + deployment.toExternalForm());
 
             boolean include = true;
-         
+
             if (excludeArchives != null)
             {
                for (String excludedArchive : excludeArchives)
@@ -193,10 +194,10 @@
                      include = false;
                }
             }
-            
+
             if (include)
             {
-               Map<String, List<String>> jndiMappings = 
+               Map<String, List<String>> jndiMappings =
                   getConfiguration().getMetadataRepository().getJndiMappings(deployment);
 
                // If there isn't any JNDI mappings then the archive isn't active
@@ -303,6 +304,8 @@
          Connector cmd = getConfiguration().getMetadataRepository().getResourceAdapter(url);
          IronJacamar ijmd = getConfiguration().getMetadataRepository().getIronJacamar(url);
 
+         cmd = (new Merger()).mergeConnectorWithCommonIronJacamar(ijmd, cmd);
+
          ResourceAdapter resourceAdapter = null;
          List<Validate> archiveValidationObjects = new ArrayList<Validate>();
          List<Failure> partialFailures = null;
@@ -399,7 +402,7 @@
                // Connection manager properties
                Long allocationRetry = null; // TODO
                Long allocationRetryWaitMillis = null;
-               
+
                if (ijmd != null)
                {
                   /*
@@ -412,14 +415,14 @@
                // Select the correct connection manager
                if (tsl == TransactionSupportLevel.NoTransaction)
                {
-                  cm = cmf.createNonTransactional(tsl, 
+                  cm = cmf.createNonTransactional(tsl,
                                                   pool,
                                                   allocationRetry,
                                                   allocationRetryWaitMillis);
                }
                else
                {
-                  cm = cmf.createTransactional(tsl, 
+                  cm = cmf.createTransactional(tsl,
                                                pool,
                                                allocationRetry,
                                                allocationRetryWaitMillis,
@@ -501,7 +504,7 @@
                         TransactionSupportEnum tsmd = TransactionSupportEnum.NoTransaction;
 
                         tsmd = ra.getOutboundResourceadapter().getTransactionSupport();
-                        
+
                         if (tsmd == TransactionSupportEnum.NoTransaction)
                         {
                            tsl = TransactionSupportLevel.NoTransaction;
@@ -522,7 +525,7 @@
                         // Connection manager properties
                         Long allocationRetry = null; // TODO
                         Long allocationRetryWaitMillis = null;
-               
+
                         if (ijmd != null)
                         {
                            /*
@@ -535,14 +538,14 @@
                         // Select the correct connection manager
                         if (tsl == TransactionSupportLevel.NoTransaction)
                         {
-                           cm = cmf.createNonTransactional(tsl, 
+                           cm = cmf.createNonTransactional(tsl,
                                                            pool,
                                                            allocationRetry,
                                                            allocationRetryWaitMillis);
                         }
                         else
                         {
-                           cm = cmf.createTransactional(tsl, 
+                           cm = cmf.createTransactional(tsl,
                                                         pool,
                                                         allocationRetry,
                                                         allocationRetryWaitMillis,
@@ -567,7 +570,7 @@
                         }
 
                         archiveValidationObjects.add(new ValidateObject(Key.CONNECTION_FACTORY, cf));
-                        
+
                         if (cf != null && cf instanceof Serializable && cf instanceof Referenceable)
                         {
                            deploymentName = f.getName().substring(0, f.getName().indexOf(".rar"));
@@ -596,7 +599,7 @@
                    ra1516.getInboundResourceadapter().getMessageadapter() != null &&
                    ra1516.getInboundResourceadapter().getMessageadapter().getMessagelisteners() != null)
                {
-                  List<MessageListener> mlMetas = 
+                  List<MessageListener> mlMetas =
                      ra1516.getInboundResourceadapter().getMessageadapter().getMessagelisteners();
 
                   if (mlMetas.size() > 0)
@@ -723,11 +726,11 @@
 
          log.info("Deployed: " + url.toExternalForm());
 
-         return new RAActivatorDeployment(url, 
-                                          deploymentName, 
-                                          resourceAdapter, 
-                                          getConfiguration().getJndiStrategy(), 
-                                          getConfiguration().getMetadataRepository(), 
+         return new RAActivatorDeployment(url,
+                                          deploymentName,
+                                          resourceAdapter,
+                                          getConfiguration().getJndiStrategy(),
+                                          getConfiguration().getMetadataRepository(),
                                           cfs,
                                           jndis,
                                           cl,

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java	2010-09-16 09:43:46 UTC (rev 108168)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java	2010-09-16 09:45:10 UTC (rev 108169)
@@ -35,6 +35,7 @@
 import org.jboss.jca.common.api.metadata.ra.ResourceAdapter1516;
 import org.jboss.jca.common.api.metadata.ra.ra10.ResourceAdapter10;
 import org.jboss.jca.common.metadata.MetadataFactory;
+import org.jboss.jca.common.metadata.merge.Merger;
 import org.jboss.jca.common.spi.annotations.repository.AnnotationRepository;
 import org.jboss.jca.common.spi.annotations.repository.AnnotationScanner;
 import org.jboss.jca.core.connectionmanager.ConnectionManager;
@@ -179,8 +180,7 @@
          cmd.validate();
 
          // Merge metadata
-         //TODO: merge ironjacamar with connector properties. Select the right list of properties
-         // and use MetadataFavtory.mergeConfigProperties(Map<String, String>, List<? extends ConfigProperty> )
+         cmd = (new Merger()).mergeConnectorWithCommonIronJacamar(ijmd, cmd);
 
          // Notify regarding license terms
          if (cmd != null && cmd.getLicense() != null && cmd.getLicense().isLicenseRequired())
@@ -293,11 +293,11 @@
                   {
                      tsl = TransactionSupportLevel.XATransaction;
                   }
-                  
+
                   // Connection manager properties
                   Long allocationRetry = null; // TODO
                   Long allocationRetryWaitMillis = null;
-               
+
                   if (ijmd != null)
                   {
                      /*
@@ -310,14 +310,14 @@
                   // Select the correct connection manager
                   if (tsl == TransactionSupportLevel.NoTransaction)
                   {
-                     cm = cmf.createNonTransactional(tsl, 
+                     cm = cmf.createNonTransactional(tsl,
                                                      pool,
                                                      allocationRetry,
                                                      allocationRetryWaitMillis);
                   }
                   else
                   {
-                     cm = cmf.createTransactional(tsl, 
+                     cm = cmf.createTransactional(tsl,
                                                   pool,
                                                   allocationRetry,
                                                   allocationRetryWaitMillis,
@@ -347,7 +347,7 @@
                   {
                      String[] jndis = bindConnectionFactory(url, deploymentName, cf);
                      cfs = new Object[] {cf};
-                     
+
                      cm.setJndiName(jndis[0]);
                   }
                }
@@ -433,7 +433,7 @@
                               // Connection manager properties
                               Long allocationRetry = null; // TODO
                               Long allocationRetryWaitMillis = null;
-                              
+
                               if (ijmd != null)
                               {
                                  /*
@@ -453,7 +453,7 @@
                               }
                               else
                               {
-                                 cm = cmf.createTransactional(tsl, 
+                                 cm = cmf.createTransactional(tsl,
                                                               pool,
                                                               allocationRetry,
                                                               allocationRetryWaitMillis,

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployer.java	2010-09-16 09:43:46 UTC (rev 108168)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployer.java	2010-09-16 09:45:10 UTC (rev 108169)
@@ -32,6 +32,7 @@
 import org.jboss.jca.common.api.metadata.ra.ResourceAdapter1516;
 import org.jboss.jca.common.api.metadata.ra.ra10.ResourceAdapter10;
 import org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapters;
+import org.jboss.jca.common.metadata.merge.Merger;
 import org.jboss.jca.common.metadata.resourceadapter.ResourceAdapterParser;
 import org.jboss.jca.core.connectionmanager.ConnectionManager;
 import org.jboss.jca.core.connectionmanager.ConnectionManagerFactory;
@@ -215,7 +216,7 @@
          {
             deployments = new ArrayList<Deployment>(size);
 
-            for (org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapter raxml : 
+            for (org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapter raxml :
                     raXmlDeployment.getResourceAdapters())
             {
                Deployment raDeployment = doDeploy(url, raxml, parent);
@@ -266,7 +267,7 @@
     * @exception DeployException Thrown if an error occurs during deployment
     */
    private Deployment doDeploy(URL url,
-                               org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapter raxml, 
+                               org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapter raxml,
                                ClassLoader parent)
       throws DeployException
    {
@@ -295,6 +296,7 @@
          IronJacamar ijmd = getConfiguration().getMetadataRepository().getIronJacamar(deployment);
          File root = getConfiguration().getMetadataRepository().getRoot(deployment);
 
+         cmd = (new Merger()).mergeConnectorWithCommonIronJacamar(raxml, cmd);
          // Create classloader
          URL[] urls = getUrls(root);
          KernelClassLoader cl = null;
@@ -404,7 +406,7 @@
                // Connection manager properties
                Long allocationRetry = null; // TODO
                Long allocationRetryWaitMillis = null;
-               
+
                if (ijmd != null)
                {
                   /*
@@ -471,7 +473,7 @@
                    ra.getOutboundResourceadapter() != null &&
                    ra.getOutboundResourceadapter().getConnectionDefinitions() != null)
                {
-                  List<org.jboss.jca.common.api.metadata.ra.ConnectionDefinition> cdMetas = 
+                  List<org.jboss.jca.common.api.metadata.ra.ConnectionDefinition> cdMetas =
                      ra.getOutboundResourceadapter().getConnectionDefinitions();
 
                   if (cdMetas.size() > 0)
@@ -484,7 +486,7 @@
                         org.jboss.jca.common.api.metadata.ra.ConnectionDefinition cdMeta = cdMetas.get(cdIndex);
 
                         org.jboss.jca.common.api.metadata.common.CommonConnDef cdRaXml =
-                           findConnectionDefinition(cdMeta.getManagedConnectionFactoryClass().getValue(), 
+                           findConnectionDefinition(cdMeta.getManagedConnectionFactoryClass().getValue(),
                                                     raxml.getConnectionDefinitions());
 
                         if (cdRaXml != null && cdRaXml.isEnabled())
@@ -493,7 +495,7 @@
                               (ManagedConnectionFactory) initAndInject(cdMeta.getManagedConnectionFactoryClass()
                                                                        .getValue(), cdMeta
                                                                        .getConfigProperties(), cl);
-                           
+
                            if (trace)
                            {
                               log.trace("ManagedConnectionFactory: " + mcf.getClass().getName());
@@ -522,7 +524,7 @@
                            TransactionSupportEnum tsmd = TransactionSupportEnum.NoTransaction;
 
                            tsmd = ra.getOutboundResourceadapter().getTransactionSupport();
-                        
+
                            if (tsmd == TransactionSupportEnum.NoTransaction)
                            {
                               tsl = TransactionSupportLevel.NoTransaction;
@@ -543,7 +545,7 @@
                            // Connection manager properties
                            Long allocationRetry = null; // TODO
                            Long allocationRetryWaitMillis = null;
-               
+
                            if (ijmd != null)
                            {
                               /*
@@ -563,7 +565,7 @@
                            }
                            else
                            {
-                              cm = cmf.createTransactional(tsl, 
+                              cm = cmf.createTransactional(tsl,
                                                            pool,
                                                            allocationRetry,
                                                            allocationRetryWaitMillis,
@@ -586,9 +588,9 @@
                                            + cf.getClass().getClassLoader());
                               }
                            }
-                           
+
                            archiveValidationObjects.add(new ValidateObject(Key.CONNECTION_FACTORY, cf));
-                        
+
                            if (cf != null && cf instanceof Serializable && cf instanceof Referenceable)
                            {
                               String jndiName = cdRaXml.getJndiName();
@@ -614,7 +616,7 @@
                    ra1516.getInboundResourceadapter().getMessageadapter() != null &&
                    ra1516.getInboundResourceadapter().getMessageadapter().getMessagelisteners() != null)
                {
-                  List<MessageListener> mlMetas = 
+                  List<MessageListener> mlMetas =
                      ra1516.getInboundResourceadapter().getMessageadapter().getMessagelisteners();
 
                   if (mlMetas.size() > 0)
@@ -744,14 +746,14 @@
 
          log.info("Deployed: " + url.toExternalForm());
 
-         return new RaXmlDeployment(url, 
+         return new RaXmlDeployment(url,
                                     deployment,
-                                    deploymentName, 
-                                    resourceAdapter, 
-                                    getConfiguration().getJndiStrategy(), 
-                                    getConfiguration().getMetadataRepository(), 
+                                    deploymentName,
+                                    resourceAdapter,
+                                    getConfiguration().getJndiStrategy(),
+                                    getConfiguration().getMetadataRepository(),
                                     cfs,
-                                    jndiNames, 
+                                    jndiNames,
                                     cl,
                                     log);
       }



More information about the jboss-cvs-commits mailing list