[jboss-cvs] JBossAS SVN: r62341 - in trunk/ejb3/src/main/org/jboss/ejb3: deployers and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Apr 14 10:28:09 EDT 2007
Author: thomas.diesler at jboss.com
Date: 2007-04-14 10:28:09 -0400 (Sat, 14 Apr 2007)
New Revision: 62341
Modified:
trunk/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java
trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDD.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
Log:
Expose EjbJarDD through deployment unit
Modified: trunk/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java 2007-04-14 12:20:38 UTC (rev 62340)
+++ trunk/ejb3/src/main/org/jboss/ejb3/Ejb3Deployment.java 2007-04-14 14:28:09 UTC (rev 62341)
@@ -23,6 +23,7 @@
import java.io.BufferedInputStream;
import java.io.DataInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
@@ -55,6 +56,7 @@
import org.jboss.ejb3.metamodel.JBossDDObjectFactory;
import org.jboss.logging.Logger;
import org.jboss.virtual.VirtualFile;
+import org.jboss.xb.binding.JBossXBException;
/**
* An EjbModule represents a collection of beans that are deployed as a unit.
@@ -64,7 +66,6 @@
*/
public abstract class Ejb3Deployment
{
-
private static final Logger log = Logger.getLogger(Ejb3Deployment.class);
public static final String ACTUAL_ENTITY_MANAGER_FACTORY_CONTEXT = "java:/ActualEntityManagerFactories";
public static final String MANAGED_ENTITY_FACTORY_CONTEXT = "java:/managedEntityFactories";
@@ -76,8 +77,7 @@
protected boolean hasEntities;
protected List<String> explicitEntityClasses = new ArrayList<String>();
- protected List<PersistenceUnitDeployment> persistenceUnitDeployments = new ArrayList<PersistenceUnitDeployment>();
-;
+ protected List<PersistenceUnitDeployment> persistenceUnitDeployments = new ArrayList<PersistenceUnitDeployment>();;
protected String defaultSLSBDomain = "Stateless Bean";
protected String defaultSFSBDomain = "Stateful Bean";
@@ -144,7 +144,6 @@
return defaultSLSBDomain;
}
-
/**
* Returns a partial MBean attribute name of the form
* ",ear=foo.ear,jar=foo.jar"
@@ -154,7 +153,8 @@
public String getScopeKernelName()
{
String scopedKernelName = "";
- if (deploymentScope != null) scopedKernelName += ",ear=" + deploymentScope.getShortName();
+ if (deploymentScope != null)
+ scopedKernelName += ",ear=" + deploymentScope.getShortName();
scopedKernelName += ",jar=" + unit.getShortName();
return scopedKernelName;
}
@@ -226,7 +226,7 @@
public Container getContainer(ObjectName name)
{
- return (Container) ejbContainers.get(name);
+ return (Container)ejbContainers.get(name);
}
public java.util.Map getEjbContainers()
@@ -234,7 +234,6 @@
return ejbContainers;
}
-
public PersistenceUnitDeployment getPersistenceUnitDeployment(String unitName) throws NameNotFoundException
{
return persistenceUnitResolver.getPersistenceUnitDeployment(unitName);
@@ -250,7 +249,6 @@
return persistenceUnitDeployments;
}
-
public EJBContainer getEjbContainer(String ejbLink, Class businessIntf)
{
return ejbRefResolver.getEjbContainer(ejbLink, businessIntf);
@@ -276,8 +274,7 @@
return ejbRefResolver.getEjbJndiName(businessIntf);
}
- protected void processEJBContainerMetadata(Container container)
- throws Exception
+ protected void processEJBContainerMetadata(Container container) throws Exception
{
ObjectName on = container.getObjectName();
ejbContainers.put(on, container);
@@ -286,8 +283,7 @@
}
- protected void registerEJBContainer(Container container)
- throws Exception
+ protected void registerEJBContainer(Container container) throws Exception
{
ObjectName on = container.getObjectName();
String name = on.getCanonicalName();
@@ -299,7 +295,6 @@
protected abstract void putJaccInService(PolicyConfiguration pc, DeploymentUnit unit);
-
/**
* Create all EJB containers and Persistence Units
* The only things that should be initialized is metadata that does not need access to any
@@ -319,8 +314,7 @@
initializePersistenceUnits();
- log.debug("EJB3 deployment time took: "
- + (System.currentTimeMillis() - start));
+ log.debug("EJB3 deployment time took: " + (System.currentTimeMillis() - start));
}
public void start() throws Exception
@@ -331,13 +325,13 @@
for (Object o : ejbContainers.values())
{
- Container con = (Container) o;
+ Container con = (Container)o;
processEJBContainerMetadata(con);
}
for (Object o : ejbContainers.values())
{
- Container con = (Container) o;
+ Container con = (Container)o;
registerEJBContainer(con);
}
@@ -360,7 +354,8 @@
protected void deploy() throws Exception
{
Ejb3HandlerFactory factory = Ejb3HandlerFactory.getInstance(this);
- if (unit.getUrl() != null) deployUrl(factory);
+ if (unit.getUrl() != null)
+ deployUrl(factory);
if (unit.getClasses() != null)
{
@@ -375,19 +370,18 @@
deployElement(stream, factory, initialContext);
}
}
-
+
deployBeansFromLib(initialContext);
}
- protected void deployUrl(Ejb3HandlerFactory factory)
- throws Exception
+ protected void deployUrl(Ejb3HandlerFactory factory) throws Exception
{
// make sure we are not deploying ejbs from client jar
List<VirtualFile> clientDescriptors = unit.getResources(new org.jboss.ejb3.ClientDescriptorFileFilter());
-
+
if (clientDescriptors.size() > 0)
return;
-
+
InitialContext ctx = initialContext;
// need to look into every entry in the archive to see if anybody has tags
// defined.
@@ -399,8 +393,7 @@
}
}
- protected void deployElement(InputStream stream, Ejb3HandlerFactory factory, InitialContext ctx)
- throws Exception
+ protected void deployElement(InputStream stream, Ejb3HandlerFactory factory, InitialContext ctx) throws Exception
{
DataInputStream dstream = new DataInputStream(new BufferedInputStream(stream));
ClassFile cf = null;
@@ -417,18 +410,15 @@
deployElement(factory, cf, ctx);
}
-
- protected void deployBeansFromLib(InitialContext ctx)
- throws Exception
+
+ protected void deployBeansFromLib(InitialContext ctx) throws Exception
{
- EjbJarDD dd = EjbJarDDObjectFactory.parse(getDeploymentUnit().getEjbJarXml());
- dd = JBossDDObjectFactory.parse(this.getDeploymentUnit().getJbossXml(), dd);
-
+ EjbJarDD dd = getMetaDataFomLib();
if (dd != null)
{
Ejb3DescriptorHandler handler = new Ejb3DescriptorHandler(this, dd);
handler.setCtxProperties(unit.getJndiProperties());
-
+
Map<String, Container> localContainers = new HashMap<String, Container>();
Iterator<Container> containerIterator = ejbContainers.values().iterator();
while (containerIterator.hasNext())
@@ -436,23 +426,29 @@
Container container = containerIterator.next();
localContainers.put(container.getEjbName(), container);
}
-
+
List<Container> containers = handler.getContainers(this, localContainers);
for (Container con : containers)
{
// EJBContainer has finished with all metadata initialization from XML files and such.
// this is really a hook to do some processing after XML has been set up and before
// and processing of dependencies and such.
- ((EJBContainer) con).instantiated();
+ ((EJBContainer)con).instantiated();
this.ejbContainers.put(con.getObjectName(), con);
Ejb3Registry.register(con);
}
}
}
- protected void deployElement(Ejb3HandlerFactory factory, ClassFile cf, InitialContext ctx)
- throws Exception
- {
+ protected EjbJarDD getMetaDataFomLib() throws JBossXBException, IOException
+ {
+ EjbJarDD dd = EjbJarDDObjectFactory.parse(getDeploymentUnit().getEjbJarXml());
+ dd = JBossDDObjectFactory.parse(this.getDeploymentUnit().getJbossXml(), dd);
+ return dd;
+ }
+
+ protected void deployElement(Ejb3HandlerFactory factory, ClassFile cf, InitialContext ctx) throws Exception
+ {
Ejb3Handler handler = factory.createHandler(cf);
handler.setCtxProperties(unit.getJndiProperties());
@@ -464,22 +460,22 @@
// EJBContainer has finished with all metadata initialization from XML files and such.
// this is really a hook to do some processing after XML has been set up and before
// and processing of dependencies and such.
- ((EJBContainer) con).instantiated();
+ ((EJBContainer)con).instantiated();
this.ejbContainers.put(con.getObjectName(), con);
Ejb3Registry.register(con);
}
}
}
- protected void initializePersistenceUnits()
- throws Exception
+ protected void initializePersistenceUnits() throws Exception
{
URL persistenceXmlUrl = null;
persistenceXmlUrl = unit.getPersistenceXml();
-
+
hasEntities = persistenceXmlUrl != null;
- if (!hasEntities) return;
+ if (!hasEntities)
+ return;
if (unit.getClasses() != null)
{
@@ -494,12 +490,14 @@
// scope the unitName if this is an ejb archive
// todo revert to this: List<PersistenceMetadata> persistenceMetadata = PersistenceXmlLoader.deploy(persistenceXmlUrl, new HashMap(), new EJB3DTDEntityResolver());
- List<PersistenceMetadata> persistenceMetadata = PersistenceXmlLoader.deploy(persistenceXmlUrl, new HashMap(), new EJB3DTDEntityResolver(), PersistenceUnitTransactionType.JTA);
+ List<PersistenceMetadata> persistenceMetadata = PersistenceXmlLoader.deploy(persistenceXmlUrl, new HashMap(), new EJB3DTDEntityResolver(),
+ PersistenceUnitTransactionType.JTA);
for (PersistenceMetadata metadata : persistenceMetadata)
{
String earShortName = deploymentScope == null ? null : deploymentScope.getShortName();
boolean isScoped = ejbContainers.size() > 0;
- PersistenceUnitDeployment deployment = new PersistenceUnitDeployment(initialContext, this, explicitEntityClasses, persistenceXmlUrl, metadata, earShortName, unit.getShortName(), isScoped);
+ PersistenceUnitDeployment deployment = new PersistenceUnitDeployment(initialContext, this, explicitEntityClasses, persistenceXmlUrl, metadata, earShortName,
+ unit.getShortName(), isScoped);
PersistenceUnitRegistry.register(deployment);
persistenceUnitDeployments.add(deployment);
}
@@ -509,7 +507,8 @@
protected void startPersistenceUnits()
{
- if (persistenceUnitDeployments == null) return;
+ if (persistenceUnitDeployments == null)
+ return;
for (PersistenceUnitDeployment entityDeployment : persistenceUnitDeployments)
{
@@ -524,7 +523,8 @@
protected void stopPersistenceUnits()
{
- if (persistenceUnitDeployments == null) return;
+ if (persistenceUnitDeployments == null)
+ return;
for (PersistenceUnitDeployment entityDeployment : persistenceUnitDeployments)
{
@@ -550,7 +550,7 @@
{
try
{
- ObjectName on = (ObjectName) o;
+ ObjectName on = (ObjectName)o;
kernelAbstraction.uninstall(on.getCanonicalName());
}
catch (Exception e)
@@ -564,15 +564,15 @@
public void destroy() throws Exception
{
undeploy();
-
+
PolicyConfigurationFactory pcFactory = PolicyConfigurationFactory.getPolicyConfigurationFactory();
PolicyConfiguration pc = pcFactory.getPolicyConfiguration(getJaccContextId(), true);
pc.delete();
}
-
+
private void undeploy()
{
- for(Container container : ejbContainers.values())
+ for (Container container : ejbContainers.values())
{
Ejb3Registry.unregister(container);
}
Modified: trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java 2007-04-14 12:20:38 UTC (rev 62340)
+++ trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java 2007-04-14 14:28:09 UTC (rev 62341)
@@ -22,8 +22,40 @@
package org.jboss.ejb3;
import java.lang.reflect.Field;
+import java.lang.reflect.Member;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
import javassist.bytecode.ClassFile;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.annotation.security.DeclareRoles;
+import javax.annotation.security.DenyAll;
+import javax.annotation.security.PermitAll;
+import javax.annotation.security.RolesAllowed;
+import javax.ejb.Init;
+import javax.ejb.Local;
+import javax.ejb.LocalHome;
+import javax.ejb.MessageDriven;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+import javax.ejb.Remote;
+import javax.ejb.RemoteHome;
+import javax.ejb.Remove;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.ejb.TransactionManagement;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.ExcludeClassInterceptors;
+import javax.interceptor.ExcludeDefaultInterceptors;
+import javax.interceptor.Interceptors;
+
import org.jboss.annotation.IgnoreDependency;
import org.jboss.annotation.IgnoreDependencyImpl;
import org.jboss.annotation.ejb.Clustered;
@@ -72,7 +104,6 @@
import org.jboss.annotation.ejb.cache.simple.PersistenceManagerImpl;
import org.jboss.annotation.internal.DefaultInterceptorMarker;
import org.jboss.annotation.internal.DefaultInterceptorMarkerImpl;
-import org.jboss.annotation.security.RunAsPrincipal;
import org.jboss.annotation.security.RunAsPrincipalImpl;
import org.jboss.annotation.security.SecurityDomain;
import org.jboss.annotation.security.SecurityDomainImpl;
@@ -135,37 +166,6 @@
import org.jboss.metamodel.descriptor.RunAs;
import org.jboss.metamodel.descriptor.SecurityRole;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.annotation.security.DeclareRoles;
-import javax.annotation.security.DenyAll;
-import javax.annotation.security.PermitAll;
-import javax.annotation.security.RolesAllowed;
-import javax.ejb.Init;
-import javax.ejb.Local;
-import javax.ejb.LocalHome;
-import javax.ejb.MessageDriven;
-import javax.ejb.PostActivate;
-import javax.ejb.PrePassivate;
-import javax.ejb.Remote;
-import javax.ejb.RemoteHome;
-import javax.ejb.Remove;
-import javax.ejb.Stateless;
-import javax.ejb.TransactionAttribute;
-import javax.ejb.TransactionAttributeType;
-import javax.ejb.TransactionManagement;
-import javax.interceptor.AroundInvoke;
-import javax.interceptor.ExcludeClassInterceptors;
-import javax.interceptor.ExcludeDefaultInterceptors;
-import javax.interceptor.Interceptors;
-import java.lang.reflect.Member;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
/**
* @version <tt>$Revision$</tt>
* @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java 2007-04-14 12:20:38 UTC (rev 62340)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3JBoss5Deployment.java 2007-04-14 14:28:09 UTC (rev 62341)
@@ -21,6 +21,8 @@
*/
package org.jboss.ejb3.deployers;
+import java.io.IOException;
+
import org.jboss.ejb3.DependencyPolicy;
import org.jboss.ejb3.DeploymentUnit;
import org.jboss.ejb3.DeploymentScope;
@@ -28,9 +30,13 @@
import org.jboss.ejb3.JmxDependencyPolicy;
import org.jboss.ejb3.MCKernelAbstraction;
import org.jboss.ejb3.MCDependencyPolicy;
+import org.jboss.ejb3.metamodel.EjbJarDD;
+import org.jboss.ejb3.metamodel.EjbJarDDObjectFactory;
+import org.jboss.ejb3.metamodel.JBossDDObjectFactory;
import org.jboss.ejb3.security.JaccHelper;
import org.jboss.kernel.Kernel;
import org.jboss.logging.Logger;
+import org.jboss.xb.binding.JBossXBException;
import javax.management.MBeanServer;
import javax.security.jacc.PolicyConfiguration;
@@ -43,43 +49,47 @@
*/
public class Ejb3JBoss5Deployment extends Ejb3Deployment
{
- private org.jboss.deployers.spi.deployer.DeploymentUnit deploymentInfo;
+ private org.jboss.deployers.spi.deployer.DeploymentUnit jbossUnit;
private static final Logger log = Logger.getLogger(Ejb3JBoss5Deployment.class);
- public Ejb3JBoss5Deployment(DeploymentUnit du, Kernel kernel, MBeanServer mbeanServer, org.jboss.deployers.spi.deployer.DeploymentUnit di, DeploymentScope deploymentScope)
+ public Ejb3JBoss5Deployment(DeploymentUnit ejb3Unit, Kernel kernel, MBeanServer mbeanServer, org.jboss.deployers.spi.deployer.DeploymentUnit jbossUnit, DeploymentScope deploymentScope)
{
- super(du, deploymentScope);
- this.deploymentInfo = di;
+ super(ejb3Unit, deploymentScope);
+ this.jbossUnit = jbossUnit;
kernelAbstraction = new MCKernelAbstraction(kernel, mbeanServer);
// todo maybe mbeanServer should be injected?
this.mbeanServer = mbeanServer;
}
+ protected EjbJarDD getMetaDataFomLib() throws JBossXBException, IOException
+ {
+ EjbJarDD jarDD = super.getMetaDataFomLib();
+ if (jarDD != null)
+ jbossUnit.addAttachment(EjbJarDD.class, jarDD);
+ return jarDD;
+ }
+
protected PolicyConfiguration createPolicyConfiguration() throws Exception
{
return JaccHelper.initialiseJacc(getJaccContextId());
-
}
- protected void putJaccInService(PolicyConfiguration pc, DeploymentUnit unit)
+ protected void putJaccInService(PolicyConfiguration pc, DeploymentUnit ejb3Unit)
{
try
{
- JaccHelper.putJaccInService(pc, deploymentInfo);
+ JaccHelper.putJaccInService(pc, jbossUnit);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
-
}
public DependencyPolicy createDependencyPolicy()
{
return new JBoss5DependencyPolicy();
}
-
-
}
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDD.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDD.java 2007-04-14 12:20:38 UTC (rev 62340)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDD.java 2007-04-14 14:28:09 UTC (rev 62341)
@@ -18,16 +18,13 @@
* 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.metamodel;
import java.util.HashMap;
-import java.util.List;
-import java.util.ArrayList;
import org.jboss.logging.Logger;
-
/**
* Represents the ejb-jar.xml deployment descriptor for the 2.1 schema
*
@@ -37,7 +34,7 @@
public class EjbJarDD
{
private static final Logger log = Logger.getLogger(EjbJarDD.class);
-
+
// ejb-jar.xml
private String version;
@@ -46,7 +43,7 @@
private Relationships relationships;
private AssemblyDescriptor assemblyDescriptor;
-
+
private Interceptors interceptors;
// jboss.xml
@@ -59,19 +56,19 @@
// both
private EnterpriseBeans enterpriseBeans;
- private List<Webservices> webservices = new ArrayList<Webservices>();
+ private Webservices webservices;
public void addResourceManager(ResourceManager manager)
{
resourceManagers.put(manager.getResourceName(), manager);
}
-
+
public String resolveResourceManager(String resourceName)
{
ResourceManager manager = resourceManagers.get(resourceName);
if (manager != null)
return manager.getResourceJndiName();
-
+
return null;
}
@@ -84,7 +81,7 @@
{
this.securityDomain = securityDomain;
}
-
+
public String getUnauthenticatedPrincipal()
{
return unauthenticatedPrincipal;
@@ -94,7 +91,7 @@
{
this.unauthenticatedPrincipal = unauthenticatedPrincipal;
}
-
+
public String getJmxName()
{
return jmxName;
@@ -134,7 +131,7 @@
{
this.enterpriseBeans = enterpriseBeans;
}
-
+
public Interceptors getInterceptors()
{
return interceptors;
@@ -165,11 +162,16 @@
this.assemblyDescriptor = assemblyDescriptor;
}
- public List<Webservices> getWebservices()
+ public Webservices getWebservices()
{
return webservices;
}
+ public void setWebservices(Webservices webservices)
+ {
+ this.webservices = webservices;
+ }
+
public String toString()
{
StringBuffer sb = new StringBuffer(100);
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-04-14 12:20:38 UTC (rev 62340)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-04-14 14:28:09 UTC (rev 62341)
@@ -137,9 +137,13 @@
}
else if (localName.equals("webservices"))
{
- child = new Webservices();
+ child = dd.getWebservices();
+ if (child == null)
+ {
+ dd.setWebservices(new Webservices());
+ child = dd.getWebservices();
+ }
}
-
return child;
}
@@ -659,7 +663,7 @@
*/
public void addChild(EjbJarDD parent, Webservices webservices, UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.getWebservices().add(webservices);
+ parent.setWebservices(webservices);
}
/**
More information about the jboss-cvs-commits
mailing list