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/07 04:25:47 UTC

svn commit: r493638 - in /incubator/openejb/trunk/openejb3/container/openejb-core/src/main: java/org/apache/openejb/alt/config/ java/org/apache/openejb/assembler/classic/ java/org/apache/openejb/assembler/dynamic/ java/org/apache/openejb/assembler/spri...

Author: dblevins
Date: Sat Jan  6 19:25:46 2007
New Revision: 493638

URL: http://svn.apache.org/viewvc?view=rev&rev=493638
Log:
Major refactor of the config code regarding construction of services

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
    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/assembler/classic/ConnectionManagerInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainerInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/IntraVmServerInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiContextInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ManagedConnectionFactoryInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/SecurityServiceInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceTypeConstants.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/TransactionServiceInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/dynamic/DynamicAssembler.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/OpenEjbConfigToSpring.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Messages.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/main/resources/org/apache/openejb/util/resources/Messages.properties

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java Sat Jan  6 19:25:46 2007
@@ -45,12 +45,11 @@
 import org.apache.openejb.assembler.classic.MdbContainerInfo;
 import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
 import org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory;
-import org.apache.openejb.assembler.classic.RoleMappingInfo;
-import org.apache.openejb.assembler.classic.SecurityRoleInfo;
 import org.apache.openejb.assembler.classic.SecurityServiceInfo;
 import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
 import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
 import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.jee.ApplicationClient;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.Logger;
