[jboss-cvs] JBossAS SVN: r92261 - in projects/jboss-jca/trunk: deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Aug 12 09:40:40 EDT 2009


Author: jeff.zhang
Date: 2009-08-12 09:40:39 -0400 (Wed, 12 Aug 2009)
New Revision: 92261

Added:
   projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303/TestActivationSpec.java
   projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestActivationSpec.java
Modified:
   projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestManagedConnectionFactory.java
   projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303.rar/META-INF/ra.xml
   projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/jboss-ra.xml
   projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/ra.xml
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/Metadata.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/RADeployer.java
Log:
[JBJCA-142] [JBJCA-144] support jboss-ra 2.0 override properties and add other value injection

Added: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303/TestActivationSpec.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303/TestActivationSpec.java	                        (rev 0)
+++ projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303/TestActivationSpec.java	2009-08-12 13:40:39 UTC (rev 92261)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jca.test.deployers.spec.rars.ra16standard303;
+
+import org.jboss.jca.test.deployers.spec.rars.BaseActivationSpec;
+
+import javax.validation.constraints.NotNull;
+/**
+ * TestActivationSpec
+ * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
+ * @version $Revision: $
+ */
+public class TestActivationSpec extends BaseActivationSpec
+{
+   @NotNull
+   private Boolean myBooleanProperty;
+
+   /**
+    * @return the myBooleanProperty
+    */
+   public Boolean isMyBooleanProperty()
+   {
+      return myBooleanProperty;
+   }
+
+   /**
+    * @param myBooleanProperty the myBooleanProperty to set
+    */
+   public void setMyBooleanProperty(Boolean myBooleanProperty)
+   {
+      this.myBooleanProperty = myBooleanProperty;
+   }
+}


Property changes on: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303/TestActivationSpec.java
___________________________________________________________________
Name: svn:keywords
   + Id Reversion Date

Added: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestActivationSpec.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestActivationSpec.java	                        (rev 0)
+++ projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestActivationSpec.java	2009-08-12 13:40:39 UTC (rev 92261)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jca.test.deployers.spec.rars.ra16standard303jbossra;
+
+import org.jboss.jca.test.deployers.spec.rars.BaseActivationSpec;
+
+import javax.validation.constraints.NotNull;
+/**
+ * TestActivationSpec
+ * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
+ * @version $Revision: $
+ */
+public class TestActivationSpec extends BaseActivationSpec
+{
+   @NotNull
+   private Boolean myBooleanProperty;
+
+   /**
+    * @return the myBooleanProperty
+    */
+   public Boolean isMyBooleanProperty()
+   {
+      return myBooleanProperty;
+   }
+
+   /**
+    * @param myBooleanProperty the myBooleanProperty to set
+    */
+   public void setMyBooleanProperty(Boolean myBooleanProperty)
+   {
+      this.myBooleanProperty = myBooleanProperty;
+   }
+}


Property changes on: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestActivationSpec.java
___________________________________________________________________
Name: svn:keywords
   + Id Reversion Date

Modified: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestManagedConnectionFactory.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestManagedConnectionFactory.java	2009-08-12 11:06:15 UTC (rev 92260)
+++ projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16standard303jbossra/TestManagedConnectionFactory.java	2009-08-12 13:40:39 UTC (rev 92261)
@@ -23,6 +23,8 @@
 
 import org.jboss.jca.test.deployers.spec.rars.BaseManagedConnectionFactory;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * TestManagedConnectionFactory
  * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
@@ -31,4 +33,23 @@
 public class TestManagedConnectionFactory extends BaseManagedConnectionFactory
 {
    private static final long serialVersionUID = 1L;
+   
+   @NotNull
+   private String myStringProperty;
+
+   /**
+    * @param myStringProperty the myStringProperty to set
+    */
+   public void setMyStringProperty(String myStringProperty)
+   {
+      this.myStringProperty = myStringProperty;
+   }
+
+   /**
+    * @return the myStringProperty
+    */
+   public String getMyStringProperty()
+   {
+      return myStringProperty;
+   }
 }

