[jboss-cvs] JBossAS SVN: r66560 - branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 30 05:09:52 EDT 2007


Author: heiko.braun at jboss.com
Date: 2007-10-30 05:09:52 -0400 (Tue, 30 Oct 2007)
New Revision: 66560

Modified:
   branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java
   branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java
   branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java
Log:
Fix JBWS-1762

Modified: branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java
===================================================================
--- branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java	2007-10-30 09:09:05 UTC (rev 66559)
+++ branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java	2007-10-30 09:09:52 UTC (rev 66560)
@@ -133,7 +133,8 @@
    @Override
    public boolean isWebServiceDeployment(DeploymentInfo unit)
    {
-      if (super.isWebServiceDeployment(unit) == false)
+      if (super.isWebServiceDeployment(unit) == false
+        || unit.context.get("org.jboss.ws.ejbwebapp")!=null) // Reject EJB im-memory deployments)
          return false;
 
       WebservicesMetaData wsMetaData = getWebservicesMetaData(unit, "WEB-INF/webservices.xml");

Modified: branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java
===================================================================
--- branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java	2007-10-30 09:09:05 UTC (rev 66559)
+++ branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java	2007-10-30 09:09:52 UTC (rev 66560)
@@ -31,6 +31,8 @@
 
 import javax.jws.WebService;
 import javax.xml.ws.WebServiceProvider;
+import javax.ejb.Stateless;
+import javax.ejb.Stateful;
 
 import org.jboss.deployment.DeploymentInfo;
 import org.jboss.metadata.WebMetaData;
@@ -73,7 +75,7 @@
       // Copy the attachments
       dep.addAttachment(WebMetaData.class, webMetaData);
 
-      List<Servlet> servlets = getRelevantServlets(webMetaData, di.annotationsCl);
+      List<Servlet> servlets = getEndpointBeans(webMetaData, di.annotationsCl);
       for (Servlet servlet : servlets)
       {
          String servletName = servlet.getServletName();
@@ -91,14 +93,15 @@
    @Override
    public boolean isWebServiceDeployment(DeploymentInfo unit)
    {
-      if (super.isWebServiceDeployment(unit) == false)
+      if (super.isWebServiceDeployment(unit) == false
+        || unit.context.get("org.jboss.ws.ejbwebapp")!=null) // Reject EJB im-memory deployments
          return false;
 
       boolean isWebServiceDeployment = false;
       try
       {
          WebMetaData webMetaData = (WebMetaData)unit.metaData;
-         List<Servlet> servlets = getRelevantServlets(webMetaData, unit.annotationsCl);
+         List<Servlet> servlets = getEndpointBeans(webMetaData, unit.annotationsCl);
          isWebServiceDeployment = servlets.size() > 0;
       }
       catch (Exception ex)
@@ -109,7 +112,7 @@
       return isWebServiceDeployment;
    }
 
-   private List<Servlet> getRelevantServlets(WebMetaData webMetaData, ClassLoader loader)
+   private List<Servlet> getEndpointBeans(WebMetaData webMetaData, ClassLoader loader)
    {
       List<Servlet> servlets = new ArrayList<Servlet>();
       Iterator it = webMetaData.getServletClassMap().entrySet().iterator();
@@ -125,11 +128,30 @@
 
          try
          {
+
+            // [JBWS-1762] works on re-written web.xml
+            // In this case we grap the endpoint classname from the init param
+            Map initParams = webMetaData.getServletParams(servletName);
+            Iterator iterator = initParams.keySet().iterator();
+            while(iterator.hasNext())
+            {
+               String paramName = (String)iterator.next();
+               if(Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
+               {
+                  servletClassName = (String)initParams.get(paramName);                  
+               }
+            }
+
             Class<?> servletClass = loader.loadClass(servletClassName.trim());
             boolean isWebService = servletClass.isAnnotationPresent(WebService.class);
             boolean isWebServiceProvider = servletClass.isAnnotationPresent(WebServiceProvider.class);
+
             if (isWebService || isWebServiceProvider)
+            {
+               // works on standard JSR 109 deployments
                servlets.add(new Servlet(servletName, servletClassName));
+            }
+
          }
          catch (ClassNotFoundException ex)
          {

Modified: branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java
===================================================================
--- branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java	2007-10-30 09:09:05 UTC (rev 66559)
+++ branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java	2007-10-30 09:09:52 UTC (rev 66560)
@@ -73,6 +73,8 @@
          if (di != null)
             auxdi.repositoryConfig = di.getTopRepositoryConfig();
 
+         auxdi.context.put("org.jboss.ws.ejbwebapp", "true");
+         
          getMainDeployer().deploy(auxdi);
       }
       catch (Exception ex)




More information about the jboss-cvs-commits mailing list