@@ -64,6 +63,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Collections;
 
 public class ConfigurationFactory implements OpenEjbConfigurationFactory, ProviderDefaults {
 
@@ -72,9 +72,7 @@
 
     private String configLocation = "";
 
-    private List<String> containerIds = new ArrayList<String>();
-    private List<String> connectorIds = new ArrayList<String>();
-    private List<String> jndiProviderIds = new ArrayList<String>();
+    private List<String> serviceIds = new ArrayList<String>();
 
     public static OpenEjbConfiguration sys;
 
@@ -165,7 +163,7 @@
         sys.containerSystem.statefulContainers.addAll(sfsbContainers);
         sys.containerSystem.statelessContainers.addAll(slsbContainers);
         sys.containerSystem.mdbContainers.addAll(mdbContainers);
-        
+
         List<AppInfo> appInfos = new ArrayList<AppInfo>();
         {
             AppInfo appInfo = new AppInfo();
@@ -267,85 +265,21 @@
         if (provider == null || provider.length < 1) return;
 
         for (int i = 0; i < provider.length; i++) {
-            provider[i] = (JndiProvider) initService(provider[i], null);
-            ServiceProvider service = ServiceUtils.getServiceProvider(provider[i]);
-            checkType(service, provider[i], "JndiProvider");
-
-            JndiContextInfo jndiContextInfo = new JndiContextInfo();
-
-            jndiContextInfo.jndiContextId = provider[i].getId();
-
-            if (jndiProviderIds.contains(provider[i].getId())) {
-                handleException("conf.0103", configLocation, provider[i].getId());
-            }
-
-            jndiProviderIds.add(provider[i].getId());
+            JndiContextInfo info = createService(provider[i], new JndiContextInfo(), "Default Jndi Provider", JndiProvider.class);
 
-            jndiContextInfo.properties = ServiceUtils.assemblePropertiesFor("JndiProvider",
-                    provider[i].getId(),
-                    provider[i].getContent(),
-                    configLocation,
-                    service);
-
-            facilities.remoteJndiContexts.add(jndiContextInfo);
+            facilities.remoteJndiContexts.add(info);
         }
     }
 
-    private void initSecutityService(Openejb openejb, FacilitiesInfo facilities)
-            throws OpenEJBException {
-        SecurityService ss = openejb.getSecurityService();
-
-        ss = (SecurityService) initService(ss, DEFAULT_SECURITY_SERVICE, SecurityService.class);
-        ServiceProvider ssp = ServiceUtils.getServiceProvider(ss);
-        checkType(ssp, ss, "Security");
-
-        SecurityServiceInfo ssi = new SecurityServiceInfo();
-
-        ssi.codebase = ss.getJar();
-        ssi.description = ssp.getDescription();
-        ssi.displayName = ssp.getDisplayName();
-        ssi.factoryClassName = ssp.getClassName();
-        ssi.serviceName = ss.getId();
-        ssi.properties = ServiceUtils.assemblePropertiesFor("Security",
-                ss.getId(),
-                ss.getContent(),
-                configLocation,
-                ssp);
-
-// DMB: commented out 1/4/07
-//        for (SecurityRoleInfo role : sys.containerSystem.securityRoles) {
-//            RoleMappingInfo roleMappingInfo = new RoleMappingInfo();
-//            roleMappingInfo.logicalRoleNames.add(role.roleName);
-//            roleMappingInfo.physicalRoleNames.add(role.roleName);
-//            ssi.roleMappings.add(roleMappingInfo);
-//        }
+    private void initSecutityService(Openejb openejb, FacilitiesInfo facilities) throws OpenEJBException {
 
-        facilities.securityService = ssi;
+        facilities.securityService = createService(openejb.getSecurityService(), new SecurityServiceInfo(), DEFAULT_SECURITY_SERVICE, SecurityService.class);
     }
 
-    private void initTransactionService(Openejb openejb, FacilitiesInfo facilities)
-            throws OpenEJBException {
-        TransactionService ts = openejb.getTransactionService();
+    private void initTransactionService(Openejb openejb, FacilitiesInfo facilities) throws OpenEJBException {
+
+        facilities.transactionService = createService(openejb.getTransactionService(), new TransactionServiceInfo(), DEFAULT_TRANSACTION_MANAGER, TransactionService.class);
 
-        ts = (TransactionService) initService(ts,
-                DEFAULT_TRANSACTION_MANAGER,
-                TransactionService.class);
-        ServiceProvider service = ServiceUtils.getServiceProvider(ts);
-        checkType(service, ts, "Transaction");
-
-        TransactionServiceInfo tsi = new TransactionServiceInfo();
-
-        tsi.codebase = ts.getJar();
-        tsi.description = service.getDescription();
-        tsi.displayName = service.getDisplayName();
-        tsi.factoryClassName = service.getClassName();
-        tsi.serviceName = ts.getId();
-        tsi.properties = ServiceUtils.assemblePropertiesFor("Transaction",
-                ts.getId(),
-                ts.getContent(),
-                configLocation,
-                service);
-        facilities.transactionService = tsi;
     }
 
     private void initConnectors(Openejb openejb, FacilitiesInfo facilities)
@@ -357,31 +291,14 @@
 
         for (int i = 0; i < conn.length; i++) {
 
-            conn[i] = (Connector) initService(conn[i], DEFAULT_JDBC_DATABASE, Connector.class);
-            ServiceProvider service = ServiceUtils.getServiceProvider(conn[i]);
-            checkType(service, conn[i], "Connector");
-
-            ManagedConnectionFactoryInfo factory = new ManagedConnectionFactoryInfo();
+            ManagedConnectionFactoryInfo info = createService(conn[i], new ManagedConnectionFactoryInfo(), DEFAULT_JDBC_DATABASE, Connector.class);
 
             ConnectorInfo connectorInfo = new ConnectorInfo();
-            connectorInfo.connectorId = conn[i].getId();
+            connectorInfo.connectorId = info.id;
+            // TODO: This should not be hardcoded
             connectorInfo.connectionManagerId = DEFAULT_LOCAL_TX_CON_MANAGER;
-            connectorInfo.managedConnectionFactory = factory;
-
-            factory.id = conn[i].getId();
-            factory.className = service.getClassName();
-            factory.codebase = conn[i].getJar();
-            factory.properties = ServiceUtils.assemblePropertiesFor("Connector",
-                    conn[i].getId(),
-                    conn[i].getContent(),
-                    configLocation,
-                    service);
+            connectorInfo.managedConnectionFactory = (ManagedConnectionFactoryInfo) info;
 
-            if (connectorIds.contains(conn[i].getId())) {
-                handleException("conf.0103", configLocation, conn[i].getId());
-            }
-
-            connectorIds.add(conn[i].getId());
             facilities.connectors.add(connectorInfo);
         }
     }
@@ -389,118 +306,91 @@
     private void initConnectionManagers(Openejb openejb, FacilitiesInfo facilities)
             throws OpenEJBException {
 
-        ConnectionManagerInfo manager = new ConnectionManagerInfo();
-        ConnectionManager cm = openejb.getConnectionManager();
-
-        cm = (ConnectionManager) initService(cm,
-                DEFAULT_LOCAL_TX_CON_MANAGER,
-                ConnectionManager.class);
-
-        ServiceProvider service = ServiceUtils.getServiceProvider(cm);
-
-        checkType(service, cm, "ConnectionManager");
-
-        manager.connectionManagerId = cm.getId();
-        manager.className = service.getClassName();
-        manager.codebase = cm.getJar();
-        manager.properties = ServiceUtils.assemblePropertiesFor("ConnectionManager",
-                cm.getId(),
-                cm.getContent(),
-                configLocation,
-                service);
+        ConnectionManagerInfo service = createService(openejb.getConnectionManager(), new ConnectionManagerInfo(), DEFAULT_LOCAL_TX_CON_MANAGER, ConnectionManager.class);
 
-        facilities.connectionManagers.add(manager);
+        facilities.connectionManagers.add(service);
     }
 
     private void initProxyFactory(Openejb openejb, FacilitiesInfo facilities) throws OpenEJBException {
-        String defaultFactory = null;
+        String defaultId = null;
         try {
             String version = System.getProperty("java.vm.version");
             if (version.startsWith("1.1") || version.startsWith("1.2")) {
-                defaultFactory = "Default JDK 1.2 ProxyFactory";
+                defaultId = "Default JDK 1.2 ProxyFactory";
             } else {
-                defaultFactory = "Default JDK 1.3 ProxyFactory";
+                defaultId = "Default JDK 1.3 ProxyFactory";
             }
         } catch (Exception e) {
 
             throw new RuntimeException("Unable to determine the version of your VM.  No ProxyFactory Can be installed");
         }
 
-        ProxyFactory pf = openejb.getProxyFactory();
+        facilities.intraVmServer = createService(openejb.getProxyFactory(), new IntraVmServerInfo(), defaultId, ProxyFactory.class);
+
+    }
+
+    private <T extends ServiceInfo> T createService(Service service, T info, String defaultId, Class type) throws OpenEJBException {
+        service = (Service) initService(service, defaultId, type);
+        ServiceProvider provider = ServiceUtils.getServiceProvider(service);
+
+        String serviceType = type.getSimpleName();
+        checkType(provider, service, serviceType);
+
+        info.serviceType = type.getSimpleName();
+        info.codebase = service.getJar();
+        info.description = provider.getDescription();
+        info.displayName = provider.getDisplayName();
+        info.className = provider.getClassName();
+        info.id = service.getId();
+        info.properties = ServiceUtils.assemblePropertiesFor(serviceType, service.getId(), service.getContent(), configLocation, provider);
+        info.constructorArgs.addAll(parseConstructorArgs(provider));
+
+        String serviceId = serviceType + ":" + info.id;
+        if (serviceIds.contains(serviceId)) {
+            handleException("conf.0105", configLocation, info.id, serviceType);
+        }
+
+        serviceIds.add(serviceId);
 
-        pf = (ProxyFactory) initService(pf, defaultFactory, ProxyFactory.class);
-        ServiceProvider pfp = ServiceUtils.getServiceProvider(pf);
-        checkType(pfp, pf, "Proxy");
-
-        IntraVmServerInfo pfi = new IntraVmServerInfo();
-
-        facilities.intraVmServer = pfi;
-        pfi.proxyFactoryClassName = pfp.getClassName();
-
-        pfi.factoryName = pf.getId();
-        pfi.codebase = pf.getJar();
-        pfi.properties = ServiceUtils.assemblePropertiesFor("Proxy",
-                pf.getId(),
-                pf.getContent(),
-                configLocation,
-                pfp);
+        return info;
     }
 
     private void initContainerInfos(Openejb conf) throws OpenEJBException {
-//        Vector e = new Vector();
-//        Vector sf = new Vector();
-//        Vector sl = new Vector();
 
         Container[] containers = conf.getContainer();
 
-        for (Container c : containers) {
-            ContainerInfo ci;
-            if (c.getCtype().equals("STATELESS")) {
-                c = (Container) initService(c, DEFAULT_STATELESS_CONTAINER);
-                ci = new StatelessSessionContainerInfo();
-                slsbContainers.add((StatelessSessionContainerInfo) ci);
-            } else if (c.getCtype().equals("STATEFUL")) {
-                c = (Container) initService(c, DEFAULT_STATEFUL_CONTAINER);
-                ci = new StatefulSessionContainerInfo();
-                sfsbContainers.add((StatefulSessionContainerInfo) ci);
-            } else if (c.getCtype().equals("BMP_ENTITY")) {
-                c = (Container) initService(c, DEFAULT_BMP_CONTAINER);
-                ci = new EntityContainerInfo();
-                entityContainers.add((EntityContainerInfo) ci);
-            } else if (c.getCtype().equals("CMP_ENTITY")) {
-                c = (Container) initService(c, DEFAULT_CMP_CONTAINER);
-                ci = new EntityContainerInfo();
-                entityContainers.add((EntityContainerInfo) ci);
-            } else if (c.getCtype().equals("CMP2_ENTITY")) {
-                c = (Container) initService(c, DEFAULT_CMP2_CONTAINER);
-                ci = new EntityContainerInfo();
-                entityContainers.add((EntityContainerInfo) ci);
-            } else if (c.getCtype().equals("MESSAGE")) {
-                c = (Container) initService(c, DEFAULT_MDB_CONTAINER);
-                ci = new MdbContainerInfo();
-                mdbContainers.add((MdbContainerInfo) ci);
+        for (Container declaration : containers) {
+            ServiceInfo info;
+            String defaultId;
+            if (declaration.getCtype().equals("STATELESS")) {
+                defaultId = DEFAULT_STATELESS_CONTAINER;
+                info = new StatelessSessionContainerInfo();
+                slsbContainers.add((StatelessSessionContainerInfo) info);
+            } else if (declaration.getCtype().equals("STATEFUL")) {
+                defaultId = DEFAULT_STATEFUL_CONTAINER;
+                info = new StatefulSessionContainerInfo();
+                sfsbContainers.add((StatefulSessionContainerInfo) info);
+            } else if (declaration.getCtype().equals("BMP_ENTITY")) {
+                defaultId = DEFAULT_BMP_CONTAINER;
+                info = new EntityContainerInfo();
+                entityContainers.add((EntityContainerInfo) info);
+            } else if (declaration.getCtype().equals("CMP_ENTITY")) {
+                defaultId = DEFAULT_CMP_CONTAINER;
+                info = new EntityContainerInfo();
+                entityContainers.add((EntityContainerInfo) info);
+            } else if (declaration.getCtype().equals("CMP2_ENTITY")) {
+                defaultId = DEFAULT_CMP2_CONTAINER;
+                info = new EntityContainerInfo();
+                entityContainers.add((EntityContainerInfo) info);
+            } else if (declaration.getCtype().equals("MESSAGE")) {
+                defaultId = DEFAULT_MDB_CONTAINER;
+                info = new MdbContainerInfo();
+                mdbContainers.add((MdbContainerInfo) info);
             } else {
-                throw new OpenEJBException("Unrecognized contianer type " + c.getCtype());
-            }
-
-            ServiceProvider service = ServiceUtils.getServiceProvider(c);
-            checkType(service, c, "Container");
-
-            ci.containerName = c.getId();
-            ci.className = service.getClassName();
-            ci.codebase = c.getJar();
-            ci.properties = ServiceUtils.assemblePropertiesFor("Container",
-                    c.getId(),
-                    c.getContent(),
-                    configLocation,
-                    service);
-            ci.constructorArgs.addAll(parseConstructorArgs(service));
-            if (containerIds.contains(c.getId())) {
-                handleException("conf.0101", configLocation, c.getId());
+                throw new OpenEJBException("Unrecognized contianer type " + declaration.getCtype());
             }
 
-            containerIds.add(c.getId());
-
+            createService(declaration, info, defaultId, Container.class);
         }
 
         this.containers.addAll(sfsbContainers);
@@ -509,7 +399,7 @@
         this.containers.addAll(mdbContainers);
 
         for (ContainerInfo containerInfo : this.containers) {
-            containerTable.put(containerInfo.containerName, containerInfo);
+            containerTable.put(containerInfo.id, containerInfo);
         }
 
     }
@@ -517,7 +407,7 @@
     private List<String> parseConstructorArgs(ServiceProvider service) {
         String constructor = service.getConstructor();
         if (constructor == null) {
-            return null;
+            return Collections.EMPTY_LIST;
         }
         return Arrays.asList(constructor.split("[ ,]+"));
     }
@@ -540,10 +430,6 @@
         }
     }
 
-    public Service initService(Service service, String defaultName) throws OpenEJBException {
-        return initService(service, defaultName, null);
-    }
-
     public Service initService(Service service, String defaultName, Class type) throws OpenEJBException {
 
         if (service == null) {
@@ -575,35 +461,8 @@
         }
     }
 
-
-    /*------------------------------------------------------*/
-    /*    Methods for easy exception handling               */
-    /*------------------------------------------------------*/
-    public static void handleException(String errorCode,
-                                       Object arg0,
-                                       Object arg1,
-                                       Object arg2,
-                                       Object arg3)
-            throws OpenEJBException {
-        throw new OpenEJBException(messages.format(errorCode, arg0, arg1, arg2, arg3));
-    }
-
-    public static void handleException(String errorCode, Object arg0, Object arg1, Object arg2)
-            throws OpenEJBException {
-        throw new OpenEJBException(messages.format(errorCode, arg0, arg1, arg2));
-    }
-
-    public static void handleException(String errorCode, Object arg0, Object arg1)
-            throws OpenEJBException {
-        throw new OpenEJBException(messages.format(errorCode, arg0, arg1));
-    }
-
-    public static void handleException(String errorCode, Object arg0) throws OpenEJBException {
-        throw new OpenEJBException(messages.format(errorCode, arg0));
-    }
-
-    public static void handleException(String errorCode) throws OpenEJBException {
-        throw new OpenEJBException(messages.message(errorCode));
+    public static void handleException(String errorCode, Object... args) throws OpenEJBException {
+        throw new OpenEJBException(messages.format(errorCode, args));
     }
 }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java Sat Jan  6 19:25:46 2007
@@ -47,7 +47,7 @@
         for (ContainerInfo container : conf.containerSystem.containers) {
             out(1, "className    ", container.className);
             out(1, "codebase     ", container.codebase);
-            out(1, "containerName", container.containerName);
+            out(1, "containerName", container.id);
             out(1, "containerType", container.containerType);
             out(1, "description  ", container.description);
             out(1, "displayName  ", container.displayName);

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=493638&r1=493637&r2=493638
==============================================================================
--- 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 Sat Jan  6 19:25:46 2007
@@ -29,6 +29,7 @@
 import java.util.Map;
 import java.util.Properties;
 import javax.naming.Context;
+import javax.naming.NamingException;
 import javax.persistence.EntityManagerFactory;
 import javax.resource.spi.ConnectionManager;
 import javax.resource.spi.ManagedConnectionFactory;
@@ -44,6 +45,7 @@
 import org.apache.openejb.core.CoreDeploymentInfo;
 import org.apache.openejb.core.TemporaryClassLoader;
 import org.apache.openejb.core.TransactionManagerWrapper;
+import org.apache.openejb.core.CoreContainerSystem;
 import org.apache.openejb.javaagent.Agent;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.persistence.GlobalJndiDataSourceResolver;
@@ -107,20 +109,23 @@
         config = configFactory.getOpenEjbConfiguration();
         /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
 
+        installNaming();
+    }
+
+    public static void installNaming() {
         /* Add IntraVM JNDI service /////////////////////*/
         Properties systemProperties = System.getProperties();
         synchronized (systemProperties) {
-            String str = systemProperties.getProperty(javax.naming.Context.URL_PKG_PREFIXES);
+            String str = systemProperties.getProperty(Context.URL_PKG_PREFIXES);
             String naming = "org.apache.openejb.core.ivm.naming";
             if (str == null) {
                 str = naming;
             } else if (str.indexOf(naming) == -1) {
                 str = naming + ":" + str;
             }
-            systemProperties.setProperty(javax.naming.Context.URL_PKG_PREFIXES, str);
+            systemProperties.setProperty(Context.URL_PKG_PREFIXES, str);
         }
-        /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
-    }
+        /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/}
 
     private static ThreadLocal<Map<String, Object>> context = new ThreadLocal<Map<String, Object>>();
 
@@ -213,7 +218,7 @@
 
         containerSystem = new org.apache.openejb.core.CoreContainerSystem();
 
-        createTransactionManager(configInfo);
+        createTransactionManager(configInfo.facilities.transactionService);
 
         createSecurityService(configInfo);
 
@@ -222,7 +227,7 @@
         // connectors are optional in the openejb_config.dtd
         for (ConnectionManagerInfo cmInfo : configInfo.facilities.connectionManagers) {
             ConnectionManager connectionManager = assembleConnectionManager(cmInfo);
-            connectionManagerMap.put(cmInfo.connectionManagerId, connectionManager);
+            connectionManagerMap.put(cmInfo.id, connectionManager);
         }
 
         // connectors are optional in the openejb_config.dtd
@@ -239,8 +244,6 @@
             containerSystem.getJNDIContext().bind("java:openejb/connector/" + conInfo.connectorId, reference);
         }
 
