You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/01/11 06:06:05 UTC
svn commit: r495121 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src:
main/java/org/apache/openejb/assembler/classic/
main/java/org/apache/openejb/core/cmp/
main/java/org/apache/openejb/core/entity/
main/java/org/apache/openejb/core/md...
Author: dblevins
Date: Wed Jan 10 21:06:04 2007
New Revision: 495121
URL: http://svn.apache.org/viewvc?view=rev&rev=495121
Log:
inlined and simplified the construction of containers
Removed:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Wed Jan 10 21:06:04 2007
@@ -242,11 +242,8 @@
AssemblerTool.RoleMapping roleMapping = new AssemblerTool.RoleMapping(configInfo.facilities.securityService.roleMappings);
// Containers
- ContainersBuilder containersBuilder = new ContainersBuilder(containerSystem, containerSystemInfo, props);
- List containers = (List) containersBuilder.buildContainers(new HashMap<String, DeploymentInfo>());
- for (int i1 = 0; i1 < containers.size(); i1++) {
- Container container = (Container) containers.get(i1);
- containerSystem.addContainer(container.getContainerID(), container);
+ for (ContainerInfo serviceInfo : containerSystemInfo.containers) {
+ createContainer(serviceInfo);
}
JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
@@ -344,6 +341,31 @@
}
return containerSystem;
+ }
+
+ private void createContainer(ContainerInfo serviceInfo) throws OpenEJBException, NamingException {
+
+ ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.constructorArgs.toArray(new String[0]), null);
+ serviceRecipe.setAllProperties(serviceInfo.properties);
+
+ serviceRecipe.setProperty("id", new StaticRecipe(serviceInfo.id));
+ serviceRecipe.setProperty("transactionManager", new StaticRecipe(props.get(TransactionManager.class.getName())));
+ serviceRecipe.setProperty("securityService", new StaticRecipe(props.get(SecurityService.class.getName())));
+
+ Object service = serviceRecipe.create();
+
+ Class interfce = serviceInterfaces.get(serviceInfo.serviceType);
+ checkImplementation(interfce, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
+
+ this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType + "/" + serviceInfo.id, service);
+
+ SystemInstance.get().setComponent(interfce, service);
+
+ props.put(interfce.getName(), service);
+ props.put(serviceInfo.serviceType, service);
+ props.put(serviceInfo.id, service);
+
+ containerSystem.addContainer(serviceInfo.id, (Container) service);
}
private void createProxyFactory(IntraVmServerInfo serviceInfo) throws OpenEJBException, NamingException {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java Wed Jan 10 21:06:04 2007
@@ -88,7 +88,7 @@
protected final Map<Object, CmpEngine> cmpEngines = new HashMap<Object, CmpEngine>();
- public CmpContainer(Object id, TransactionManager transactionManager, SecurityService securityService, HashMap<Object, DeploymentInfo> registry, String cmpEngineFactory, String engine, String connectorName) throws OpenEJBException {
+ public CmpContainer(Object id, TransactionManager transactionManager, SecurityService securityService, String cmpEngineFactory, String engine, String connectorName) throws OpenEJBException {
this.transactionManager = transactionManager;
this.securityService = securityService;
this.containerID = id;
@@ -97,10 +97,6 @@
this.engine = engine;
cmpCallback = new ContainerCmpCallback();
-
- for (DeploymentInfo deploymentInfo : registry.values()) {
- deploy((CoreDeploymentInfo) deploymentInfo);
- }
}
public Object getContainerID() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java Wed Jan 10 21:06:04 2007
@@ -33,12 +33,11 @@
*/
public class Cmp2EntityContainer implements org.apache.openejb.RpcContainer, TransactionContainer {
- private Map deploymentRegistry;
+ private Map deploymentRegistry = new HashMap();
private Object containerID = null;
- public Cmp2EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService, Map registry) throws OpenEJBException {
- this.deploymentRegistry = registry;
+ public Cmp2EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService) throws OpenEJBException {
this.containerID = id;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java Wed Jan 10 21:06:04 2007
@@ -50,7 +50,7 @@
private EntityInstanceManager instanceManager;
- private Map deploymentRegistry;
+ private Map<String,CoreDeploymentInfo> deploymentRegistry = new HashMap<String,CoreDeploymentInfo>();
private Object containerID = null;
@@ -58,8 +58,7 @@
private TransactionManager transactionManager;
private SecurityService securityService;
- public EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService, Map registry, int poolSize) throws OpenEJBException {
- this.deploymentRegistry = registry;
+ public EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService, int poolSize) throws OpenEJBException {
this.containerID = id;
this.transactionManager = transactionManager;
this.securityService = securityService;
@@ -68,11 +67,11 @@
}
public DeploymentInfo [] deployments() {
- return (DeploymentInfo []) deploymentRegistry.values().toArray(new DeploymentInfo[deploymentRegistry.size()]);
+ return deploymentRegistry.values().toArray(new DeploymentInfo[deploymentRegistry.size()]);
}
public DeploymentInfo getDeploymentInfo(Object deploymentID) {
- return (DeploymentInfo) deploymentRegistry.get(deploymentID);
+ return deploymentRegistry.get(deploymentID);
}
public int getContainerType() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java Wed Jan 10 21:06:04 2007
@@ -38,7 +38,6 @@
public ActiveMQContainer(Object containerID,
GeronimoTransactionManager transactionManager,
SecurityService securityService,
- Map<String, DeploymentInfo> deploymentRegistry,
String serverUrl,
int threadPoolSize,
int instanceLimit) throws OpenEJBException {
@@ -50,21 +49,6 @@
ActiveMQActivationSpec.class,
instanceLimit);
- // deploy the beans
- try {
- for (Map.Entry<String, DeploymentInfo> entry : deploymentRegistry.entrySet()) {
- deploy(entry.getKey(), entry.getValue());
- }
- } catch (OpenEJBException e) {
- // there was a failure deploying the beans... undeploy them
- for (DeploymentInfo deploymentInfo : deployments()) {
- try {
- undeploy(deploymentInfo.getDeploymentID());
- } finally {
- logger.error("Error undeploying " + deploymentInfo.getDeploymentID(), e);
- }
- }
- }
}
public static ActiveMQResourceAdapter createActiveMQResourceAdapter(GeronimoTransactionManager transactionManager, String serverUrl, int threadPoolSize) throws OpenEJBException {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Wed Jan 10 21:06:04 2007
@@ -45,7 +45,7 @@
private StatefulInstanceManager instanceManager;
- private HashMap<String,CoreDeploymentInfo> deploymentRegistry;
+ private HashMap<String,CoreDeploymentInfo> deploymentRegistry = new HashMap<String,CoreDeploymentInfo>();
private Object containerID = null;
@@ -53,8 +53,7 @@
private TransactionManager transactionManager;
private SecurityService securityService;
- public StatefulContainer(Object id, TransactionManager transactionManager, SecurityService securityService, HashMap registry, Class passivator, int timeOut, int poolSize, int bulkPassivate) throws OpenEJBException {
- this.deploymentRegistry = registry;
+ public StatefulContainer(Object id, TransactionManager transactionManager, SecurityService securityService, Class passivator, int timeOut, int poolSize, int bulkPassivate) throws OpenEJBException {
this.containerID = id;
this.transactionManager = transactionManager;
this.securityService = securityService;
@@ -188,7 +187,7 @@
public void deploy(Object deploymentID, DeploymentInfo deploymentInfo) throws OpenEJBException {
deploy(deploymentID, (CoreDeploymentInfo)deploymentInfo);
}
-
+
private void deploy(Object deploymentID, CoreDeploymentInfo deploymentInfo) throws OpenEJBException {
Map<Method, MethodType> methods = getLifecycelMethodsOfInterface(deploymentInfo);
deploymentInfo.setContainerData(new Data(new Index(methods)));
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java Wed Jan 10 21:06:04 2007
@@ -44,14 +44,13 @@
private StatelessInstanceManager instanceManager;
- private HashMap<String,DeploymentInfo> deploymentRegistry;
+ private HashMap<String,DeploymentInfo> deploymentRegistry = new HashMap<String,DeploymentInfo>();
private Object containerID = null;
private TransactionManager transactionManager;
private SecurityService securityService;
- public StatelessContainer(Object id, TransactionManager transactionManager, SecurityService securityService, HashMap registry, int timeOut, int poolSize, boolean strictPooling) throws OpenEJBException {
- this.deploymentRegistry = registry;
+ public StatelessContainer(Object id, TransactionManager transactionManager, SecurityService securityService, int timeOut, int poolSize, boolean strictPooling) throws OpenEJBException {
this.containerID = id;
this.transactionManager = transactionManager;
this.securityService = securityService;
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Wed Jan 10 21:06:04 2007
@@ -50,7 +50,7 @@
-->
<ServiceProvider id="Default CMP Container"
provider-type="Container"
- constructor="id, transactionManager, securityService, deployments, CmpEngineFactory, Engine, ConnectorName"
+ constructor="id, transactionManager, securityService, CmpEngineFactory, Engine, ConnectorName"
class-name="org.apache.openejb.core.cmp.CmpContainer">
#CmpEngineFactory org.apache.openejb.alt.containers.castor_cmp11.CastorCmpEngineFactory
@@ -69,7 +69,7 @@
-->
<ServiceProvider id="Default CMP2 Container"
provider-type="Container"
- constructor="id, transactionManager, securityService, deployments"
+ constructor="id, transactionManager, securityService"
class-name="org.apache.openejb.core.entity.Cmp2EntityContainer">
</ServiceProvider>
@@ -81,7 +81,7 @@
<ServiceProvider
id="Default BMP Container"
provider-type="Container"
- constructor="id, transactionManager, securityService, deployments, PoolSize"
+ constructor="id, transactionManager, securityService, PoolSize"
class-name="org.apache.openejb.core.entity.EntityContainer">
# Specifies the size of the bean pools for this
@@ -101,7 +101,7 @@
<ServiceProvider
id="Default Stateless Container"
provider-type="Container"
- constructor="id, transactionManager, securityService, deployments, TimeOut, PoolSize, StrictPooling"
+ constructor="id, transactionManager, securityService, TimeOut, PoolSize, StrictPooling"
class-name="org.apache.openejb.core.stateless.StatelessContainer">
# Specifies the time to wait between invocations. This
@@ -142,7 +142,7 @@
<ServiceProvider
id="Default Stateful Container"
provider-type="Container"
- constructor="id, transactionManager, securityService, deployments, Passivator, TimeOut, PoolSize, BulkPassivate"
+ constructor="id, transactionManager, securityService, Passivator, TimeOut, PoolSize, BulkPassivate"
class-name="org.apache.openejb.core.stateful.StatefulContainer">
# The passivator is responsible for writing beans to disk
@@ -185,7 +185,7 @@
<ServiceProvider
id="Default MDB Container"
provider-type="Container"
- constructor="id, transactionManager, securityService, deployments, ServerUrl, ThreadPoolSize, InstanceLimit"
+ constructor="id, transactionManager, securityService, ServerUrl, ThreadPoolSize, InstanceLimit"
class-name="org.apache.openejb.core.mdb.ActiveMQContainer">
# Specifies the url used to create the ActiveMQ resource adapter.
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java Wed Jan 10 21:06:04 2007
@@ -163,7 +163,7 @@
// Create the Container
- container = new StatefulContainer("Stateful Container", transactionManager, securityService, new HashMap(),null, 10, 0, 1);
+ container = new StatefulContainer("Stateful Container", transactionManager, securityService,null, 10, 0, 1);
Properties props = new Properties();
props.put(container.getContainerID(), container);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java Wed Jan 10 21:06:04 2007
@@ -127,7 +127,7 @@
PseudoTransactionService transactionManager = new PseudoTransactionService();
PseudoSecurityService securityService = new PseudoSecurityService();
SystemInstance.get().setComponent(SecurityService.class, securityService);
- container = new StatelessContainer("Stateless Container", transactionManager, securityService, new HashMap(), 10, 0, false);
+ container = new StatelessContainer("Stateless Container", transactionManager, securityService, 10, 0, false);
Properties props = new Properties();
props.put(container.getContainerID(), container);