Modified: projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303.rar/META-INF/ra.xml
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303.rar/META-INF/ra.xml	2009-08-12 11:06:15 UTC (rev 92260)
+++ projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303.rar/META-INF/ra.xml	2009-08-12 13:40:39 UTC (rev 92261)
@@ -37,5 +37,20 @@
          <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.ra16standard303.TestActivationSpec</activationspec-class>
+          <config-property>
+             <config-property-name>myBooleanProperty</config-property-name>
+             <config-property-type>java.lang.Boolean</config-property-type>
+             <config-property-value>true</config-property-value>
+          </config-property>
+               </activationspec>
+            </messagelistener>
+         </messageadapter>
+      </inbound-resourceadapter>      
    </resourceadapter>
 </connector>
\ No newline at end of file

Modified: projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/jboss-ra.xml
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/jboss-ra.xml	2009-08-12 11:06:15 UTC (rev 92260)
+++ projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/jboss-ra.xml	2009-08-12 13:40:39 UTC (rev 92261)
@@ -9,6 +9,18 @@
    <ra-config-property>
       <ra-config-property-name>myIntProperty</ra-config-property-name>
       <ra-config-property-type>java.lang.Integer</ra-config-property-type>
-      <ra-config-property-value>1</ra-config-property-value>
+      <ra-config-property-value>8</ra-config-property-value>
    </ra-config-property>
+   
+   <ra-config-property override-element="connection-definition">
+      <ra-config-property-name>myStringProperty</ra-config-property-name>
+      <ra-config-property-type>java.lang.String</ra-config-property-type>
+      <ra-config-property-value>newJCA</ra-config-property-value>
+   </ra-config-property>   
+   
+    <ra-config-property override-element="activationspec">
+       <ra-config-property-name>myBooleanProperty</ra-config-property-name>
+       <ra-config-property-type>java.lang.Boolean</ra-config-property-type>
+       <ra-config-property-value>false</ra-config-property-value>
+    </ra-config-property>
 </jboss-ra>
\ No newline at end of file

Modified: projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/ra.xml
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/ra.xml	2009-08-12 11:06:15 UTC (rev 92260)
+++ projects/jboss-jca/trunk/deployers/src/test/resources/ra16standard303jbossra.rar/META-INF/ra.xml	2009-08-12 13:40:39 UTC (rev 92261)
@@ -24,7 +24,11 @@
       <outbound-resourceadapter>
          <connection-definition>
             <managedconnectionfactory-class>org.jboss.jca.test.deployers.spec.rars.ra16standard303jbossra.TestManagedConnectionFactory</managedconnectionfactory-class>
-
+            <config-property>
+               <config-property-name>myStringProperty</config-property-name>
+               <config-property-type>java.lang.String</config-property-type>
+               <config-property-value>MyJCA</config-property-value>
+            </config-property>
             <connectionfactory-interface>javax.resource.spi.ManagedConnection</connectionfactory-interface>
             <connectionfactory-impl-class>org.jboss.jca.test.deployers.spec.rars.ra16standard303jbossra.TestManagedConnection</connectionfactory-impl-class>
             <connection-interface>org.jboss.jca.test.deployers.spec.rars.TestConnectionInterface</connection-interface>
@@ -33,5 +37,20 @@
          <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.ra16standard303jbossra.TestActivationSpec</activationspec-class>
+          <config-property>
+             <config-property-name>myBooleanProperty</config-property-name>
+             <config-property-type>java.lang.Boolean</config-property-type>
+             <config-property-value>true</config-property-value>
+          </config-property>
+               </activationspec>
+            </messagelistener>
+         </messageadapter>
+      </inbound-resourceadapter>
    </resourceadapter>
 </connector>

Modified: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/Metadata.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/Metadata.java	2009-08-12 11:06:15 UTC (rev 92260)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/Metadata.java	2009-08-12 13:40:39 UTC (rev 92261)
@@ -28,8 +28,10 @@
 import java.util.List;
 
 import org.jboss.logging.Logger;
-import org.jboss.metadata.rar.jboss.JBossRA10DefaultNSMetaData;
+//import org.jboss.metadata.rar.jboss.JBossRA10DefaultNSMetaData;
 import org.jboss.metadata.rar.jboss.JBossRA10MetaData;
