[jboss-cvs] JBossAS SVN: r112305 - in projects/jboss-jca/branches/Branch_1_0: core/src/main/java/org/jboss/jca/core/rar and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 11 13:14:44 EDT 2011


Author: jesper.pedersen
Date: 2011-10-11 13:14:44 -0400 (Tue, 11 Oct 2011)
New Revision: 112305

Modified:
   projects/jboss-jca/branches/Branch_1_0/common/src/main/java/org/jboss/jca/common/metadata/ra/common/ResourceAdapter1516Impl.java
   projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/rar/SimpleResourceAdapterRepository.java
   projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/spi/rar/ResourceAdapterRepository.java
   projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
   projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java
Log:
[JBJCA-680] Pure ResourceAdapter class deployment aren't working

Modified: projects/jboss-jca/branches/Branch_1_0/common/src/main/java/org/jboss/jca/common/metadata/ra/common/ResourceAdapter1516Impl.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/common/src/main/java/org/jboss/jca/common/metadata/ra/common/ResourceAdapter1516Impl.java	2011-10-11 17:06:05 UTC (rev 112304)
+++ projects/jboss-jca/branches/Branch_1_0/common/src/main/java/org/jboss/jca/common/metadata/ra/common/ResourceAdapter1516Impl.java	2011-10-11 17:14:44 UTC (rev 112305)
@@ -329,7 +329,7 @@
           this.getResourceadapterClass() != null)
          inboundOrOutbound = true;
 
-      if (!inboundOrOutbound)
+      if (!inboundOrOutbound && (this.resourceadapterClass == null || this.resourceadapterClass.trim().equals("")))
          throw new ValidateException(bundle.invalidMetadataForResourceAdapter());
    }
 

Modified: projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/rar/SimpleResourceAdapterRepository.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/rar/SimpleResourceAdapterRepository.java	2011-10-11 17:06:05 UTC (rev 112304)
+++ projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/rar/SimpleResourceAdapterRepository.java	2011-10-11 17:14:44 UTC (rev 112305)
@@ -162,6 +162,28 @@
    /**
     * {@inheritDoc}
     */
+   public ResourceAdapter getResourceAdapter(String uniqueId) throws NotFoundException
+   {
+      if (uniqueId == null)
+         throw new IllegalArgumentException("UniqueId is null");
+
+      if (uniqueId.trim().equals(""))
+         throw new IllegalArgumentException("UniqueId is empty");
+
+      if (!rars.containsKey(uniqueId))
+         throw new NotFoundException(bundle.keyNotRegistered(uniqueId));
+
+      WeakReference<ResourceAdapter> ra = rars.get(uniqueId);
+
+      if (ra.get() == null)
+         throw new NotFoundException(bundle.keyNotRegistered(uniqueId));
+
+      return ra.get();
+   }
+
+   /**
+    * {@inheritDoc}
+    */
    public synchronized Set<String> getResourceAdapters()
    {
       return Collections.unmodifiableSet(rars.keySet());

Modified: projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/spi/rar/ResourceAdapterRepository.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/spi/rar/ResourceAdapterRepository.java	2011-10-11 17:06:05 UTC (rev 112304)
+++ projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/spi/rar/ResourceAdapterRepository.java	2011-10-11 17:14:44 UTC (rev 112305)
@@ -49,6 +49,14 @@
    public void unregisterResourceAdapter(String key) throws NotFoundException;
 
    /**
+    * Get the resource adapter instance based on the unique id
+    * @param uniqueId An unique id that represents the deployment
+    * @return The resource adapter
+    * @exception NotFoundException Thrown if the unique id isn't registered
+    */
+   public ResourceAdapter getResourceAdapter(String uniqueId) throws NotFoundException;
+
+   /**
     * Get the resource adapters unique ids registered
     * @return The unique ids
     */

Modified: projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-10-11 17:06:05 UTC (rev 112304)
+++ projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-10-11 17:14:44 UTC (rev 112305)
@@ -890,7 +890,7 @@
                               }
                               else
                               {
-                                  log.adminObjectNotBound(aoMeta.getAdminobjectClass().getValue());
+                                 log.adminObjectNotBound(aoMeta.getAdminobjectClass().getValue());
                               }
                            }
                         }
