[jboss-cvs] JBossAS SVN: r110918 - in projects/jboss-jca/trunk: deployers/src/main/java/org/jboss/jca/deployers/common and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Mar 15 10:27:40 EDT 2011


Author: jesper.pedersen
Date: 2011-03-15 10:27:39 -0400 (Tue, 15 Mar 2011)
New Revision: 110918

Modified:
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/recovery/XAResourceRecoveryImpl.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractDsDeployer.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/CommonDeployment.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/AbstractFungalDeployment.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployer.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployment.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/RAActivatorDeployment.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/RADeployment.java
   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/RaXmlDeployment.java
   projects/jboss-jca/trunk/tools/checkstyle/checkstyle.xml
Log:
[JBJCA-509] Deregister XA recovery during undeployment

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/recovery/XAResourceRecoveryImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/recovery/XAResourceRecoveryImpl.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/recovery/XAResourceRecoveryImpl.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -43,7 +43,6 @@
 import org.jboss.security.SimplePrincipal;
 import org.jboss.security.SubjectFactory;
 import org.jboss.tm.XAResourceRecovery;
-import org.jboss.tm.XAResourceRecoveryRegistry;
 
 /**
  * An XAResourceRecovery implementation.
@@ -327,32 +326,6 @@
    }
 
    /**
-    * Register instance for recovery
-    *
-    * @param registry The recovery registry
-    */
-   public void registerXaRecovery(XAResourceRecoveryRegistry registry)
-   {
-      if (registry == null)
-         throw new IllegalArgumentException("Registry is null");
-
-      registry.addXAResourceRecovery(this);
-   }
-
-   /**
-    * Deregister instance for recovery
-    *
-    * @param registry The recovery registry
-    */
-   public void deregisterXaRecovery(XAResourceRecoveryRegistry registry)
-   {
-      if (registry == null)
-         throw new IllegalArgumentException("Registry is null");
-
-      registry.removeXAResourceRecovery(this);
-   }
-
-   /**
     * Open a managed connection
     * @param s The subject
     * @return The managed connection

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractDsDeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractDsDeployer.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractDsDeployer.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -61,6 +61,7 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.security.SubjectFactory;
+import org.jboss.tm.XAResourceRecovery;
 import org.jboss.tm.XAResourceRecoveryRegistry;
 
 /**
@@ -156,6 +157,7 @@
       {
          List<Object> cfs = new ArrayList<Object>(1);
          List<String> jndis = new ArrayList<String>(1);
+         List<XAResourceRecovery> recoveryModules = new ArrayList<XAResourceRecovery>(1);
 
          if (uniqueJdbcLocalId != null)
          {
@@ -215,8 +217,14 @@
                         jndiName = "java:/" + jndiName;
                      }
 
-                     Object cf = deployXADataSource(xaDataSource, jndiName, uniqueJdbcXAId, jdbcXADeploymentCl);
+                     XAResourceRecovery recovery = null;
+                     Object cf = deployXADataSource(xaDataSource, 
+                                                    jndiName, uniqueJdbcXAId, 
+                                                    recovery,
+                                                    jdbcXADeploymentCl);
 
+                     recoveryModules.add(recovery);
+
                      bindConnectionFactory(deploymentName, jndiName, cf);
 
                      cfs.add(cf);
@@ -236,7 +244,10 @@
          }
 
          return new CommonDeployment(url, deploymentName, true, null, null, cfs.toArray(new Object[cfs.size()]),
-                                     jndis.toArray(new String[jndis.size()]), null, null, null, parentClassLoader,
+                                     jndis.toArray(new String[jndis.size()]), 
+                                     null, null, 
+                                     recoveryModules.toArray(new XAResourceRecovery[recoveryModules.size()]),
+                                     null, parentClassLoader,
                                      log);
       }
       catch (Throwable t)
@@ -370,11 +381,13 @@
     * @param ds The datasource
     * @param jndiName The JNDI name
     * @param uniqueId The unique id for the resource adapter
+    * @param recovery The recovery module
     * @param cl The class loader
     * @return The connection factory
     * @exception Throwable Thrown if an error occurs during deployment
     */
-   private Object deployXADataSource(XaDataSource ds, String jndiName, String uniqueId, ClassLoader cl)
+   private Object deployXADataSource(XaDataSource ds, String jndiName, String uniqueId,
+                                     XAResourceRecovery recovery, ClassLoader cl)
       throws Throwable
    {
       log.debug("XaDataSource=" + ds);
@@ -513,10 +526,13 @@
          defaultUserName = ds.getSecurity().getUserName();
          defaultPassword = ds.getSecurity().getPassword();
       }
