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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 25 13:42:30 EDT 2011


Author: jesper.pedersen
Date: 2011-03-25 13:42:28 -0400 (Fri, 25 Mar 2011)
New Revision: 111037

Modified:
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/management/DataSource.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/DsXmlDeployer.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployment.java
Log:
[JBJCA-534] Remove datasources from management view on undeploy

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/management/DataSource.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/management/DataSource.java	2011-03-25 15:40:08 UTC (rev 111036)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/management/DataSource.java	2011-03-25 17:42:28 UTC (rev 111037)
@@ -33,8 +33,7 @@
  * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a> 
  */
 public class DataSource
-{
-   
+{   
    /** xa datasource or not */
    private boolean xa;
    
@@ -49,19 +48,15 @@
 
    /**
     * Constructor
-    * 
     * @param xa datasource is xa or not
-    * @param jndiName jndi name
     */
-   public DataSource(boolean xa, String jndiName)
+   public DataSource(boolean xa)
    {
       this.xa = xa;
-      this.jndiName = jndiName;
    }
 
    /**
     * xa datasource
-    * 
     * @return true if it xa datasource
     */
    public boolean isXA()
@@ -128,6 +123,15 @@
    }
 
    /**
+    * Set the jndiName.
+    * @param v The value
+    */
+   public void setJndiName(String v)
+   {
+      this.jndiName = v;
+   }
+
+   /**
     * String representation
     * @return The string
     */

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-25 15:40:08 UTC (rev 111036)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractDsDeployer.java	2011-03-25 17:42:28 UTC (rev 111037)
@@ -182,6 +182,8 @@
          List<Object> cfs = new ArrayList<Object>(1);
          List<String> jndis = new ArrayList<String>(1);
          List<XAResourceRecovery> recoveryModules = new ArrayList<XAResourceRecovery>(1);
+         List<org.jboss.jca.core.api.management.DataSource> mgts =
+            new ArrayList<org.jboss.jca.core.api.management.DataSource>(1);
 
          if (uniqueJdbcLocalId != null)
          {
@@ -202,12 +204,16 @@
                         jndiName = "java:/" + jndiName;
                      }
 
-                     Object cf = deployDataSource(dataSource, jndiName, uniqueJdbcLocalId, jdbcLocalDeploymentCl);
+                     org.jboss.jca.core.api.management.DataSource mgtDataSource =
+                        new org.jboss.jca.core.api.management.DataSource(false);
+                     Object cf = deployDataSource(dataSource, jndiName, 
+                                                  uniqueJdbcLocalId, mgtDataSource, jdbcLocalDeploymentCl);
 
                      bindConnectionFactory(deploymentName, jndiName, cf);
 
                      cfs.add(cf);
                      jndis.add(jndiName);
+                     mgts.add(mgtDataSource);
                   }
                   catch (Throwable t)
                   {
@@ -241,10 +247,13 @@
                         jndiName = "java:/" + jndiName;
                      }
 
+                     org.jboss.jca.core.api.management.DataSource mgtDataSource =
+                        new org.jboss.jca.core.api.management.DataSource(true);
                      XAResourceRecovery recovery = null;
                      Object cf = deployXADataSource(xaDataSource,
                                                     jndiName, uniqueJdbcXAId,
                                                     recovery,
+                                                    mgtDataSource,
                                                     jdbcXADeploymentCl);
 
                      recoveryModules.add(recovery);
@@ -253,6 +262,7 @@
 
                      cfs.add(cf);
                      jndis.add(jndiName);