-        JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
-
         PersistenceClassLoaderHandler persistenceClassLoaderHandler = new PersistenceClassLoaderHandler() {
             public void addTransformer(ClassLoader classLoader, ClassFileTransformer classFileTransformer) {
                 Instrumentation instrumentation = Agent.getInstrumentation();
@@ -340,6 +343,8 @@
             }
         }
 
+        JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
+
         // Containers
         ContainersBuilder containersBuilder = new ContainersBuilder(containerSystemInfo, ((AssemblerTool)this).props);
         List containers = (List) containersBuilder.buildContainers(deployments2);
@@ -357,7 +362,7 @@
         /*[4]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
         for (JndiContextInfo contextInfo : configInfo.facilities.remoteJndiContexts) {
             javax.naming.InitialContext cntx = assembleRemoteJndiContext(contextInfo);
-            containerSystem.getJNDIContext().bind("java:openejb/remote_jndi_contexts/" + contextInfo.jndiContextId, cntx);
+            containerSystem.getJNDIContext().bind("java:openejb/remote_jndi_contexts/" + contextInfo.id, cntx);
         }
 
        return containerSystem;
@@ -372,27 +377,48 @@
     }
 
     private void createSecurityService(OpenEjbConfiguration configInfo) throws Exception {
-        SecurityServiceInfo service = configInfo.facilities.securityService;
-        ObjectRecipe securityServiceRecipe = new ObjectRecipe(service.factoryClassName, service.properties);
-        securityService = (SecurityService) securityServiceRecipe.create();
+        securityService = create(configInfo.facilities.securityService);
+
+        install(this.containerSystem, securityService);
 
         props.put(SecurityService.class.getName(), securityService);
+    }
+
+    public static SecurityService install(CoreContainerSystem containerSystem, SecurityService securityService) throws NamingException {
         containerSystem.getJNDIContext().bind("java:openejb/SecurityService", securityService);
+        SystemInstance.get().setComponent(SecurityService.class, securityService);
+        return securityService;
     }
 
-    private void createTransactionManager(OpenEjbConfiguration configInfo) throws Exception {
-        TransactionServiceInfo service = configInfo.facilities.transactionService;
+    public static SecurityService create(SecurityServiceInfo service) {
+        ObjectRecipe securityServiceRecipe = new ObjectRecipe(service.className, service.properties);
+        SecurityService securityService = (SecurityService) securityServiceRecipe.create();
+        return securityService;
+    }
 
-        ObjectRecipe txServiceRecipe = new ObjectRecipe(service.factoryClassName, service.properties);
-        ObjectRecipe txManagerWrapperRecipe = new ObjectRecipe(TransactionManagerWrapper.class, new String[]{"transactionManager"},new Class[]{TransactionManager.class});
+    private void createTransactionManager(TransactionServiceInfo transactionService) throws NamingException {
+        TransactionManager unwrappedTransactionManager = create(transactionService);
+        TransactionManager transactionManager = install(this.containerSystem, unwrappedTransactionManager);
 
-        txManagerWrapperRecipe.setProperty("transactionManager", new StaticRecipe(txServiceRecipe.create()));
+        getContext().put(TransactionManager.class.getName(), transactionManager);
+        props.put(TransactionManager.class.getName(), transactionManager);
+        this.transactionManager = transactionManager;
+    }
 
-        transactionManager = (TransactionManager) txManagerWrapperRecipe.create();
+    public static TransactionManager install(CoreContainerSystem containerSystem, TransactionManager unwrappedTransactionManager) throws NamingException {
+        ObjectRecipe txManagerWrapperRecipe = new ObjectRecipe(TransactionManagerWrapper.class, new String[]{"transactionManager"},new Class[]{TransactionManager.class});
+        txManagerWrapperRecipe.setProperty("transactionManager", new StaticRecipe(unwrappedTransactionManager));
+        TransactionManager transactionManager = (TransactionManager) txManagerWrapperRecipe.create();
 
-        props.put(TransactionManager.class.getName(), transactionManager);
-        getContext().put(TransactionManager.class.getName(), transactionManager);
         SystemInstance.get().setComponent(TransactionManager.class, transactionManager);
         containerSystem.getJNDIContext().bind("java:openejb/TransactionManager", transactionManager);
+        return transactionManager;
+    }
+
+    public static TransactionManager create(TransactionServiceInfo transactionService) {
+        TransactionServiceInfo service = transactionService;
+        ObjectRecipe txServiceRecipe = new ObjectRecipe(service.className, service.properties);
+        TransactionManager unwrappedTransactionManager = (TransactionManager) txServiceRecipe.create();
+        return unwrappedTransactionManager;
     }
 }

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=493638&r1=493637&r2=493638
==============================================================================
--- 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 Sat Jan  6 19:25:46 2007
@@ -68,7 +68,7 @@
             return ic;
         } catch (javax.naming.NamingException ne) {
 
-            throw new org.apache.openejb.OpenEJBException("The remote JNDI EJB references for remote-jndi-contexts = " + context.jndiContextId + "+ could not be resolved.", ne);
+            throw new org.apache.openejb.OpenEJBException("The remote JNDI EJB references for remote-jndi-contexts = " + context.id + "+ could not be resolved.", ne);
         }
     }
 
@@ -80,7 +80,7 @@
          */
         Class managerClass = SafeToolkit.loadClass(cmInfo.className, cmInfo.codebase);
 