+
       String recoverSecurityDomain = defaultSecurityDomain;
       String recoverUser = defaultUserName;
       String recoverPassword = defaultPassword;
-      XAResourceRecoveryImpl resourceRecovery = null;
+
+      XAResourceRecoveryImpl recoveryImpl = null;
+
       if (recoveryMD == null || !recoveryMD.getNoRecovery())
       {
          // If we have an XAResourceRecoveryRegistry and the deployment is XA
@@ -543,8 +559,8 @@
             {
                log.debug("RecoverSecurityDomain=" + recoverSecurityDomain);
             }
+         }
 
-         }
          RecoveryPlugin plugin = null;
 
          if (recoveryMD != null && recoveryMD.getRecoverPlugin() != null)
@@ -574,22 +590,24 @@
             plugin = new DefaultRecoveryPlugin();
          }
 
-         resourceRecovery = new XAResourceRecoveryImpl(mcf,
-                                                       padXid,
-                                                       isSameRMOverride,
-                                                       wrapXAResource,
-                                                       recoverUser,
-                                                       recoverPassword,
-                                                       recoverSecurityDomain,
-                                                       getSubjectFactory(recoverSecurityDomain),
-                                                       plugin);
+         recoveryImpl = new XAResourceRecoveryImpl(mcf,
+                                                   padXid,
+                                                   isSameRMOverride,
+                                                   wrapXAResource,
+                                                   recoverUser,
+                                                   recoverPassword,
+                                                   recoverSecurityDomain,
+                                                   getSubjectFactory(recoverSecurityDomain),
+                                                   plugin);
 
       }
 