+                     mgts.add(mgtDataSource);
                   }
                   catch (Throwable t)
                   {
@@ -271,8 +281,9 @@
                                      jndis.toArray(new String[jndis.size()]),
                                      null, null,
                                      recoveryModules.toArray(new XAResourceRecovery[recoveryModules.size()]),
-                                     null, parentClassLoader,
-                                     log);
+                                     null, 
+                                     mgts.toArray(new org.jboss.jca.core.api.management.DataSource[mgts.size()]),
+                                     parentClassLoader, log);
       }
       catch (Throwable t)
       {
@@ -285,11 +296,13 @@
     * @param ds The datasource
     * @param jndiName The JNDI name
     * @param uniqueId The unique id for the resource adapter
+    * @param mgtDs The management of a datasource
     * @param cl The class loader
     * @return The connection factory
     * @exception Throwable Thrown if an error occurs during deployment
     */
-   private Object deployDataSource(DataSource ds, String jndiName, String uniqueId, ClassLoader cl) throws Throwable
+   private Object deployDataSource(DataSource ds, String jndiName, String uniqueId,
+                                   org.jboss.jca.core.api.management.DataSource mgtDs, ClassLoader cl) throws Throwable
    {
       log.debug("DataSource=" + ds);
 
@@ -342,11 +355,11 @@
          allocationRetryWaitMillis = ds.getTimeOut().getAllocationRetryWaitMillis();
       }
 
-      //register data sources
-      org.jboss.jca.core.api.management.DataSource mgtDs =
-         new org.jboss.jca.core.api.management.DataSource(false, jndiName);
+      // Register data sources
+      mgtDs.setJndiName(jndiName);
       mgtDs.setPoolConfiguration(pc);
       mgtDs.setPool(pool);
+
       log.debugf("Adding management datasource: %s", mgtDs);
       getManagementRepository().getDataSources().add(mgtDs);
       
@@ -417,12 +430,14 @@
     * @param jndiName The JNDI name
     * @param uniqueId The unique id for the resource adapter
     * @param recovery The recovery module
+    * @param mgtDs The management of a datasource
     * @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,
-                                     XAResourceRecovery recovery, ClassLoader cl)
+                                     XAResourceRecovery recovery, 
+                                     org.jboss.jca.core.api.management.DataSource mgtDs, ClassLoader cl)
       throws Throwable
    {
       log.debug("XaDataSource=" + ds);
@@ -494,11 +509,11 @@
          padXid = ds.getXaPool().isPadXid();
       }
 
-      //register data sources
-      org.jboss.jca.core.api.management.DataSource mgtDs =
-         new org.jboss.jca.core.api.management.DataSource(true, jndiName);
+      // Register data sources
+      mgtDs.setJndiName(jndiName);
       mgtDs.setPoolConfiguration(pc);
       mgtDs.setPool(pool);
+
       log.debugf("Adding management datasource: %s", mgtDs);
       getManagementRepository().getDataSources().add(mgtDs);
       

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-25 15:40:08 UTC (rev 111036)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-03-25 17:42:28 UTC (rev 111037)
@@ -1715,7 +1715,7 @@
                                      cfs, cfJndiNames,
                                      aos, aoJndiNames,
                                      recoveryModules.toArray(new XAResourceRecovery[recoveryModules.size()]),
-                                     mgtConnector, cl, log);
+                                     mgtConnector, null, 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-25 15:40:08 UTC (rev 111036)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/CommonDeployment.java	2011-03-25 17:42:28 UTC (rev 111037)
@@ -22,6 +22,7 @@
 package org.jboss.jca.deployers.common;
 
 import org.jboss.jca.core.api.management.Connector;
+import org.jboss.jca.core.api.management.DataSource;
 import org.jboss.jca.core.spi.transaction.recovery.XAResourceRecovery;
 
 import java.net.URL;
@@ -63,6 +64,8 @@
 
    private final Connector connector;
 
+   private final DataSource[] dataSources;
+
    private final ClassLoader cl;
 
    private final Logger log;
@@ -81,6 +84,7 @@
     * @param aoJndiNames The JNDI names for the admin objects
     * @param recoveryModules The recovery modules
     * @param connector The management view of a connector
+    * @param dataSources The management view of datasources
     * @param cl cl
     * @param log log
     */
