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/10 23:00:46 UTC
svn commit: r495004 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
assembler/classic/Assembler.java assembler/classic/AssemblerTool.java
util/proxy/Jdk13ProxyFactory.java
Author: dblevins
Date: Wed Jan 10 14:00:45 2007
New Revision: 495004
URL: http://svn.apache.org/viewvc?view=rev&rev=495004
Log:
build proxy factory with xbean-reflect
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/assembler/classic/AssemblerTool.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.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=495004&r1=495003&r2=495004
==============================================================================
--- 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 14:00:45 2007
@@ -35,6 +35,8 @@
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.OpenEJBErrorHandler;
import org.apache.openejb.util.SafeToolkit;
+import org.apache.openejb.util.proxy.ProxyFactory;
+import org.apache.openejb.util.proxy.ProxyManager;
import org.apache.xbean.finder.ResourceFinder;
import org.apache.xbean.recipe.ObjectRecipe;
import org.apache.xbean.recipe.StaticRecipe;
@@ -198,6 +200,10 @@
*/
public org.apache.openejb.core.CoreContainerSystem buildContainerSystem(OpenEjbConfiguration configInfo) throws Exception {
+ containerSystem = new org.apache.openejb.core.CoreContainerSystem();
+
+ ContainerSystemInfo containerSystemInfo = configInfo.containerSystem;
+
/*[1] Assemble ProxyFactory //////////////////////////////////////////
This operation must take place first because of interdependencies.
@@ -206,31 +212,18 @@
Naming Service for OpenEJB. This requires that a proxy for the deployed bean's
EJBHome be created. The proxy requires that the default proxy factory is set.
*/
-
- this.applyProxyFactory(configInfo.facilities.intraVmServer);
- /*[1]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
-
-
- ContainerSystemInfo containerSystemInfo = configInfo.containerSystem;
-
-
- containerSystem = new org.apache.openejb.core.CoreContainerSystem();
+ createProxyFactory(configInfo.facilities.intraVmServer);
createTransactionManager(configInfo.facilities.transactionService);
createSecurityService(configInfo.facilities.securityService);
- /*[6] Assemble Connector(s) //////////////////////////////////////////*/
- Map<String, ConnectionManager> connectionManagerMap = new HashMap<String, ConnectionManager>();
- // connectors are optional in the openejb_config.dtd
- for (ConnectionManagerInfo cmInfo : configInfo.facilities.connectionManagers) {
- ConnectionManager connectionManager = createConnectionManager(cmInfo);
- connectionManagerMap.put(cmInfo.id, connectionManager);
+ for (ConnectionManagerInfo connectionManagerInfo : configInfo.facilities.connectionManagers) {
+ createConnectionManager(connectionManagerInfo);
}
- // connectors are optional in the openejb_config.dtd
- for (ConnectorInfo conInfo : configInfo.facilities.connectors) {
- createConnector(connectionManagerMap, conInfo);
+ for (ConnectorInfo connectorInfo : configInfo.facilities.connectors) {
+ createConnector(connectorInfo);
}
PersistenceClassLoaderHandler persistenceClassLoaderHandler = new PersistenceClassLoaderHandler() {
@@ -250,6 +243,7 @@
HashMap<String, DeploymentInfo> deployments2 = new HashMap<String, DeploymentInfo>();
for (AppInfo appInfo : containerSystemInfo.applications) {
+
List<URL> jars = new ArrayList<URL>();
for (EjbJarInfo info : appInfo.ejbJars) {
jars.add(toUrl(info.jarPath));
@@ -357,7 +351,31 @@
return containerSystem;
}
- private void createConnector(Map<String, ConnectionManager> connectionManagerMap, ConnectorInfo conInfo) throws OpenEJBException, NamingException {
+ private void createProxyFactory(IntraVmServerInfo serviceInfo) throws OpenEJBException, NamingException {
+
+ ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.constructorArgs.toArray(new String[0]), null);
+ serviceRecipe.setAllProperties(serviceInfo.properties);
+
+ Object service = serviceRecipe.create();
+
+ Class interfce = serviceInterfaces.get(serviceInfo.serviceType);
+ checkImplementation(interfce, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
+
+ ProxyManager.registerFactory(serviceInfo.id, (ProxyFactory) service);
+ ProxyManager.setDefaultFactory(serviceInfo.id);
+
+ this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType + "/" + serviceInfo.id, service);
+
+ SystemInstance.get().setComponent(interfce, service);
+
+ getContext().put(interfce.getName(), service);
+
+ props.put(interfce.getName(), service);
+ props.put(serviceInfo.serviceType, service);
+ props.put(serviceInfo.id, service);
+ }
+
+ private void createConnector(ConnectorInfo conInfo) throws OpenEJBException, NamingException {
ManagedConnectionFactoryInfo serviceInfo = conInfo.managedConnectionFactory;
ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.constructorArgs.toArray(new String[0]), null);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java?view=diff&rev=495004&r1=495003&r2=495004
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java Wed Jan 10 14:00:45 2007
@@ -81,19 +81,6 @@
}
}
- public void applyProxyFactory(IntraVmServerInfo ivmInfo) throws OpenEJBException {
- Class factoryClass = SafeToolkit.loadClass(ivmInfo.className, ivmInfo.codebase);
-
- checkImplementation(PROXY_FACTORY, factoryClass, "ProxyFactory", ivmInfo.id);
-
- ProxyFactory factory = (ProxyFactory) toolkit.newInstance(factoryClass);
-
- factory.init(ivmInfo.properties);
- ProxyManager.registerFactory("ivm_server", factory);
- ProxyManager.setDefaultFactory("ivm_server");
-
- }
-
public void applyProperties(Object target, Properties props) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException, java.lang.NoSuchMethodException {
if (props != null /*&& props.size()>0*/) {
Method method = target.getClass().getMethod("init", Properties.class);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java?view=diff&rev=495004&r1=495003&r2=495004
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13ProxyFactory.java Wed Jan 10 14:00:45 2007
@@ -27,6 +27,10 @@
* @org.apache.xbean.XBean
*/
public class Jdk13ProxyFactory implements ProxyFactory {
+
+ public Jdk13ProxyFactory() {
+ }
+
public void init(Properties props) throws OpenEJBException {
start();
}