-      if (getXAResourceRecoveryRegistry() != null && resourceRecovery != null)
+      if (getXAResourceRecoveryRegistry() != null && recoveryImpl != null)
       {
-         resourceRecovery.setJndiName(cm.getJndiName());
-         resourceRecovery.registerXaRecovery(getXAResourceRecoveryRegistry());
+         recoveryImpl.setJndiName(cm.getJndiName());
+         getXAResourceRecoveryRegistry().addXAResourceRecovery(recoveryImpl);
+         
+         recovery = recoveryImpl;
       }
 
       // ConnectionFactory

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -92,6 +92,7 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.security.SubjectFactory;
+import org.jboss.tm.XAResourceRecovery;
 import org.jboss.tm.XAResourceRecoveryRegistry;
 
 /**
@@ -803,6 +804,7 @@
          String[] cfJndiNames = null;
          Object[] aos = null;
          String[] aoJndiNames = null;
+         List<XAResourceRecovery> recoveryModules = new ArrayList<XAResourceRecovery>(1);
 
          // Check metadata for JNDI information and activate explicit
          boolean activateDeployment = checkActivation(cmd, ijmd);
@@ -1343,6 +1345,9 @@
                                  if (mcf instanceof TransactionSupport)
                                     tsl = ((TransactionSupport) mcf).getTransactionSupport();
 
+                                 // XAResource recovery
+                                 XAResourceRecoveryImpl recoveryImpl = null;
+
                                  // Connection manager properties
                                  Integer allocationRetry = null;
                                  Long allocationRetryWaitMillis = null;
@@ -1360,7 +1365,7 @@
                                     if (allocationRetryWaitMillis == null)
                                        allocationRetryWaitMillis = ijCD.getTimeOut().getAllocationRetryWaitMillis();
                                  }
-                                 XAResourceRecoveryImpl resourceRecovery = null;
+
                                  // Select the correct connection manager
                                  if (tsl == TransactionSupportLevel.NoTransaction)
                                  {
@@ -1403,6 +1408,7 @@
 
                                        if (padXid == null)
                                           padXid = ijXaPool.isPadXid();
+
                                        if (recoveryMD == null)
                                           recoveryMD = ijXaPool.getRecovery();
                                     }
@@ -1413,86 +1419,91 @@
                                                                  getTransactionManager(), interleaving,
                                                                  xaResourceTimeout, isSameRMOverride,
                                                                  wrapXAResource, padXid);
-                                    String recoverSecurityDomain = securityDomain;
-                                    String recoverUser = null;
-                                    String recoverPassword = null;
-                                    if (recoveryMD == null || !recoveryMD.getNoRecovery())
+                                    if (tsl == TransactionSupportLevel.XATransaction)
                                     {
-                                       // If we have an XAResourceRecoveryRegistry and the deployment is XA
-                                       // lets register it for XA Resource Recovery using the "recover" definitions
-                                       // from the -ds.xml file. Fallback to the standard definitions for
-                                       // user name, password. Keep a seperate reference to the security-domain
-
-                                       Credential credential = recoveryMD != null ? recoveryMD.getCredential() : null;
-                                       if (credential != null)
+                                       String recoverSecurityDomain = securityDomain;
+                                       String recoverUser = null;
+                                       String recoverPassword = null;
+                                       if (recoveryMD == null || !recoveryMD.getNoRecovery())
                                        {
-                                          recoverSecurityDomain = credential.getSecurityDomain();
+                                          // If we have an XAResourceRecoveryRegistry and the deployment is XA
+                                          // lets register it for XA Resource Recovery using the "recover" definitions
+                                          // from the -ds.xml file. Fallback to the standard definitions for
+                                          // user name, password. Keep a seperate reference to the security-domain
 
-                                          recoverUser = credential.getUserName();
-                                          recoverPassword = credential.getPassword();
-                                       }
+                                          Credential credential = 
+                                             recoveryMD != null ? recoveryMD.getCredential() : null;
 
-                                       if (log.isDebugEnabled())
-                                       {
-                                          if (recoverUser != null)
+                                          if (credential != null)
                                           {
-                                             log.debug("RecoverUser=" + recoverUser);
+                                             recoverSecurityDomain = credential.getSecurityDomain();
+
+                                             recoverUser = credential.getUserName();
+                                             recoverPassword = credential.getPassword();
                                           }
-                                          else if (recoverSecurityDomain != null)
+
+                                          if (log.isDebugEnabled())
                                           {
-                                             log.debug("RecoverSecurityDomain=" + recoverSecurityDomain);
+                                             if (recoverUser != null)
+                                             {
+                                                log.debug("RecoverUser=" + recoverUser);
+                                             }
+                                             else if (recoverSecurityDomain != null)
+                                             {
+                                                log.debug("RecoverSecurityDomain=" + recoverSecurityDomain);
+                                             }
                                           }
 
-                                       }
-
-                                       RecoveryPlugin plugin = null;
-                                       if (recoveryMD != null && recoveryMD.getRecoverPlugin() != null)
-                                       {
-                                          List<ConfigProperty> configProperties = null;
-                                          if (recoveryMD
-                                             .getRecoverPlugin()
-                                             .getConfigPropertiesMap() != null)
+                                          RecoveryPlugin plugin = null;
+                                          if (recoveryMD != null && recoveryMD.getRecoverPlugin() != null)
                                           {
-                                             configProperties = new ArrayList<ConfigProperty>(recoveryMD
-                                                .getRecoverPlugin()
-                                                .getConfigPropertiesMap().size());
-                                             for (Entry<String, String> property : recoveryMD.getRecoverPlugin()
-                                                .getConfigPropertiesMap().entrySet())
+                                             List<ConfigProperty> configProperties = null;
+                                             if (recoveryMD
+                                                 .getRecoverPlugin()
+                                                 .getConfigPropertiesMap() != null)
                                              {
-                                                ConfigProperty c = new ConfigPropertyImpl(
-                                                                                          null,
-                                                                                          new XsdString(property
-                                                                                             .getKey(),
-                                                                                                        null),
-                                                                                          new XsdString("String",
-                                                                                                        null),
-                                                                                          new XsdString(
-                                                                                                        property
+                                                configProperties =
+                                                   new ArrayList<ConfigProperty>(recoveryMD
+                                                                                 .getRecoverPlugin()
+                                                                                 .getConfigPropertiesMap().size());
+
+                                                for (Entry<String, String> property : recoveryMD.getRecoverPlugin()
+                                                        .getConfigPropertiesMap().entrySet())
+                                                {
+                                                   ConfigProperty c = new ConfigPropertyImpl(null,
+                                                                                             new XsdString(property
+                                                                                                           .getKey(),
+                                                                                                           null),
+                                                                                             new XsdString("String",
+                                                                                                           null),
+                                                                                             new XsdString(property
                                                                                                            .getValue(),
-                                                                                                        null), null);
-                                                configProperties.add(c);
+                                                                                                           null), null);
+                                                   configProperties.add(c);
+                                                }
+
+                                                plugin =
+                                                   (RecoveryPlugin)initAndInject(recoveryMD
+                                                                                 .getRecoverPlugin().getClassName(),
+                                                                                 configProperties, cl);
                                              }
+                                          }
+                                          else
+                                          {
+                                             plugin = new DefaultRecoveryPlugin();
+                                          }
 
-                                             plugin = (RecoveryPlugin) initAndInject(recoveryMD
-                                                .getRecoverPlugin().getClassName(), configProperties, cl);
-                                          }
+                                          recoveryImpl = new XAResourceRecoveryImpl(mcf,
+                                                                                    padXid,
+                                                                                    isSameRMOverride,
+                                                                                    wrapXAResource,
+                                                                                    recoverUser,
+                                                                                    recoverPassword,
+                                                                                    recoverSecurityDomain,
+                                                                                    getSubjectFactory(
+                                                                                       recoverSecurityDomain),
+                                                                                    plugin);
                                        }
-                                       else
-                                       {
-                                          plugin = new DefaultRecoveryPlugin();
-                                       }
-
-                                       resourceRecovery = new XAResourceRecoveryImpl(mcf,
-                                                                                     padXid,
-                                                                                     isSameRMOverride,
-                                                                                     wrapXAResource,
-                                                                                     recoverUser,
-                                                                                     recoverPassword,
-                                                                                     recoverSecurityDomain,
-                                                                                     getSubjectFactory(
-                                                                                        recoverSecurityDomain),
-                                                                                     plugin);
-
                                     }
                                  }
 
@@ -1587,10 +1598,12 @@
                                        pool.setName(poolName);
                                     }
 
-                                    if (getXAResourceRecoveryRegistry() != null && resourceRecovery != null)
+                                    if (getXAResourceRecoveryRegistry() != null && recoveryImpl != null)
                                     {
-                                       resourceRecovery.setJndiName(cm.getJndiName());
-                                       resourceRecovery.registerXaRecovery(getXAResourceRecoveryRegistry());
+                                       recoveryImpl.setJndiName(cm.getJndiName());
+                                       getXAResourceRecoveryRegistry().addXAResourceRecovery(recoveryImpl);
+
+                                       recoveryModules.add(recoveryImpl);
                                     }
 
                                     if (activateDeployment)
@@ -1710,7 +1723,9 @@
          return new CommonDeployment(url, deploymentName, activateDeployment,
                                      resourceAdapter, resourceAdapterKey,
                                      cfs, cfJndiNames,
-                                     aos, aoJndiNames, mgtConnector, cl, log);
+                                     aos, aoJndiNames, 
+                                     recoveryModules.toArray(new XAResourceRecovery[recoveryModules.size()]),
+                                     mgtConnector, cl, log);
 
       }
       catch (DeployException de)

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/CommonDeployment.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/CommonDeployment.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/CommonDeployment.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -29,6 +29,7 @@
 import javax.resource.spi.ResourceAdapter;
 
 import org.jboss.logging.Logger;
+import org.jboss.tm.XAResourceRecovery;
 
 /**
  *
@@ -58,6 +59,8 @@
 
    private final String[] aoJndiNames;
 
+   private final XAResourceRecovery[] recoveryModules;
+
    private final Connector connector;
 
    private final ClassLoader cl;
@@ -76,6 +79,7 @@
     * @param cfJndiNames The JNDI names for the connection factories
     * @param aos The admin objects
     * @param aoJndiNames The JNDI names for the admin objects
+    * @param recoveryModules The recovery modules
     * @param connector The management view of a connector
     * @param cl cl
     * @param log log
@@ -84,6 +88,7 @@
                            ResourceAdapter resourceAdapter, String resourceAdapterKey,
                            Object[] cfs, String[] cfJndiNames, 
                            Object[] aos, String[] aoJndiNames,
+                           XAResourceRecovery[] recoveryModules,
                            Connector connector,
                            ClassLoader cl, Logger log)
    {
@@ -97,6 +102,7 @@
       this.cfJndiNames = cfJndiNames != null ? Arrays.copyOf(cfJndiNames, cfJndiNames.length) : null;
       this.aos = aos != null ? Arrays.copyOf(aos, aos.length) : null;
       this.aoJndiNames = aoJndiNames != null ? Arrays.copyOf(aoJndiNames, aoJndiNames.length) : null;
+      this.recoveryModules = recoveryModules;
       this.connector = connector;
       this.cl = cl;
       this.log = log;
@@ -192,6 +198,15 @@
    }
 
    /**
+    * Get the recovery modules.
+    * @return The value
+    */
+   public final XAResourceRecovery[] getRecovery()
+   {
+      return recoveryModules;
+   }
+ 
+  /**
     * Get the management view of the connector
     * @return The value
     */

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/AbstractFungalDeployment.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/AbstractFungalDeployment.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/AbstractFungalDeployment.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -38,6 +38,8 @@
 import javax.resource.spi.ResourceAdapter;
 
 import org.jboss.logging.Logger;
