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();
     }