-        checkImplementation(CONNECTION_MANAGER, managerClass, "ConnectionManager", cmInfo.connectionManagerId);
+        checkImplementation(CONNECTION_MANAGER, managerClass, "ConnectionManager", cmInfo.id);
 
         ConnectionManager connectionManager = (ConnectionManager) toolkit.newInstance(managerClass);
 
@@ -124,9 +124,9 @@
     }
 
     public void applyProxyFactory(IntraVmServerInfo ivmInfo) throws OpenEJBException {
-        Class factoryClass = SafeToolkit.loadClass(ivmInfo.proxyFactoryClassName, ivmInfo.codebase);
+        Class factoryClass = SafeToolkit.loadClass(ivmInfo.className, ivmInfo.codebase);
 
-        checkImplementation(PROXY_FACTORY, factoryClass, "ProxyFactory", ivmInfo.factoryName);
+        checkImplementation(PROXY_FACTORY, factoryClass, "ProxyFactory", ivmInfo.id);
 
         ProxyFactory factory = (ProxyFactory) toolkit.newInstance(factoryClass);
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ConnectionManagerInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ConnectionManagerInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ConnectionManagerInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ConnectionManagerInfo.java Sat Jan  6 19:25:46 2007
@@ -16,13 +16,6 @@
  */
 package org.apache.openejb.assembler.classic;
 
-import java.util.Properties;
-
-public class ConnectionManagerInfo extends InfoObject {
-
-    public String className;
-    public String codebase;
-    public String connectionManagerId;
-    public Properties properties;
+public class ConnectionManagerInfo extends ServiceInfo {
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainerInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainerInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainerInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainerInfo.java Sat Jan  6 19:25:46 2007
@@ -20,7 +20,7 @@
 import java.util.List;
 import java.util.ArrayList;
 
-public abstract class ContainerInfo extends InfoObject {
+public abstract class ContainerInfo extends ServiceInfo {
 
     public static final int ENTITY_CONTAINER = 0;
     
@@ -30,14 +30,7 @@
 
     public static final int STATELESS_SESSION_CONTAINER = 3;
 
-    public String description;
-    public String displayName;
-    public String containerName;
-    public String codebase;
-    public String className;
     public final List<EnterpriseBeanInfo> ejbeans = new ArrayList<EnterpriseBeanInfo>();
-    public Properties properties;
-    public final List<String> constructorArgs = new ArrayList<String>();
 
     public int containerType;
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java Sat Jan  6 19:25:46 2007
@@ -77,7 +77,7 @@
     }
 
     private Container buildContainer(ContainerInfo containerInfo, Map<String, CoreDeploymentInfo> deploymentsList) throws OpenEJBException {
-        String containerName = containerInfo.containerName;
+        String containerName = containerInfo.id;
         ContainerInfo service = containerInfo;
 
         Properties systemProperties = System.getProperties();

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/IntraVmServerInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/IntraVmServerInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/IntraVmServerInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/IntraVmServerInfo.java Sat Jan  6 19:25:46 2007
@@ -16,13 +16,6 @@
  */
 package org.apache.openejb.assembler.classic;
 
-import java.util.Properties;
-
-public class IntraVmServerInfo extends InfoObject {
-
-    public String proxyFactoryClassName;
-    public String codebase;
-    public String factoryName;
-    public Properties properties;
+public class IntraVmServerInfo extends ServiceInfo {
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiContextInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiContextInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiContextInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiContextInfo.java Sat Jan  6 19:25:46 2007
@@ -16,7 +16,6 @@
  */
 package org.apache.openejb.assembler.classic;
 
-public class JndiContextInfo extends InfoObject {
-    public String jndiContextId;
-    public java.util.Properties properties;
+public class JndiContextInfo extends ServiceInfo {
+
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ManagedConnectionFactoryInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ManagedConnectionFactoryInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ManagedConnectionFactoryInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ManagedConnectionFactoryInfo.java Sat Jan  6 19:25:46 2007
@@ -18,11 +18,6 @@
 
 import java.util.Properties;
 
-public class ManagedConnectionFactoryInfo extends InfoObject {
-
-    public String className;
-    public String codebase;
-    public String id;
-    public Properties properties;
+public class ManagedConnectionFactoryInfo extends ServiceInfo {
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/SecurityServiceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/SecurityServiceInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/SecurityServiceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/SecurityServiceInfo.java Sat Jan  6 19:25:46 2007
@@ -23,8 +23,4 @@
 
     public final List<RoleMappingInfo> roleMappings = new ArrayList<RoleMappingInfo>();
 
-    public SecurityServiceInfo() {
-        serviceType = SECURITY_SERVICE;
-    }
-
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceInfo.java Sat Jan  6 19:25:46 2007
@@ -17,15 +17,18 @@
 package org.apache.openejb.assembler.classic;
 
 import java.util.Properties;
+import java.util.List;
+import java.util.ArrayList;
 
 public class ServiceInfo extends InfoObject implements ServiceTypeConstants {
 
-    public int serviceType;
+    public String serviceType;
     public String description;
-    public String serviceName;
+    public String id;
     public String displayName;
-    public String factoryClassName;
+    public String className;
     public String codebase;
     public Properties properties;
+    public final List<String> constructorArgs = new ArrayList<String>();
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceTypeConstants.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceTypeConstants.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceTypeConstants.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ServiceTypeConstants.java Sat Jan  6 19:25:46 2007
@@ -18,8 +18,12 @@
 
 public interface ServiceTypeConstants {
 
-    public static final int PERSISTENCE_SERVICE = 0;
+    public static final int CONTAINER = 0;
     public static final int SECURITY_SERVICE = 1;
     public static final int TRANSACTION_SERVICE = 2;
+    public static final int MANAGED_CONNECTION_FACTORY = 3;
+    public static final int CONNECTION_MANAGER = 4;
+    public static final int PROXY_FACTORY = 5;
+
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/TransactionServiceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/TransactionServiceInfo.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/TransactionServiceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/TransactionServiceInfo.java Sat Jan  6 19:25:46 2007
@@ -17,8 +17,5 @@
 package org.apache.openejb.assembler.classic;
 
 public class TransactionServiceInfo extends ServiceInfo {
-    public TransactionServiceInfo() {
-        serviceType = TRANSACTION_SERVICE;
-    }
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/dynamic/DynamicAssembler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/dynamic/DynamicAssembler.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/dynamic/DynamicAssembler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/dynamic/DynamicAssembler.java Sat Jan  6 19:25:46 2007
@@ -16,30 +16,68 @@
  */
 package org.apache.openejb.assembler.dynamic;
 
-import org.apache.openejb.assembler.classic.ContainerInfo;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.spi.SecurityService;
+import org.apache.openejb.core.CoreContainerSystem;
+import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.*;
-import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.ConnectionManagerInfo;
 import org.apache.openejb.assembler.classic.ConnectorInfo;
-import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.alt.config.EjbModule;
-import org.apache.openejb.alt.config.ClientModule;
-import org.apache.openejb.alt.config.AppModule;
-import org.apache.openejb.alt.config.DeploymentModule;
+import org.apache.openejb.assembler.classic.ContainerInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.InfoObject;
+import org.apache.openejb.assembler.classic.Assembler;
 
-import java.net.URL;
+import javax.transaction.TransactionManager;
+import javax.naming.NamingException;
+import java.util.Properties;
 
 /**
  * @version $Rev$ $Date$
  */
 public class DynamicAssembler {
+    private final CoreContainerSystem system;
+    private final TransactionManager transactionManager;
+    private final SecurityService securityService;
 
     public DynamicAssembler() {
+        this(null, null);
     }
 
-    public void add(InfoObject info) throws OpenEJBException {
+    public DynamicAssembler(TransactionManager transactionManager, SecurityService securityService) {
+
+        Assembler.installNaming();
 
+        system = new CoreContainerSystem();
+        try {
+            if (transactionManager == null){
+                // TODO: get some defaults
+                TransactionServiceInfo transactionServiceInfo = new TransactionServiceInfo();
+                transactionServiceInfo.className = "org.apache.geronimo.transaction.manager.GeronimoTransactionManager";
+                transactionServiceInfo.properties = new Properties();
+//                transactionServiceInfo.serviceName = ""
+                transactionManager = Assembler.create(transactionServiceInfo);
+            }
+            this.transactionManager = transactionManager = Assembler.install(system, transactionManager);
+        } catch (NamingException e) {
+            throw new RuntimeException("Could not install TransactionManager", e);
+        }
+
+        try {
+            if (securityService == null){
+                // TODO: get some defaults
+                SecurityServiceInfo securityServiceInfo = new SecurityServiceInfo();
+                securityService = Assembler.create(securityServiceInfo);
+            }
+            this.securityService = securityService = Assembler.install(system, securityService);
+        } catch (NamingException e) {
+            throw new RuntimeException("Could not install SecurityService", e);
+        }
+    }
+
+    public void add(InfoObject info) throws OpenEJBException {
     }
-    
+
     public void addContainer(ContainerInfo info) throws OpenEJBException {
     }
 
@@ -58,38 +96,25 @@
     public void addClient(ClientInfo info) throws OpenEJBException {
     }
 
-    public static class ModuleDeployer {
-
-        public InfoObject deploy(DeploymentModule url) throws OpenEJBException {
-            return null;
-        }
-
-        public AppInfo deployApp(AppModule ejbModule) throws OpenEJBException {
-            return null;
-        }
+    public void add(InfoObject info, ClassLoader classLoader) throws OpenEJBException {
+    }
 
-        public EjbJarInfo deployEjbJar(EjbModule ejbModule) throws OpenEJBException {
-            return null;
-        }
+    public void addContainer(ContainerInfo info, ClassLoader classLoader) throws OpenEJBException {
+    }
 
-        public ClientInfo deployClient(ClientModule clientModule) throws OpenEJBException {
-            return null;
-        }
+    public void addConnector(ConnectorInfo info, ClassLoader classLoader) throws OpenEJBException {
+    }
 
-        public InfoObject deploy(URL url) throws OpenEJBException {
-            return null;
-        }
+    public void addConnectionManager(ConnectionManagerInfo info, ClassLoader classLoader) throws OpenEJBException {
+    }
 
-        public AppInfo deployApp(URL url) throws OpenEJBException {
-            return null;
-        }
+    public void addEjbJar(EjbJarInfo info, ClassLoader classLoader) throws OpenEJBException {
+    }
 
-        public EjbJarInfo deployEjbJar(URL url) throws OpenEJBException {
-            return null;
-        }
+    public void addApplication(AppInfo info, ClassLoader classLoader) throws OpenEJBException {
+    }
 
-        public ClientInfo deployClient(URL url) throws OpenEJBException {
-            return null;
-        }
+    public void addClient(ClientInfo info, ClassLoader classLoader) throws OpenEJBException {
     }
+
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/OpenEjbConfigToSpring.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/OpenEjbConfigToSpring.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/OpenEjbConfigToSpring.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/spring/OpenEjbConfigToSpring.java Sat Jan  6 19:25:46 2007
@@ -35,8 +35,6 @@
 import org.apache.openejb.assembler.classic.EntityBeanInfo;
 import org.apache.openejb.assembler.classic.EnvEntryInfo;
 import org.apache.openejb.assembler.classic.MethodInfo;
-import org.apache.openejb.assembler.classic.MethodPermissionInfo;
-import org.apache.openejb.assembler.classic.MethodTransactionInfo;
 import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
 import org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory;
 import org.apache.openejb.assembler.classic.QueryInfo;

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Messages.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Messages.java?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Messages.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Messages.java Sat Jan  6 19:25:46 2007
@@ -66,31 +66,11 @@
         _rbFormats.put(_resourceName, _formats);
     }
 
-    public String format(String message, Object arg1) {
-        return format(message, new Object[]{arg1});
-    }
-
-    public String format(String message, Object arg1, Object arg2) {
-        return format(message, new Object[]{arg1, arg2});
-    }
-
-    public String format(String message, Object arg1, Object arg2, Object arg3) {
-        return format(message, new Object[]{arg1, arg2, arg3});
-    }
-
-    public String format(String message, Object arg1, Object arg2, Object arg3, Object arg4) {
-        return format(message, new Object[]{arg1, arg2, arg3, arg4});
-    }
-
-    public String format(String message, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) {
-        return format(message, new Object[]{arg1, arg2, arg3, arg4, arg5});
-    }
-
     public String format(String message) {
         return message(message);
     }
 
-    public String format(String message, Object[] args) {
+    public String format(String message, Object... args) {
         if (_locale != _globalLocale) {
             synchronized (Messages.class) {
                 init();

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=493638&r1=493637&r2=493638
==============================================================================
--- 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 Sat Jan  6 19:25:46 2007
@@ -210,7 +210,7 @@
   -->
   <ServiceProvider
           id="Default JDK 1.2 ProxyFactory"
-          provider-type="Proxy"
+          provider-type="ProxyFactory"
           class-name="org.apache.openejb.util.proxy.Jdk12ProxyFactory"/>
 
   <!--
@@ -220,7 +220,7 @@
   -->
   <ServiceProvider
           id="Default JDK 1.3 ProxyFactory"
-          provider-type="Proxy"
+          provider-type="ProxyFactory"
           class-name="org.apache.openejb.util.proxy.Jdk13ProxyFactory"/>
 
   <!--
@@ -230,7 +230,7 @@
   -->
   <ServiceProvider
           id="Default Security Service"
-          provider-type="Security"
+          provider-type="SecurityService"
           class-name="org.apache.openejb.ri.sp.PseudoSecurityService"/>
 
   <!--
@@ -240,7 +240,7 @@
   -->
   <ServiceProvider
           id="Default Transaction Manager"
-          provider-type="Transaction"
+          provider-type="TransactionService"
           class-name="org.apache.geronimo.transaction.manager.GeronimoTransactionManager"/>
 
   <!--

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties?view=diff&rev=493638&r1=493637&r2=493638
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties Sat Jan  6 19:25:46 2007
@@ -168,6 +168,7 @@
 conf.0101=Invalid configuration {0}.  ID {1} is not unique!  Container IDs cannot be duplicated.
 conf.0103=Invalid configuration {0}.  ID {1} is not unique!  JndiProvider IDs cannot be duplicated.
 conf.0104=Invalid configuration {0}.  ID {1} is not unique!  Connector IDs cannot be duplicated.
+conf.0105=Invalid configuration {0}.  ID {1} is not unique!  {2} IDs cannot be duplicated.
 conf.1040=Cannot validate the OpenEJB configuration data. Received message: {1}
 conf.1050=Cannot marshal the OpenEJB configuration data to file {0}. Received message: {1}
 conf.1060=Cannot write the OpenEJB configuration file {0}. Received message: {1}