[jboss-cvs] JBossAS SVN: r78845 - in projects/ejb3/trunk/embedded: src/main/java/org/jboss/ejb3/embedded/deployers and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Sep 25 04:42:43 EDT 2008
Author: wolfc
Date: 2008-09-25 04:42:43 -0400 (Thu, 25 Sep 2008)
New Revision: 78845
Added:
projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedDescriptorHandler.java
Modified:
projects/ejb3/trunk/embedded/pom.xml
projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployers/EjbComponentDeployer.java
projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EjbDeployment.java
projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedEjb3DeploymentUnit.java
Log:
EJBTHREE-1492: Using legacy Ejb3DescriptorHandler to instantiate containers
Modified: projects/ejb3/trunk/embedded/pom.xml
===================================================================
--- projects/ejb3/trunk/embedded/pom.xml 2008-09-25 08:19:56 UTC (rev 78844)
+++ projects/ejb3/trunk/embedded/pom.xml 2008-09-25 08:42:43 UTC (rev 78845)
@@ -40,6 +40,11 @@
<dependencyManagement>
<dependencies>
<dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-reflect</artifactId>
+ <version>2.0.0.CR1</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.microcontainer</groupId>
<artifactId>jboss-kernel</artifactId>
<version>2.0.0.CR1</version>
Modified: projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployers/EjbComponentDeployer.java
===================================================================
--- projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployers/EjbComponentDeployer.java 2008-09-25 08:19:56 UTC (rev 78844)
+++ projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployers/EjbComponentDeployer.java 2008-09-25 08:42:43 UTC (rev 78845)
@@ -21,11 +21,6 @@
*/
package org.jboss.ejb3.embedded.deployers;
-import java.util.Hashtable;
-
-import org.jboss.aop.AspectManager;
-import org.jboss.aop.Domain;
-import org.jboss.aop.DomainDefinition;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.deployers.spi.DeploymentException;
@@ -33,13 +28,11 @@
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.ejb3.EJBContainer;
import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.ejb3.embedded.deployment.EmbeddedDescriptorHandler;
import org.jboss.ejb3.javaee.JavaEEComponentHelper;
import org.jboss.ejb3.javaee.JavaEEModule;
import org.jboss.ejb3.javaee.SimpleJavaEEModule;
-import org.jboss.ejb3.stateful.StatefulContainer;
-import org.jboss.ejb3.stateless.StatelessContainer;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
/**
* @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
@@ -72,38 +65,19 @@
String ejbName = metaData.getEjbName();
String componentName = JavaEEComponentHelper.createObjectName(module, ejbName);
- String componentClassName = metaData.getEjbClass();
- ClassLoader classLoader = unit.getClassLoader();
- Domain domain;
- Hashtable ctxProperties = null;
Ejb3Deployment deployment = unit.getAttachment(Ejb3Deployment.class);
EJBContainer component;
- if(metaData instanceof JBossSessionBeanMetaData)
+ try
{
- try
- {
- boolean isStateful = ((JBossSessionBeanMetaData) metaData).isStateful();
- String domainName = metaData.getAopDomainName();
- if(domainName == null)
- domainName = deployment.getDefaultSLSBDomain();
- DomainDefinition domainDefintion = AspectManager.instance().getContainer(domainName);
- if(domainDefintion == null)
- throw new DeploymentException("Can't find domain " + domainName + " for " + componentName);
- domain = (Domain) domainDefintion.getManager();
- if(isStateful)
- component = new StatefulContainer(classLoader, componentClassName, ejbName, domain, ctxProperties, deployment, (JBossSessionBeanMetaData) metaData);
- else
- component = new StatelessContainer(classLoader, componentClassName, ejbName, domain, ctxProperties, deployment, (JBossSessionBeanMetaData) metaData);
- }
- catch (ClassNotFoundException e)
- {
- throw new DeploymentException("Unable to find class " + componentClassName + " in class loader " + classLoader, e);
- }
+ EmbeddedDescriptorHandler handler = new EmbeddedDescriptorHandler(deployment, metaData.getEjbJarMetaData());
+ component = handler.createEJBContainer(metaData);
}
- else
- throw new DeploymentException("Can't deploy " + metaData.getEjbName() + ", " + metaData.getClass() + " is not supported");
+ catch(Exception e)
+ {
+ throw new DeploymentException(e);
+ }
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(componentName, component.getClass().getName());
builder.setConstructorValue(component);
Modified: projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EjbDeployment.java
===================================================================
--- projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EjbDeployment.java 2008-09-25 08:19:56 UTC (rev 78844)
+++ projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EjbDeployment.java 2008-09-25 08:42:43 UTC (rev 78845)
@@ -30,6 +30,7 @@
import org.jboss.ejb3.Ejb3Deployment;
import org.jboss.ejb3.cache.CacheFactoryRegistry;
import org.jboss.ejb3.cache.persistence.PersistenceManagerFactoryRegistry;
+import org.jboss.ejb3.deployers.JBoss5DependencyPolicy;
import org.jboss.ejb3.javaee.JavaEEComponent;
import org.jboss.ejb3.pool.PoolFactoryRegistry;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
@@ -61,8 +62,7 @@
public DependencyPolicy createDependencyPolicy(JavaEEComponent component)
{
- //throw new RuntimeException("NYI");
- return null;
+ return new JBoss5DependencyPolicy(component);
}
protected PolicyConfiguration createPolicyConfiguration() throws Exception
Added: projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedDescriptorHandler.java
===================================================================
--- projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedDescriptorHandler.java (rev 0)
+++ projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedDescriptorHandler.java 2008-09-25 08:42:43 UTC (rev 78845)
@@ -0,0 +1,106 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.embedded.deployment;
+
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.ejb3.Ejb3DescriptorHandler;
+import org.jboss.ejb3.mdb.ConsumerContainer;
+import org.jboss.ejb3.mdb.MDB;
+import org.jboss.ejb3.service.ServiceContainer;
+import org.jboss.ejb3.stateful.StatefulContainer;
+import org.jboss.metadata.ejb.jboss.JBossConsumerBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+
+/**
+ * Provide a wrapper around Ejb3DescriptorHandler to make it usable
+ * in embedded.
+ *
+ * Note that Ejb3DescriptorHandler is the legacy way of translating
+ * meta data into annotations.
+ *
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class EmbeddedDescriptorHandler extends Ejb3DescriptorHandler
+{
+ /**
+ * @param deployment
+ * @param dd
+ */
+ public EmbeddedDescriptorHandler(Ejb3Deployment deployment, JBossMetaData metaData)
+ {
+ super(deployment, metaData);
+
+ for(JBossEnterpriseBeanMetaData bean : metaData.getEnterpriseBeans())
+ {
+ ejbNames.add(bean.getEjbName());
+ ejbs.add(bean);
+ }
+ }
+
+ public EJBContainer createEJBContainer(JBossEnterpriseBeanMetaData beanMetaData) throws Exception
+ {
+ int index = ejbNames.indexOf(beanMetaData.getEjbName());
+ assert index != -1 : "Can't find bean " + beanMetaData.getEjbName() + " in " + ejbNames;
+
+ EJB_TYPE ejbType = getEjbType(beanMetaData);
+
+ className = beanMetaData.getEjbClass();
+ ejbClass = di.getClassLoader().loadClass(className);
+ if (ejbType == EJB_TYPE.STATELESS)
+ {
+ EJBContainer container = getStatelessContainer(index, (JBossSessionBeanMetaData) beanMetaData);
+ container.setJaccContextId(getJaccContextId());
+ return container;
+ }
+ else if (ejbType == EJB_TYPE.STATEFUL)
+ {
+ StatefulContainer container = getStatefulContainer(index, (JBossSessionBeanMetaData) beanMetaData);
+ container.setJaccContextId(getJaccContextId());
+ return container;
+ }
+ else if (ejbType == EJB_TYPE.MESSAGE_DRIVEN)
+ {
+ MDB container = getMDB(index, (JBossMessageDrivenBeanMetaData) beanMetaData);
+ container.setJaccContextId(getJaccContextId());
+ return container;
+ }
+ else if (ejbType == EJB_TYPE.SERVICE)
+ {
+ ServiceContainer container = getServiceContainer(index, (JBossServiceBeanMetaData) beanMetaData);
+ container.setJaccContextId(getJaccContextId());
+ return container;
+ }
+ else if (ejbType == EJB_TYPE.CONSUMER)
+ {
+ ConsumerContainer container = getConsumerContainer(index, (JBossConsumerBeanMetaData) beanMetaData);
+ container.setJaccContextId(getJaccContextId());
+ return container;
+ }
+ throw new UnsupportedOperationException("Can't create a container for type " + ejbType);
+ }
+}
Modified: projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedEjb3DeploymentUnit.java
===================================================================
--- projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedEjb3DeploymentUnit.java 2008-09-25 08:19:56 UTC (rev 78844)
+++ projects/ejb3/trunk/embedded/src/main/java/org/jboss/ejb3/embedded/deployment/EmbeddedEjb3DeploymentUnit.java 2008-09-25 08:42:43 UTC (rev 78845)
@@ -67,14 +67,9 @@
throw new RuntimeException("NYI");
}
- /* (non-Javadoc)
- * @see org.jboss.ejb3.DeploymentUnit#getClassLoader()
- */
public ClassLoader getClassLoader()
{
- // TODO Auto-generated method stub
- //return null;
- throw new RuntimeException("NYI");
+ return unit.getClassLoader();
}
/* (non-Javadoc)
More information about the jboss-cvs-commits
mailing list