@@ -1433,7 +1433,7 @@
                         }
                         else
                         {
-                            log.connectionFactoryNotBound(mcf.getClass().getName());
+                           log.connectionFactoryNotBound(mcf.getClass().getName());
                         }
                      }
                   }
@@ -1911,7 +1911,7 @@
                                     }
                                     else
                                     {
-                                        log.connectionFactoryNotBound(mcf.getClass().getName());
+                                       log.connectionFactoryNotBound(mcf.getClass().getName());
                                     }
                                  }
                               }

Modified: projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java	2011-10-11 17:06:05 UTC (rev 112304)
+++ projects/jboss-jca/branches/Branch_1_0/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java	2011-10-11 17:14:44 UTC (rev 112305)
@@ -152,9 +152,10 @@
       if (enabled)
       {
          MetadataRepository mdr = ((RAConfiguration) getConfiguration()).getMetadataRepository();
+         ResourceAdapterRepository rar = ((RAConfiguration) getConfiguration()).getResourceAdapterRepository();
 
          Set<String> rarDeployments = mdr.getResourceAdapters();
-         Set<String> configuredRars = getConfiguredResourceAdapters(mdr);
+         Set<String> configuredRars = getConfiguredResourceAdapters(mdr, rar);
 
          for (String deployment : rarDeployments)
          {
@@ -228,9 +229,10 @@
    /**
     * Get the set of configured resource adapters
     * @param mdr The metadata repository
+    * @param rar The resource adapter repository
     * @return The resource adapters
     */
-   private Set<String> getConfiguredResourceAdapters(MetadataRepository mdr)
+   private Set<String> getConfiguredResourceAdapters(MetadataRepository mdr, ResourceAdapterRepository rar)
    {
       Set<String> configured = new HashSet<String>();
 
@@ -244,8 +246,15 @@
       {
          if (deployment.endsWith(".rar"))
          {
-            if (mdr.hasJndiMappings(deployment))
-               configured.add(deployment);
+            try
+            {
+               if (mdr.hasJndiMappings(deployment) || hasResourceAdapter(rar, mdr.getResourceAdapter(deployment)))
+                  configured.add(deployment);
+            }
+            catch (Throwable t)
+            {
+               // Ignore
+            }
          }
          else if (deployment.endsWith("-ra.xml"))
          {
@@ -422,6 +431,41 @@
    }
 
    /**
+    * Has a resource adapter instance deployed
+    * @param rar The resource adapter repository
+    * @param c The connector definition
+    */
+   private boolean hasResourceAdapter(ResourceAdapterRepository rar, Connector c)
+   {
+      if (rar != null && c != null &&
+          c.getResourceadapter() != null && c.getResourceadapter() instanceof ResourceAdapter1516)
+      {
+         ResourceAdapter1516 ra = (ResourceAdapter1516)c.getResourceadapter();
+
+         if (ra.getResourceadapterClass() != null)
+         {
+            String clz = ra.getResourceadapterClass();
+
+            for (String deployment : rar.getResourceAdapters())
+            {
+               try
+               {
+                  javax.resource.spi.ResourceAdapter instance = rar.getResourceAdapter(deployment);
+                  if (clz.equals(instance.getClass().getName()))
+                     return true;
+               }
+               catch (Throwable t)
+               {
+                  // Ignore deployment
+               }
+            }
+         }
+      }
+
+      return false;
+   }
+
+   /**
     * Deploy
     * @param url The url
     * @param parent The parent classloader



More information about the jboss-cvs-commits mailing list