[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