+import org.jboss.tm.XAResourceRecovery;
+import org.jboss.tm.XAResourceRecoveryRegistry;
 
 import com.github.fungal.spi.deployers.Deployment;
 
@@ -86,6 +88,12 @@
    /** The JNDI names of the admin objects */
    protected String[] aoJndis;
 
+   /** The recovery modules */
+   protected XAResourceRecovery[] recoveryModules;
+
+   /** The recovery registry */
+   protected XAResourceRecoveryRegistry recoveryRegistry;
+
    /** The management repository */
    protected ManagementRepository managementRepository;
 
@@ -115,6 +123,8 @@
     * @param cfJndis The JNDI names of the connection factories
     * @param aos The admin objects
     * @param aoJndis The JNDI names of the admin objects
+    * @param recoveryModules The recovery modules
+    * @param recoveryRegistry The recovery registry
     * @param managementRepository The management repository
     * @param connector The management connector instance
     * @param server The MBeanServer
@@ -128,6 +138,7 @@
                                    ResourceAdapterRepository resourceAdapterRepository,
                                    Object[] cfs, String[] cfJndis,
                                    Object[] aos, String[] aoJndis,
+                                   XAResourceRecovery[] recoveryModules, XAResourceRecoveryRegistry recoveryRegistry,
                                    ManagementRepository managementRepository, Connector connector,
                                    MBeanServer server, List<ObjectName> objectNames,
                                    ClassLoader cl, Logger log)