+import org.jboss.metadata.rar.jboss.JBossRA20DefaultNSMetaData;
+import org.jboss.metadata.rar.jboss.JBossRA20MetaData;
 import org.jboss.metadata.rar.jboss.JBossRAMetaData;
 import org.jboss.metadata.rar.jboss.RaConfigPropertyMetaData;
 import org.jboss.metadata.rar.spec.ConfigPropertyMetaData;
@@ -125,7 +127,9 @@
 
       MutableSchemaResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
       resolver.mapLocationToClass("http://www.jboss.org/schema/jboss-ra_1_0.xsd", JBossRA10MetaData.class);
-      resolver.mapLocationToClass("jboss-ra", JBossRA10DefaultNSMetaData.class);
+      resolver.mapLocationToClass("http://www.jboss.org/schema/jboss-ra_2_0.xsd", JBossRA20MetaData.class);
+      //resolver.mapLocationToClass("jboss-ra", JBossRA10DefaultNSMetaData.class);
+      resolver.mapLocationToClass("jboss-ra", JBossRA20DefaultNSMetaData.class);
 
       File metadataFile = new File(root, "/META-INF/jboss-ra.xml");
 
@@ -164,19 +168,74 @@
    {
       if (cmd != null && jmd != null)
       {
+         /*
+         <xs:restriction base="javaee:string">
+         <xs:enumeration value="connection-definition"/>
+         <xs:enumeration value="resourceadapter"/>
+         <xs:enumeration value="activationspec"/>
+         <xs:enumeration value="adminobject"/>
+         </xs:restriction>
+         */
+         
          List<RaConfigPropertyMetaData> props = jmd.getRaConfigProps();
+
          List<ConfigPropertyMetaData> append = null;
 
          if (props != null)
          {
             for (RaConfigPropertyMetaData rcmd : props)
             {
-               List<ConfigPropertyMetaData> l = cmd.getRa().getConfigProperty();
+               List<ConfigPropertyMetaData> listConfigProp = null;
+               String override = rcmd.getOverride();
+               if (override == null || override.equals("resourceadapter"))
+               {
+                  if (cmd.getRa() != null)
+                  {
+                     listConfigProp = cmd.getRa().getConfigProperty();
+                  }
+               }
+               else if (override.equals("connection-definition"))
+               {
+                  if (cmd.getRa() != null &&
+                     cmd.getRa().getOutboundRa() != null &&
+                     cmd.getRa().getOutboundRa().getConDefs() != null &&
+                     cmd.getRa().getOutboundRa().getConDefs().size() > 0 &&
+                     cmd.getRa().getOutboundRa().getConDefs().get(0) != null)
+                  {
+                     listConfigProp = cmd.getRa().getOutboundRa().getConDefs().get(0).getConfigProps();
+                  }
+               } 
+               else if (override.equals("activationspec"))
+               {
+                  if (cmd.getRa() != null &&
+                     cmd.getRa().getInboundRa() != null &&
+                     cmd.getRa().getInboundRa().getMessageAdapter() != null &&
+                     cmd.getRa().getInboundRa().getMessageAdapter().getMessageListeners() != null &&
+                     cmd.getRa().getInboundRa().getMessageAdapter().getMessageListeners().size() > 0 &&
+                     cmd.getRa().getInboundRa().getMessageAdapter().getMessageListeners().get(0) != null &&
+                     cmd.getRa().getInboundRa().getMessageAdapter().getMessageListeners().get(0).
+                        getActivationSpecType() != null)
+                  {
+                     listConfigProp = cmd.getRa().getInboundRa().getMessageAdapter().getMessageListeners().
+                        get(0).getActivationSpecType().getConfigProps();
+                  }
+               }
+               else if (override.equals("adminobject"))
+               {
+                  if (cmd.getRa() != null &&
+                     cmd.getRa().getAdminObjects() != null &&
+                     cmd.getRa().getAdminObjects().size() > 0 &&
+                     cmd.getRa().getAdminObjects().get(0) != null)
+                  {
+                     listConfigProp = cmd.getRa().getAdminObjects().get(0).getConfigProps();
+                  }
+               }
+               
                boolean found = false;
 
-               if (l != null)
+               if (listConfigProp != null)
                {
-                  Iterator<ConfigPropertyMetaData> it = l.iterator();
+                  Iterator<ConfigPropertyMetaData> it = listConfigProp.iterator();
                   
                   while (!found && it.hasNext())
                   {

Modified: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/RADeployer.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/RADeployer.java	2009-08-12 11:06:15 UTC (rev 92260)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/ra/RADeployer.java	2009-08-12 13:40:39 UTC (rev 92261)
@@ -43,12 +43,14 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.metadata.rar.jboss.JBossRAMetaData;
+import org.jboss.metadata.rar.spec.AdminObjectMetaData;
 import org.jboss.metadata.rar.spec.ConfigPropertyMetaData;
 import org.jboss.metadata.rar.spec.ConnectionDefinitionMetaData;
 import org.jboss.metadata.rar.spec.ConnectorMetaData;
 import org.jboss.metadata.rar.spec.JCA16DTDMetaData;
 import org.jboss.metadata.rar.spec.JCA16DefaultNSMetaData;
 import org.jboss.metadata.rar.spec.JCA16MetaData;
+import org.jboss.metadata.rar.spec.MessageListenerMetaData;
 
 /**
  * The RA deployer for JCA/SJC
@@ -166,86 +168,81 @@
          // Create objects
          // And
          // Inject values
-         Object resourceAdapter = null;
-         List<Object> mcfs = null;
+         List<Object> objects = new ArrayList<Object>();
          if (cmd != null)
          {
             // ResourceAdapter
             if (cmd.getRa() != null && cmd.getRa().getRaClass() != null)
             {
-               try 
+               initAndInject(cmd.getRa().getRaClass(), 
+                     cmd.getRa().getConfigProperty(), objects, cl);
+            }
+            
+            // ManagedConnectionFactory
+            if (cmd.getRa() != null &&
+               cmd.getRa().getOutboundRa() != null && 
+               cmd.getRa().getOutboundRa().getConDefs() != null)
+            {
+               List<ConnectionDefinitionMetaData> cdMetas = cmd.getRa().getOutboundRa().getConDefs();
+               if (cdMetas.size() > 0)
                {
-                  Class raClass = Class.forName(cmd.getRa().getRaClass(), true, cl);
-                  resourceAdapter = raClass.newInstance();
+                  //mcfs = new ArrayList<Object>();
+                  for (ConnectionDefinitionMetaData cdMeta : cdMetas)
+                  {
+                     if (cdMeta.getManagedConnectionFactoryClass() != null)
+                     {
+                        initAndInject(cdMeta.getManagedConnectionFactoryClass(), 
+                           cdMeta.getConfigProps(), objects, cl);
+                     }
+                  }
                }
-               catch (ClassNotFoundException e)
+            }
+            // activationspec
+            if (cmd.getRa() != null &&
+               cmd.getRa().getInboundRa() != null &&
+               cmd.getRa().getInboundRa().getMessageAdapter() != null &&
+               cmd.getRa().getInboundRa().getMessageAdapter().getMessageListeners() != null)
+            {
+               List<MessageListenerMetaData> mlMetas = cmd.getRa().getInboundRa().
+                  getMessageAdapter().getMessageListeners();
+               if (mlMetas.size() > 0)
                {
-                  log.trace("can't constractor " + cmd.getRa().getRaClass() + " class");
-               }
-               if (resourceAdapter != null)
-               {
-                  List<ConfigPropertyMetaData> l = cmd.getRa().getConfigProperty();
-                  if (l != null)
+                  for (MessageListenerMetaData mlMeta : mlMetas)
                   {
-                     for (ConfigPropertyMetaData cpmd : l)
+                     if (mlMeta.getActivationSpecType() != null && mlMeta.getActivationSpecType().getAsClass() != null)
                      {
-                        Injection.inject(cpmd.getType(), cpmd.getName(), cpmd.getValue(), resourceAdapter);
+                        initAndInject(mlMeta.getActivationSpecType().getAsClass(), 
+                           mlMeta.getActivationSpecType().getConfigProps(), objects, cl);
                      }
                   }
                }
             }
-            
-            // ManagedConnectionFactory
-            if (cmd.getRa() != null && cmd.getRa().getOutboundRa() != null && 
-               cmd.getRa().getOutboundRa().getConDefs() != null)
+
+            //adminobject
+            if (cmd.getRa() != null &&
+               cmd.getRa().getAdminObjects() != null)
             {
-               List<ConnectionDefinitionMetaData> cdMetas = cmd.getRa().getOutboundRa().getConDefs();
-               if (cdMetas.size() > 0)
+               List<AdminObjectMetaData> aoMetas = cmd.getRa().getAdminObjects();
+               if (aoMetas.size() > 0)
                {
-                  mcfs = new ArrayList<Object>();
-                  for (ConnectionDefinitionMetaData cdMeta : cdMetas)
+                  for (AdminObjectMetaData aoMeta : aoMetas)
                   {
-                     if (cdMeta.getManagedConnectionFactoryClass() != null)
+                     if (aoMeta.getAdminObjectImplementationClass() != null)
                      {
-                        Object mcf = null;
-                        try 
-                        {
-                           Class mcfClass = Class.forName(cdMeta.getManagedConnectionFactoryClass(), true, cl);
-                           mcf = mcfClass.newInstance();
-                           mcfs.add(mcf);
-                        } 
-                        catch (ClassNotFoundException e)
-                        {
-                           log.trace("can't constractor " + cdMeta.getManagedConnectionFactoryClass() + " class");
-                        }
-                        if (mcf != null)
-                        {
-                           List<ConfigPropertyMetaData> cpMetas = cdMeta.getConfigProps();
-                           if (cpMetas != null)
-                           {
-                              for (ConfigPropertyMetaData cpmd : cpMetas)
-                              {
-                                 Injection.inject(cpmd.getType(), cpmd.getName(), cpmd.getValue(), mcf);
-                              }
-                           }
-                        }
+                        initAndInject(aoMeta.getAdminObjectImplementationClass(), 
+                              aoMeta.getConfigProps(), objects, cl);
                      }
                   }
                }
             }
-            
          }
 
          // Bean validation
          if (beanValidation)
          {
-            if (resourceAdapter != null)
+            if (objects != null && objects.size() > 0)
             {
-               BeanValidation.validate(resourceAdapter);
-            }
-            if (mcfs != null && mcfs.size() > 0)
-            {
-               for (Object mcf : mcfs)
+               for (Object mcf : objects)
                {
                   BeanValidation.validate(mcf);
                }
@@ -267,6 +264,46 @@
    }
 
    /**
+    * initAndInject
+    * @param mlMeta
+    * @param mcfs
+    * @param cl
+    * @throws DeployException
+    */
+   private void initAndInject(String className, List<ConfigPropertyMetaData> cpMetas,
+      List<Object> mcfs, URLClassLoader cl) throws DeployException
+   {
+      Object mcf = null;
+      try 
+      {
+         Class mcfClass = Class.forName(className, true, cl);
+         mcf = mcfClass.newInstance();
+         mcfs.add(mcf);
+         
+         if (mcf != null)
+         {
+            //List<ConfigPropertyMetaData> cpMetas = mlMeta.getActivationSpecType().getConfigProps();
+            if (cpMetas != null)
+            {
+               for (ConfigPropertyMetaData cpmd : cpMetas)
+               {
+                  Injection.inject(cpmd.getType(), cpmd.getName(), cpmd.getValue(), mcf);
+               }
+            }
+         }
+      } 
+      catch (ClassNotFoundException e)
+      {
+         log.trace("can't constractor " + className + " class");
+      }
+      catch (Throwable t)
+      {
+         throw new DeployException("Deployment " + className + " failed", t);
+      }
+
+   }
+
+   /**
     * Get the URLs for the directory and all libraries located in the directory
     * @param directrory The directory
     * @return The URLs




More information about the jboss-cvs-commits mailing list