[jboss-cvs] JBossAS SVN: r69088 - in branches/Branch_4_2: webservices/src/main/org/jboss/wsf/container/jboss42 and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 17 16:01:41 EST 2008


Author: heiko.braun at jboss.com
Date: 2008-01-17 16:01:41 -0500 (Thu, 17 Jan 2008)
New Revision: 69088

Modified:
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
   branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java
Log:
JBAS-5149: 'webservices' meta data (jboss.xml) not available for ejb3 web service endpoints

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java	2008-01-17 20:34:44 UTC (rev 69087)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java	2008-01-17 21:01:41 UTC (rev 69088)
@@ -136,28 +136,7 @@
 import org.jboss.ejb3.mdb.MDB;
 import org.jboss.ejb3.mdb.ProducerImpl;
 import org.jboss.ejb3.mdb.ProducersImpl;
-import org.jboss.ejb3.metamodel.ActivationConfig;
-import org.jboss.ejb3.metamodel.AssemblyDescriptor;
-import org.jboss.ejb3.metamodel.CacheConfig;
-import org.jboss.ejb3.metamodel.ClusterConfig;
-import org.jboss.ejb3.metamodel.ContainerTransaction;
-import org.jboss.ejb3.metamodel.EjbJarDD;
-import org.jboss.ejb3.metamodel.EnterpriseBean;
-import org.jboss.ejb3.metamodel.EnterpriseBeans;
-import org.jboss.ejb3.metamodel.ExcludeList;
-import org.jboss.ejb3.metamodel.InitMethod;
-import org.jboss.ejb3.metamodel.InterceptorBinding;
-import org.jboss.ejb3.metamodel.MessageDestination;
-import org.jboss.ejb3.metamodel.MessageDrivenBean;
-import org.jboss.ejb3.metamodel.MessageDrivenDestination;
-import org.jboss.ejb3.metamodel.Method;
-import org.jboss.ejb3.metamodel.MethodAttributes;
-import org.jboss.ejb3.metamodel.MethodPermission;
-import org.jboss.ejb3.metamodel.PoolConfig;
-import org.jboss.ejb3.metamodel.RemoveMethod;
-import org.jboss.ejb3.metamodel.SecurityIdentity;
-import org.jboss.ejb3.metamodel.SessionEnterpriseBean;
-import org.jboss.ejb3.metamodel.XmlAnnotation;
+import org.jboss.ejb3.metamodel.*;
 import org.jboss.ejb3.service.ServiceContainer;
 import org.jboss.ejb3.stateful.StatefulContainer;
 import org.jboss.logging.Logger;
@@ -167,6 +146,8 @@
 import org.jboss.metamodel.descriptor.ResourceRef;
 import org.jboss.metamodel.descriptor.RunAs;
 import org.jboss.metamodel.descriptor.SecurityRole;
+import org.jboss.wsf.spi.annotation.WebContextImpl;
+import org.jboss.wsf.spi.annotation.WebContext;
 
 /**
  * @version <tt>$Revision$</tt>
@@ -722,8 +703,25 @@
       addEjbAnnotations(container, enterpriseBean);
 
       addEjb21Annotations(container, isStateful);
+
+      addWebServiceAnnotations(container, enterpriseBean, ejbName);
    }
 
+   private void addWebServiceAnnotations(EJBContainer container, EnterpriseBean enterpriseBean, String ejbName)
+   {
+      if(dd.getWebservices()!=null)
+      {
+         Webservices webservices = dd.getWebservices();
+         if(webservices.getContextRoot()!=null)
+         {
+            WebContextImpl webContextImpl = new WebContextImpl();
+            webContextImpl.setContextRoot(webservices.getContextRoot());
+
+            addClassAnnotation(container, WebContext.class, webContextImpl);
+         }
+      }
+   }
+
    /**
     * EJB3 4.3.5
     * On a 2.1 session bean the ejbRemove is treated as PreDestroy, ejbActivate as PostActivate,

Modified: branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java
===================================================================
--- branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java	2008-01-17 20:34:44 UTC (rev 69087)
+++ branches/Branch_4_2/webservices/src/main/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java	2008-01-17 21:01:41 UTC (rev 69088)
@@ -30,6 +30,8 @@
 import javax.management.ObjectName;
 
 import org.jboss.ejb3.Ejb3ModuleMBean;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.metamodel.EnterpriseBean;
 import org.jboss.ejb3.mdb.MessagingContainer;
 import org.jboss.ejb3.stateless.StatelessContainer;
 import org.jboss.logging.Logger;
@@ -43,6 +45,7 @@
 import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
 import org.jboss.wsf.spi.metadata.j2ee.MDBMetaData;
 import org.jboss.wsf.spi.metadata.j2ee.SLSBMetaData;
+import org.jboss.wsf.spi.annotation.WebContext;
 
 /**
  * Build container independent application meta data 
@@ -66,6 +69,8 @@
       // jboss.j2ee:service=EJB3,module=some-ejb3.jar
       if (oname != null && oname.getDomain().equals("jboss.j2ee") && "EJB3".equals(oname.getKeyProperty("service")))
       {
+         appMetaData = new EJBArchiveMetaData();
+
          Ejb3ModuleMBean ejb3Module = getEJB3Module(oname);
 
          ArrayList<EJBMetaData> beans = new ArrayList<EJBMetaData>();
@@ -78,6 +83,8 @@
                usmd.setEjbName(slc.getEjbName());
                usmd.setEjbClass(slc.getBeanClassName());
                beans.add(usmd);
+
+               buildWebServiceMetaData(appMetaData, slc);
             }
             else if (container instanceof MessagingContainer)
             {
@@ -96,15 +103,25 @@
                   }
                }
                beans.add(umdb);
+
+               buildWebServiceMetaData(appMetaData, mdb);
             }
          }
 
-         appMetaData = new EJBArchiveMetaData();
          appMetaData.setEnterpriseBeans(beans);
       }
       return appMetaData;
    }
 
+   private void buildWebServiceMetaData(EJBArchiveMetaData appMetaData, EJBContainer container)
+   {
+      WebContext webContext = (WebContext)container.resolveAnnotation(WebContext.class);
+      if(webContext!=null)
+      {
+         appMetaData.setWebServiceContextRoot(webContext.contextRoot());         
+      }
+   }
+
    static Ejb3ModuleMBean getEJB3Module(ObjectName objectName)
    {
       Ejb3ModuleMBean ejb3Module;




More information about the jboss-cvs-commits mailing list