@@ -144,6 +155,8 @@
       this.cfJndis = cfJndis;
       this.aos = aos;
       this.aoJndis = aoJndis;
+      this.recoveryModules = recoveryModules;
+      this.recoveryRegistry = recoveryRegistry;
       this.managementRepository = managementRepository;
       this.connector = connector;
       this.server = server;
@@ -196,6 +209,14 @@
             }
          }
 
+         if (recoveryRegistry != null && recoveryModules != null)
+         {
+            for (XAResourceRecovery recovery : recoveryModules)
+            {
+               recoveryRegistry.removeXAResourceRecovery(recovery);
+            }
+         }
+
          if (managementRepository != null && connector != null)
             managementRepository.getConnectors().remove(connector);
 

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployer.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployer.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -181,7 +181,10 @@
                                                           uniqueJdbcLocalId, uniqueJdbcXAId,
                                                           dataSources, parent);
 
-         return new DsXmlDeployment(c.getURL(), c.getDeploymentName(), c.getCfs(), c.getCfJndiNames(), c.getCl());
+         return new DsXmlDeployment(c.getURL(), c.getDeploymentName(), 
+                                    c.getCfs(), c.getCfJndiNames(),
+                                    c.getRecovery(), getXAResourceRecoveryRegistry(),
+                                    c.getCl());
       }
       catch (DeployException de)
       {

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployment.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployment.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployment.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -30,6 +30,8 @@
 import java.net.URL;
 
 import org.jboss.logging.Logger;
+import org.jboss.tm.XAResourceRecovery;
+import org.jboss.tm.XAResourceRecoveryRegistry;
 
 import com.github.fungal.spi.deployers.Deployment;
 
@@ -54,6 +56,12 @@
    /** The JNDI names */
    private String[] jndis;
 
+   /** XAResource recovery modules */
+   private XAResourceRecovery[] recoveryModules;
+
+   /** XAResource recovery registry */
+   private XAResourceRecoveryRegistry recoveryRegistry;
+
    /** The classloader */
    private ClassLoader cl;
 
@@ -63,14 +71,22 @@
     * @param deploymentName The unique deployment name
     * @param cfs The connection factories
     * @param jndis The JNDI names for the factories
+    * @param recoveryModules The recovery modules
+    * @param recoveryRegistry The recovery registry
     * @param cl The classloader
     */
-   public DsXmlDeployment(URL deployment, String deploymentName, Object[] cfs, String[] jndis, ClassLoader cl)
+   public DsXmlDeployment(URL deployment, 
+                          String deploymentName,
+                          Object[] cfs, String[] jndis,
+                          XAResourceRecovery[] recoveryModules, XAResourceRecoveryRegistry recoveryRegistry,
+                          ClassLoader cl)
    {
       this.deployment = deployment;
       this.deploymentName = deploymentName;
       this.cfs = cfs;
       this.jndis = jndis;
+      this.recoveryModules = recoveryModules;
+      this.recoveryRegistry = recoveryRegistry;
       this.cl = cl;
    }
 
@@ -101,6 +117,14 @@
    {
       log.debug("Undeploying: " + deployment.toExternalForm());
 
+      if (recoveryModules != null && recoveryRegistry != null)
+      {
+         for (XAResourceRecovery recovery : recoveryModules)
+         {
+            recoveryRegistry.removeXAResourceRecovery(recovery);
+         }
+      }
+
       if (cfs != null)
       {
          JndiStrategy jndiStrategy = new ExplicitJndiStrategy();

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	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivator.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -275,6 +275,7 @@
                                           jndiStrategy, metadataRepository, resourceAdapterRepository,
                                           c.getCfs(), c.getCfJndiNames(), 
                                           c.getAos(), c.getAoJndiNames(),
+                                          c.getRecovery(), getXAResourceRecoveryRegistry(),
                                           ((RAConfiguration)getConfiguration()).getManagementRepository(), 
                                           c.getConnector(),
                                           kernel.getMBeanServer(), ons,

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivatorDeployment.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivatorDeployment.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RAActivatorDeployment.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -36,6 +36,8 @@
 import javax.resource.spi.ResourceAdapter;
 
 import org.jboss.logging.Logger;
+import org.jboss.tm.XAResourceRecovery;
+import org.jboss.tm.XAResourceRecoveryRegistry;
 
 /**
  * A resource adapter activator deployment for JCA/SJC
@@ -56,6 +58,8 @@
     * @param cfJndis The JNDI names for the connection factories
     * @param aos The admin objects
     * @param aoJndis The JNDI names for the admin objects
+    * @param recoveryModules The recovery modules
+    * @param recoveryRegistry The recovery registry
     * @param managementRepository The management repository
     * @param connector The management connector instance
     * @param server The MBeanServer
@@ -68,11 +72,13 @@
                                 MetadataRepository mdr, ResourceAdapterRepository resourceAdapterRepository,
                                 Object[] cfs, String[] cfJndis, 
                                 Object[] aos, String[] aoJndis, 
+                                XAResourceRecovery[] recoveryModules, XAResourceRecoveryRegistry recoveryRegistry,
                                 ManagementRepository managementRepository, Connector connector,
                                 MBeanServer server, List<ObjectName> objectNames,
                                 ClassLoader cl, Logger log)
    {
       super(deployment, deploymentName, true, ra, raKey, jndiStrategy, mdr, resourceAdapterRepository,
-            cfs, cfJndis, aos, aoJndis, managementRepository, connector, server, objectNames, cl, log);
+            cfs, cfJndis, aos, aoJndis, recoveryModules, recoveryRegistry, managementRepository,
+            connector, server, objectNames, cl, log);
    }
 }

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-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -172,7 +172,9 @@
                                  c.getResourceAdapterKey(),
                                  jndiStrategy, metadataRepository, resourceAdapterRepository,
                                  c.getCfs(), c.getCfJndiNames(), 
-                                 c.getAos(), c.getAoJndiNames(), destination, 
+                                 c.getAos(), c.getAoJndiNames(), 
+                                 c.getRecovery(), getXAResourceRecoveryRegistry(),
+                                 destination, 
                                  ((RAConfiguration)getConfiguration()).getManagementRepository(), c.getConnector(),
                                  kernel.getMBeanServer(), ons,
                                  c.getCl(), c.getLog());

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployment.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployment.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployment.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -38,6 +38,8 @@
 import javax.resource.spi.ResourceAdapter;
 
 import org.jboss.logging.Logger;
+import org.jboss.tm.XAResourceRecovery;
+import org.jboss.tm.XAResourceRecoveryRegistry;
 
 import com.github.fungal.api.util.FileUtil;
 
@@ -64,6 +66,8 @@
     * @param cfJndis The JNDI names of the connection factories
     * @param aos The admin objects
     * @param aoJndis The JNDI names of the admin objects
+    * @param recoveryModules The recovery modules
+    * @param recoveryRegistry The recovery registry
     * @param tmpDirectory The temporary directory
     * @param managementRepository The management repository
     * @param connector The management connector instance
@@ -78,13 +82,15 @@
                        ResourceAdapterRepository resourceAdapterRepository,
                        Object[] cfs, String[] cfJndis,
                        Object[] aos, String[] aoJndis,
+                       XAResourceRecovery[] recoveryModules, XAResourceRecoveryRegistry recoveryRegistry,
                        File tmpDirectory,
                        ManagementRepository managementRepository, Connector connector,
                        MBeanServer server, List<ObjectName> objectNames,
                        ClassLoader cl, Logger log)
    {
       super(deployment, deploymentName, activator, ra, raKey, jndiStrategy, mdr, resourceAdapterRepository,
-            cfs, cfJndis, aos, aoJndis, managementRepository, connector, server, objectNames, cl, log);
+            cfs, cfJndis, aos, aoJndis, recoveryModules, recoveryRegistry, managementRepository,
+            connector, server, objectNames, cl, log);
 
       this.tmpDirectory = tmpDirectory;
    }

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	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployer.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -287,6 +287,7 @@
                                     jndiStrategy, metadataRepository, resourceAdapterRepository,
                                     c.getCfs(), c.getCfJndiNames(),
                                     c.getAos(), c.getAoJndiNames(), 
+                                    c.getRecovery(), getXAResourceRecoveryRegistry(),
                                     ((RAConfiguration)getConfiguration()).getManagementRepository(), c.getConnector(),
                                     kernel.getMBeanServer(), ons, 
                                     c.getCl(), c.getLog());

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployment.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployment.java	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RaXmlDeployment.java	2011-03-15 14:27:39 UTC (rev 110918)
@@ -37,6 +37,8 @@
 import javax.resource.spi.ResourceAdapter;
 
 import org.jboss.logging.Logger;
+import org.jboss.tm.XAResourceRecovery;
+import org.jboss.tm.XAResourceRecoveryRegistry;
 
 /**
  * A -ra.xml deployment for JCA/SJC
@@ -61,6 +63,8 @@
     * @param cfJndis The JNDI names of the connection factories
     * @param aos The admin objects
     * @param aoJndis The JNDI names of the admin objects
+    * @param recoveryModules The recovery modules
+    * @param recoveryRegistry The recovery registry
     * @param managementRepository The management repository
     * @param connector The management connector instance
     * @param server The MBeanServer
@@ -74,12 +78,14 @@
                           ResourceAdapterRepository resourceAdapterRepository,
                           Object[] cfs, String[] cfJndis, 
                           Object[] aos, String[] aoJndis, 
+                          XAResourceRecovery[] recoveryModules, XAResourceRecoveryRegistry recoveryRegistry,
                           ManagementRepository managementRepository, Connector connector,
                           MBeanServer server, List<ObjectName> objectNames,
                           ClassLoader cl, Logger log)
    {
       super(deployment, deploymentName, true, ra, raKey, jndiStrategy, mdr, resourceAdapterRepository,
-            cfs, cfJndis, aos, aoJndis, managementRepository, connector, server, objectNames, cl, log);
+            cfs, cfJndis, aos, aoJndis, recoveryModules, recoveryRegistry, managementRepository, 
+            connector, server, objectNames, cl, log);
 
       this.raDeployment = raDeployment;
    }

Modified: projects/jboss-jca/trunk/tools/checkstyle/checkstyle.xml
===================================================================
--- projects/jboss-jca/trunk/tools/checkstyle/checkstyle.xml	2011-03-15 12:30:13 UTC (rev 110917)
+++ projects/jboss-jca/trunk/tools/checkstyle/checkstyle.xml	2011-03-15 14:27:39 UTC (rev 110918)
@@ -131,7 +131,7 @@
       <property name="max" value="150"/>
     </module>
     <module name="ParameterNumber">
-      <property name="max" value="20"/>
+      <property name="max" value="30"/>
     </module>
 
     <!-- Indentation -->



More information about the jboss-cvs-commits mailing list