[jboss-cvs] JBossAS SVN: r111049 - in projects/jboss-jca/trunk: deployers/src/main/java/org/jboss/jca/deployers/fungal and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 28 11:25:02 EDT 2011
Author: jesper.pedersen
Date: 2011-03-28 11:25:01 -0400 (Mon, 28 Mar 2011)
New Revision: 111049
Modified:
projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/inflow/PureInflowTestCase.java
projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java
Log:
[JBJCA-537] AdminObject must be considered when activating
Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/inflow/PureInflowTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/inflow/PureInflowTestCase.java 2011-03-28 14:56:19 UTC (rev 111048)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/inflow/PureInflowTestCase.java 2011-03-28 15:25:01 UTC (rev 111049)
@@ -25,6 +25,7 @@
import org.jboss.jca.core.spi.rar.Endpoint;
import org.jboss.jca.core.spi.rar.MessageListener;
import org.jboss.jca.core.spi.rar.ResourceAdapterRepository;
+import org.jboss.jca.deployers.fungal.RAActivator;
import org.jboss.jca.embedded.Embedded;
import org.jboss.jca.embedded.EmbeddedFactory;
@@ -74,15 +75,22 @@
try
{
embedded.startup();
- embedded.deploy(pureInflowRar);
- ic = new InitialContext();
-
ResourceAdapterRepository raRepository =
embedded.lookup("ResourceAdapterRepository", ResourceAdapterRepository.class);
assertNotNull(raRepository);
+ RAActivator raActivator =
+ embedded.lookup("RAActivator", RAActivator.class);
+
+ assertNotNull(raActivator);
+ raActivator.setEnabled(false);
+
+ embedded.deploy(pureInflowRar);
+
+ ic = new InitialContext();
+
Set<String> ids = raRepository.getResourceAdapters(javax.jms.MessageListener.class);
assertNotNull(ids);
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 2011-03-28 14:56:19 UTC (rev 111048)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java 2011-03-28 15:25:01 UTC (rev 111049)
@@ -24,6 +24,7 @@
import org.jboss.jca.common.annotations.Annotations;
import org.jboss.jca.common.api.metadata.ironjacamar.IronJacamar;
+import org.jboss.jca.common.api.metadata.ra.AdminObject;
import org.jboss.jca.common.api.metadata.ra.ConnectionDefinition;
import org.jboss.jca.common.api.metadata.ra.Connector;
import org.jboss.jca.common.api.metadata.ra.Connector.Version;
@@ -43,6 +44,7 @@
import java.io.IOException;
import java.net.URL;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -211,15 +213,15 @@
@Override
protected boolean checkActivation(Connector cmd, IronJacamar ijmd)
{
- if (cmd != null && ijmd != null)
+ if (cmd != null)
{
- Set<String> raClasses = new HashSet<String>();
- Set<String> ijClasses = new HashSet<String>();
+ Set<String> raMcfClasses = new HashSet<String>();
+ Set<String> raAoClasses = new HashSet<String>();
if (cmd.getVersion() == Version.V_10)
{
ResourceAdapter10 ra10 = (ResourceAdapter10) cmd.getResourceadapter();
- raClasses.add(ra10.getManagedConnectionFactoryClass().getValue());
+ raMcfClasses.add(ra10.getManagedConnectionFactoryClass().getValue());
}
else
{
@@ -232,36 +234,103 @@
{
for (ConnectionDefinition cdMeta : cdMetas)
{
- raClasses.add(cdMeta.getManagedConnectionFactoryClass().getValue());
+ raMcfClasses.add(cdMeta.getManagedConnectionFactoryClass().getValue());
}
}
}
+
+ if (ra != null && ra.getAdminObjects() != null)
+ {
+ List<AdminObject> aoMetas = ra.getAdminObjects();
+ if (aoMetas.size() > 0)
+ {
+ for (AdminObject aoMeta : aoMetas)
+ {
+ raAoClasses.add(aoMeta.getAdminobjectClass().getValue());
+ }
+ }
+ }
+
+ // Pure inflow
+ if (raMcfClasses.size() == 0 && raAoClasses.size() == 0)
+ return true;
}
- if (raClasses.size() == 0)
- return false;
+ if (ijmd != null)
+ {
+ Set<String> ijMcfClasses = new HashSet<String>();
+ Set<String> ijAoClasses = new HashSet<String>();
- if (ijmd.getConnectionDefinitions() != null)
- {
- for (org.jboss.jca.common.api.metadata.common.CommonConnDef def : ijmd.getConnectionDefinitions())
+ boolean mcfSingle = false;
+ boolean aoSingle = false;
+
+ boolean mcfOk = true;
+ boolean aoOk = true;
+
+ if (ijmd.getConnectionDefinitions() != null)
{
- String clz = def.getClassName();
+ for (org.jboss.jca.common.api.metadata.common.CommonConnDef def : ijmd.getConnectionDefinitions())
+ {
+ String clz = def.getClassName();
- if (clz == null && raClasses.size() == 1)
- return true;
+ if (clz == null)
+ {
+ if (raMcfClasses.size() == 1)
+ {
+ mcfSingle = true;
+ }
+ }
+ else
+ {
+ ijMcfClasses.add(clz);
+ }
+ }
+ }
- if (clz != null)
- ijClasses.add(clz);
+ if (!mcfSingle)
+ {
+ Iterator<String> it = raMcfClasses.iterator();
+ while (mcfOk && it.hasNext())
+ {
+ String clz = it.next();
+ if (!ijMcfClasses.contains(clz))
+ mcfOk = false;
+ }
}
- }
- for (String clz : raClasses)
- {
- if (!ijClasses.contains(clz))
- return false;
+ if (ijmd.getAdminObjects() != null)
+ {
+ for (org.jboss.jca.common.api.metadata.common.CommonAdminObject def : ijmd.getAdminObjects())
+ {
+ String clz = def.getClassName();
+
+ if (clz == null)
+ {
+ if (raAoClasses.size() == 1)
+ {
+ aoSingle = true;
+ }
+ }
+ else
+ {
+ ijAoClasses.add(clz);
+ }
+ }
+ }
+
+ if (!aoSingle)
+ {
+ Iterator<String> it = raAoClasses.iterator();
+ while (aoOk && it.hasNext())
+ {
+ String clz = it.next();
+ if (!ijAoClasses.contains(clz))
+ aoOk = false;
+ }
+ }
+
+ return mcfOk && aoOk;
}
-
- return true;
}
return false;
More information about the jboss-cvs-commits
mailing list