[jboss-cvs] JBossAS SVN: r99351 - projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 13 12:19:56 EST 2010


Author: jesper.pedersen
Date: 2010-01-13 12:19:55 -0500 (Wed, 13 Jan 2010)
New Revision: 99351

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/RADeployment.java
Log:
[JBJCA-258] Bind connection factories into JNDI (Part 2)

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	2010-01-13 17:05:27 UTC (rev 99350)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployer.java	2010-01-13 17:19:55 UTC (rev 99351)
@@ -322,6 +322,8 @@
          List<Object> beanValidationObjects = new ArrayList<Object>();
          List<Object> associationObjects = new ArrayList<Object>();
 
+         List<String> jndiNames = null;
+
          // Create objects and inject values
          if (cmd != null)
          {
@@ -366,8 +368,12 @@
 
                         if (cdMetas.size() == 1)
                         {
+                           if (jndiNames == null)
+                              jndiNames = new ArrayList<String>(1);
+
                            String jndiName = f.getName().substring(0, f.getName().indexOf(".rar"));
                            bindConnectionFactory(jndiName, (Serializable)cf);
+                           jndiNames.add(jndiName);
                         }
                         else
                         {
@@ -540,7 +546,7 @@
 
          log.info("Deployed: " + url.toExternalForm());
 
-         return new RADeployment(url, cl);
+         return new RADeployment(url, jndiNames, cl);
       }
       catch (DeployException de)
       {

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	2010-01-13 17:05:27 UTC (rev 99350)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/fungal/RADeployment.java	2010-01-13 17:19:55 UTC (rev 99351)
@@ -27,8 +27,14 @@
 import java.io.Closeable;
 import java.io.IOException;
 import java.net.URL;
+import java.util.List;
 
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
 import org.jboss.logging.Logger;
+import org.jboss.util.naming.Util;
 
 /**
  * A resource adapter deployment for JCA/SJC
@@ -41,17 +47,22 @@
    /** The resource adapter file */
    private URL adapter;
 
+   /** JNDI names for connection factories */
+   private List<String> jndiNames;
+
    /** The classloader */
    private ClassLoader cl;
 
    /**
     * Constructor
     * @param adapter The adapter
+    * @param jndiNames The JNDI names for connection factories
     * @param cl The classloader for the deployment
     */
-   public RADeployment(URL adapter, ClassLoader cl)
+   public RADeployment(URL adapter, List<String> jndiNames, ClassLoader cl)
    {
       this.adapter = adapter;
+      this.jndiNames = jndiNames;
       this.cl = cl;
    }
 
@@ -80,6 +91,46 @@
    {
       log.debug("Undeploying: " + adapter.toExternalForm());
 
+      if (jndiNames != null)
+      {
+         Context context = null;
+         try
+         {
+            context = new InitialContext();
+
+            for (String jndiName : jndiNames)
+            {
+               try
+               {
+                  Util.unbind(context, jndiName);
+               }
+               catch (Throwable it)
+               {
+                  log.warn("Exception during JNDI unbind for: " + jndiName, it);
+               }
+            }
+         }
+         catch (Throwable t)
+         {
+            log.warn("Exception during JNDI initialization", t);
+         }
+         finally
+         {
+            if (context != null)
+            {
+               try
+               {
+                  context.close();
+               }
+               catch (NamingException ne)
+               {
+                  // Ignore
+               }
+            }
+         }
+      }
+
+
       if (cl != null && cl instanceof Closeable)
       {
          try




More information about the jboss-cvs-commits mailing list