@@ -89,7 +93,7 @@
                            Object[] cfs, String[] cfJndiNames, 
                            Object[] aos, String[] aoJndiNames,
                            XAResourceRecovery[] recoveryModules,
-                           Connector connector,
+                           Connector connector, DataSource[] dataSources,
                            ClassLoader cl, Logger log)
    {
       super();
@@ -104,6 +108,7 @@
       this.aoJndiNames = aoJndiNames != null ? Arrays.copyOf(aoJndiNames, aoJndiNames.length) : null;
       this.recoveryModules = recoveryModules;
       this.connector = connector;
+      this.dataSources = dataSources;
       this.cl = cl;
       this.log = log;
    }
@@ -206,7 +211,7 @@
       return recoveryModules;
    }
  
-  /**
+   /**
     * Get the management view of the connector
     * @return The value
     */
@@ -216,6 +221,15 @@
    }
 
    /**
+    * Get the management view of the datasources
+    * @return The value
+    */
+   public final DataSource[] getDataSources()
+   {
+      return dataSources;
+   }
+
+   /**
     * Get the cl.
     *
     * @return the cl.

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-25 15:40:08 UTC (rev 111036)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployer.java	2011-03-25 17:42:28 UTC (rev 111037)
@@ -184,6 +184,7 @@
          return new DsXmlDeployment(c.getURL(), c.getDeploymentName(),
                                     c.getCfs(), c.getCfJndiNames(),
                                     c.getRecovery(), getXAResourceRecoveryRegistry(),
+                                    c.getDataSources(), getManagementRepository(),
                                     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-25 15:40:08 UTC (rev 111036)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/DsXmlDeployment.java	2011-03-25 17:42:28 UTC (rev 111037)
@@ -22,6 +22,8 @@
 
 package org.jboss.jca.deployers.fungal;
 
+import org.jboss.jca.core.api.management.DataSource;
+import org.jboss.jca.core.api.management.ManagementRepository;
 import org.jboss.jca.core.naming.ExplicitJndiStrategy;
 import org.jboss.jca.core.spi.naming.JndiStrategy;
 import org.jboss.jca.core.spi.transaction.recovery.XAResourceRecovery;
@@ -62,6 +64,12 @@
    /** XAResource recovery registry */
    private XAResourceRecoveryRegistry recoveryRegistry;
 
+   /** The data source management view */
+   private DataSource[] dataSources;
+
+   /** The management repository */
+   private ManagementRepository managementRepository;
+
    /** The classloader */
    private ClassLoader cl;
 
@@ -73,12 +81,15 @@
     * @param jndis The JNDI names for the factories
     * @param recoveryModules The recovery modules
     * @param recoveryRegistry The recovery registry
+    * @param dataSources The management view of the datasources
+    * @param managementRepository The management repository
     * @param cl The classloader
     */
    public DsXmlDeployment(URL deployment, 
                           String deploymentName,
                           Object[] cfs, String[] jndis,
                           XAResourceRecovery[] recoveryModules, XAResourceRecoveryRegistry recoveryRegistry,
+                          DataSource[] dataSources, ManagementRepository managementRepository,
                           ClassLoader cl)
    {
       this.deployment = deployment;
@@ -87,6 +98,8 @@
       this.jndis = jndis;
       this.recoveryModules = recoveryModules;
       this.recoveryRegistry = recoveryRegistry;
+      this.dataSources = dataSources;
+      this.managementRepository = managementRepository;
       this.cl = cl;
    }
 
@@ -117,6 +130,14 @@
    {
       log.debug("Undeploying: " + deployment.toExternalForm());
 
+      if (dataSources != null && managementRepository != null)
+      {
+         for (DataSource mgtDs : dataSources)
+         {
+            managementRepository.getDataSources().remove(mgtDs);
+         }
+      }
+
       if (recoveryModules != null && recoveryRegistry != null)
       {
          for (XAResourceRecovery recovery : recoveryModules)



More information about the jboss-cvs-commits mailing list