[jboss-cvs] JBossAS SVN: r99986 - in branches/jaxrpc-cxf/webservices/src: resources/jbossws-jboss.deployer/META-INF and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 27 06:05:46 EST 2010


Author: alessio.soldano at jboss.com
Date: 2010-01-27 06:05:46 -0500 (Wed, 27 Jan 2010)
New Revision: 99986

Modified:
   branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java
   branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java
   branches/jaxrpc-cxf/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
Log:
[JBWS-2899] Moving WSAspectizedDeployersFactory back to stack-agnostic config file and leveraging the classloader from the deployment aspects


Modified: branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java
===================================================================
--- branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java	2010-01-27 10:49:00 UTC (rev 99985)
+++ branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java	2010-01-27 11:05:46 UTC (rev 99986)
@@ -21,7 +21,6 @@
  */
 package org.jboss.webservices.integration.deployers;
 
-import java.lang.ref.WeakReference;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -47,10 +46,6 @@
    /** Our deployers regitry. */
    private final Map<DeploymentAspect, Deployer> deployersRegistry = new HashMap<DeploymentAspect, Deployer>();
    
-   private boolean excludeJaxWs = false;
-   private boolean includeJaxRpc = true;
-   private WeakReference<ClassLoader> loader;
-   
    /**
     * Constructor.
     * 
@@ -59,8 +54,6 @@
    public WSAspectizedDeployersFactory(final DeployersImpl realDeployers)
    {
       this.delegee = realDeployers;
-      //TODO!!! Use security action class
-      this.loader = new WeakReference<ClassLoader>(Thread.currentThread().getContextClassLoader());
    }
 
    /**
@@ -70,18 +63,6 @@
     */
    public void addDeployer(final DeploymentAspect aspect)
    {
-      //TODO!!! use a security action class
-      ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
-      ClassLoader aspectLoader = aspect.getClass().getClassLoader();
-      ClassLoader thisClassClassLoader = this.getClass().getClassLoader();
-      ClassLoader aspectLoader2 = aspect.getLoader();
-      ClassLoader thisInstanceLoader = this.loader.get();
-      if (!thisInstanceLoader.equals(aspectLoader2))
-      {
-//         System.out.println("*********** SKIPPING ADD aspect: " + aspect + " ctxloader: "+ctxLoader);
-         return;
-      }
-      
       WSAspectizedDeployersFactory.LOGGER.debug("Adding deployer for: " + aspect);
       final Deployer wsAspectizedDeployer = new WSDeploymentAspectDeployer(aspect);
 
@@ -96,18 +77,6 @@
     */
    public void removeDeployer(final DeploymentAspect aspect)
    {
-      //TODO!!! use a security action class
-      ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
-      ClassLoader aspectLoader = aspect.getClass().getClassLoader();
-      ClassLoader thisClassClassLoader = this.getClass().getClassLoader();
-      ClassLoader aspectLoader2 = aspect.getLoader();
-      ClassLoader thisInstanceLoader = this.loader.get();
-      if (!thisInstanceLoader.equals(aspectLoader2))
-      {
-//         System.out.println("*********** SKIPPING REMOVE aspect: " + aspect + " ctxloader: "+ctxLoader);
-         return;
-      }
-      
       WSAspectizedDeployersFactory.LOGGER.debug("Removing deployer for: " + aspect);
       final Deployer wsAspectizedDeployer = this.deployersRegistry.get(aspect);
 
@@ -115,23 +84,4 @@
       this.delegee.removeDeployer(wsAspectizedDeployer);
    }
 
-   public boolean isExcludeJaxWs()
-   {
-      return excludeJaxWs;
-   }
-
-   public void setExcludeJaxWs(boolean excludeJaxWs)
-   {
-      this.excludeJaxWs = excludeJaxWs;
-   }
-
-   public boolean isIncludeJaxRpc()
-   {
-      return includeJaxRpc;
-   }
-
-   public void setIncludeJaxRpc(boolean includeJaxRpc)
-   {
-      this.includeJaxRpc = includeJaxRpc;
-   }
 }

Modified: branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java
===================================================================
--- branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java	2010-01-27 10:49:00 UTC (rev 99985)
+++ branches/jaxrpc-cxf/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentAspectDeployer.java	2010-01-27 11:05:46 UTC (rev 99986)
@@ -106,7 +106,18 @@
          final Deployment dep = ASHelper.getRequiredAttachment(unit, Deployment.class);
          if (this.aspect.canHandle(dep))
          {
-        	 this.aspect.start(dep);
+            //TODO!! Use security action class
+            //set the context classloader using the proper one from the deployment aspect
+            ClassLoader deployerClassLoader = Thread.currentThread().getContextClassLoader();
+            try
+            {
+               Thread.currentThread().setContextClassLoader(this.aspect.getLoader());
+               this.aspect.start(dep);
+            }
+            finally
+            {
+               Thread.currentThread().setContextClassLoader(deployerClassLoader);
+            }
          }
       }
    }
@@ -126,7 +137,18 @@
          final Deployment dep = ASHelper.getRequiredAttachment(unit, Deployment.class);
          if (this.aspect.canHandle(dep))
          {
-        	 this.aspect.stop(dep);
+            //TODO!! Use security action class
+            //set the context classloader using the proper one from the deployment aspect
+            ClassLoader deployerClassLoader = Thread.currentThread().getContextClassLoader();
+            try
+            {
+               Thread.currentThread().setContextClassLoader(this.aspect.getLoader());
+               this.aspect.stop(dep);
+            }
+            finally
+            {
+               Thread.currentThread().setContextClassLoader(deployerClassLoader);
+            }
          }
       }
    }

Modified: branches/jaxrpc-cxf/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
===================================================================
--- branches/jaxrpc-cxf/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml	2010-01-27 10:49:00 UTC (rev 99985)
+++ branches/jaxrpc-cxf/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml	2010-01-27 11:05:46 UTC (rev 99986)
@@ -62,6 +62,17 @@
 
   <bean name="WSDeploymentDeployer" class="org.jboss.webservices.integration.deployers.WSDeploymentDeployer"/>
 
+  <!-- WSDeploymentAspectDeployers factory -->
+  <bean name="WSAspectizedDeployersFactory" class="org.jboss.webservices.integration.deployers.WSAspectizedDeployersFactory">
+    <constructor>
+      <parameter>
+        <inject bean="Deployers"/>
+      </parameter>
+    </constructor>
+    <incallback method="addDeployer"/>
+    <uncallback method="removeDeployer"/>
+  </bean>
+  
   <!-- The AS specific deployment aspects -->
   <bean name="WSContainerMetaDataDeploymentAspect" class="org.jboss.webservices.integration.metadata.ContainerMetaDataDeploymentAspect">
     <property name="provides">ContainerMetaData, VFSRoot</property>




More information about the jboss-cvs-commits mailing list