[jbossws-commits] JBossWS SVN: r8365 - stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Tue Oct 7 05:28:23 EDT 2008


Author: richard.opalka at jboss.com
Date: 2008-10-07 05:28:23 -0400 (Tue, 07 Oct 2008)
New Revision: 8365

Modified:
   stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AspectizedEndpointServlet.java
   stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/EndpointServlet.java
Log:
[JBWS-2246][JBWS-2264][JBAS-5732] refactoring endpoint servlets

Modified: stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AspectizedEndpointServlet.java
===================================================================
--- stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AspectizedEndpointServlet.java	2008-10-07 09:24:54 UTC (rev 8364)
+++ stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/AspectizedEndpointServlet.java	2008-10-07 09:28:23 UTC (rev 8365)
@@ -21,47 +21,26 @@
  */
 package org.jboss.wsf.stack.cxf;
 
-import org.jboss.wsf.spi.DeploymentAspectManagerLocator;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspectManager;
+import org.jboss.wsf.framework.deployment.AbstractAspectizedEndpointServlet;
+import org.jboss.wsf.spi.management.EndpointResolver;
 
 /**
- * Endpoint servlet with WS framework aspects support called on servlet lifecycle methods
+ * An aspectized CXF endpoint servlet that is installed for every web service endpoint on AS 5.x series
  * @author richard.opalka at jboss.com
  */
-public class AspectizedEndpointServlet extends EndpointServlet
+public final class AspectizedEndpointServlet extends AbstractAspectizedEndpointServlet
 {
 
-   protected DeploymentAspectManager aspectsManager;
-
-   protected void initDeploymentAspectManager()
+   /**
+    * Provides CXF specific endpoint resolver
+    * @param servletContext servlet context
+    * @param servletName servlet name
+    * @return new CXF specific endpoint resolver
+    */
+   @Override
+   protected final EndpointResolver newEndpointResolver(String servletContext, String servletName)
    {
-      SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
-      DeploymentAspectManagerLocator locator = spiProvider.getSPI(DeploymentAspectManagerLocator.class);
-      aspectsManager = locator.locateDeploymentAspectManager("WSServletAspectManager");
+      return new WebAppResolver(servletContext, servletName);
    }
-   
-   protected void callRuntimeAspects()
-   {
-      Deployment dep = endpoint.getService().getDeployment();
-      aspectsManager.create(dep, null);
-      aspectsManager.start(dep, null);
-   }
-   
-   public void destroy()
-   {
-      try
-      {
-         Deployment dep = endpoint.getService().getDeployment();
-         aspectsManager.stop(dep, null);
-         aspectsManager.destroy(dep, null);
-      }
-      finally
-      {
-         super.destroy();
-      }
-   }
-   
+
 }

Modified: stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/EndpointServlet.java
===================================================================
--- stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/EndpointServlet.java	2008-10-07 09:24:54 UTC (rev 8364)
+++ stack/cxf/trunk/modules/server/src/main/java/org/jboss/wsf/stack/cxf/EndpointServlet.java	2008-10-07 09:28:23 UTC (rev 8365)
@@ -21,115 +21,28 @@
  */
 package org.jboss.wsf.stack.cxf;
 
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.management.EndpointRegistry;
-import org.jboss.wsf.spi.management.EndpointRegistryFactory;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
-import org.jboss.wsf.spi.invocation.RequestHandler;
-import org.jboss.wsf.spi.invocation.EndpointAssociation;
-import org.jboss.wsf.common.ObjectNameFactory;
+import org.jboss.wsf.spi.management.EndpointResolver;
+import org.jboss.wsf.framework.deployment.AbstractEndpointServlet;
 
-import javax.management.ObjectName;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.xml.ws.WebServiceException;
-import java.io.IOException;
-
 /**
- * A servlet that is installed for every web service endpoint.
- * @author Heiko.Braun at jboss.com
+ * A CXF endpoint servlet that is installed for every web service endpoint on AS 4.2.x series
+ * @author thomas.diesler at jboss.com
+ * @author heiko.braun at jboss.com
  * @author richard.opalka at jboss.com
  */
-public class EndpointServlet extends HttpServlet
+public final class EndpointServlet extends AbstractEndpointServlet
 {
-   protected Endpoint endpoint;
-   protected EndpointRegistry epRegistry;
 
-   public void init(ServletConfig servletConfig) throws ServletException
-   {
-      super.init(servletConfig);
-      this.initRegistry();
-      this.initDeploymentAspectManager();
-      String contextPath = servletConfig.getServletContext().getContextPath();
-      this.initServiceEndpoint(contextPath);
-   }
-   
-   protected void initRegistry()
-   {
-      SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
-      epRegistry = spiProvider.getSPI(EndpointRegistryFactory.class).getEndpointRegistry();
-   }   
-
-   public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
-   {
-      try
-      {
-         EndpointAssociation.setEndpoint(endpoint);
-         RequestHandler requestHandler = endpoint.getRequestHandler();
-         requestHandler.handleHttpRequest(endpoint, req, res, getServletContext());
-      }
-      finally
-      {
-         EndpointAssociation.removeEndpoint();
-      }
-   }
-
-   /** Initialize the service endpoint
-    */
-   protected void initServiceEndpoint(String contextPath)
-   {
-      this.initEndpoint(contextPath, getServletName());
-      this.setRuntimeLoader();
-      this.callRuntimeAspects();
-   }
-
-   /** Initialize the service endpoint
-    */
-   protected void initEndpoint(String contextPath, String servletName)
-   {
-      WebAppResolver resolver = new WebAppResolver(contextPath, servletName);
-      this.endpoint = epRegistry.resolve(resolver);
-
-      if (this.endpoint == null)
-      {
-         ObjectName oname = ObjectNameFactory.create(Endpoint.SEPID_DOMAIN + ":" +
-           Endpoint.SEPID_PROPERTY_CONTEXT + "=" + contextPath + "," +
-           Endpoint.SEPID_PROPERTY_ENDPOINT + "=" + getServletName()
-         );
-         throw new WebServiceException("Cannot obtain endpoint for: " + oname);
-      }
-   }
-   
-   private void setRuntimeLoader()
-   {
-      // Set the runtime classloader for JSE endpoints, this should be the tomcat classloader
-      Deployment dep = endpoint.getService().getDeployment();
-      if (dep.getType() == Deployment.DeploymentType.JAXRPC_JSE || dep.getType() == Deployment.DeploymentType.JAXWS_JSE)
-      {
-         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-         dep.setRuntimeClassLoader(classLoader);
-      }
-   }
-   
    /**
-    * Template method
+    * Provides CXF specific endpoint resolver
+    * @param servletContext servlet context
+    * @param servletName servlet name
+    * @return new CXF specific endpoint resolver
     */
-   protected void initDeploymentAspectManager()
+   @Override
+   protected final EndpointResolver newEndpointResolver(String servletContext, String servletName)
    {
-      // does nothing (because of BC)
+      return new WebAppResolver(servletContext, servletName);
    }
    
-   /**
-    * Template method
-    */
-   protected void callRuntimeAspects()
-   {
-      // does nothing (because of BC)
-   }
-   
 }




More information about the jbossws-commits mailing list