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 07:58:05 UTC

svn commit: r494744 - in /incubator/openejb/trunk/openejb3/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ main/java/org/apache/openejb/resource/ main/java/org/apache/openejb/resource/jdbc/ main/resources/META-INF/org.apache...

Author: dblevins
Date: Tue Jan  9 22:58:04 2007
New Revision: 494744

URL: http://svn.apache.org/viewvc?view=rev&rev=494744
Log:
Construct transaction manager, security service, connection manager, and connectors via 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/resource/SharedLocalConnectionManager.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.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/cmp/jpa/JpaTest.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=494744&r1=494743&r2=494744
==============================================================================
--- 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 Tue Jan  9 22:58:04 2007
@@ -16,25 +16,6 @@
  */
 package org.apache.openejb.assembler.classic;
 
-import java.io.File;
-import java.io.IOException;
-import java.lang.instrument.ClassFileTransformer;
-import java.lang.instrument.Instrumentation;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-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;
-import javax.transaction.TransactionManager;
-
 import org.apache.openejb.Container;
 import org.apache.openejb.DeploymentInfo;
 import org.apache.openejb.EnvProps;
@@ -45,7 +26,6 @@
 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;
@@ -60,10 +40,30 @@
 import org.apache.xbean.recipe.ObjectRecipe;
 import org.apache.xbean.recipe.StaticRecipe;
 
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.persistence.EntityManagerFactory;
+import javax.resource.spi.ConnectionManager;
+import javax.resource.spi.ManagedConnectionFactory;
+import javax.transaction.TransactionManager;
+import java.io.File;
+import java.io.IOException;
+import java.lang.instrument.ClassFileTransformer;
+import java.lang.instrument.Instrumentation;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 public class Assembler extends AssemblerTool implements org.apache.openejb.spi.Assembler {
 
     public static final Logger logger = Logger.getInstance("OpenEJB.startup", Assembler.class.getPackage().getName());
 
+
     private org.apache.openejb.core.CoreContainerSystem containerSystem;
     private TransactionManager transactionManager;
     private org.apache.openejb.spi.SecurityService securityService;
@@ -97,7 +97,6 @@
 
     public void init(Properties props) throws OpenEJBException {
         this.props = props;
-
         /* Get Configuration ////////////////////////////*/
         String className = props.getProperty(EnvProps.CONFIGURATION_FACTORY);
         if (className == null) {
@@ -135,7 +134,7 @@
 
     public static Map<String, Object> getContext() {
         Map<String, Object> map = context.get();
-        if (map == null){
+        if (map == null) {
             map = new HashMap<String, Object>();
             context.set(map);
         }
@@ -220,28 +219,19 @@
 
         createTransactionManager(configInfo.facilities.transactionService);
 
-        createSecurityService(configInfo);
+        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 = assembleConnectionManager(cmInfo);
+            ConnectionManager connectionManager = createConnectionManager(cmInfo);
             connectionManagerMap.put(cmInfo.id, connectionManager);
         }
 
         // connectors are optional in the openejb_config.dtd
         for (ConnectorInfo conInfo : configInfo.facilities.connectors) {
-            ConnectionManager connectionManager = connectionManagerMap.get(conInfo.connectionManagerId);
-            if (connectionManager == null) {
-                throw new RuntimeException(INVALID_CONNECTION_MANAGER_ERROR + conInfo.connectorId);
-            }
-
-            ManagedConnectionFactory managedConnectionFactory = assembleManagedConnectionFactory(conInfo.managedConnectionFactory);
-
-            ConnectorReference reference = new ConnectorReference(connectionManager, managedConnectionFactory);
-
-            containerSystem.getJNDIContext().bind("java:openejb/connector/" + conInfo.connectorId, reference);
+            createConnector(connectionManagerMap, conInfo);
         }
 
         PersistenceClassLoaderHandler persistenceClassLoaderHandler = new PersistenceClassLoaderHandler() {
@@ -319,12 +309,12 @@
             for (ClientInfo clientInfo : appInfo.clients) {
                 JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(clientInfo.jndiEnc);
                 Context context = (Context) jndiEncBuilder.build().lookup("env");
-                containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/comp/env", context);
-                if (clientInfo.codebase != null){
-                    containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/comp/path", clientInfo.codebase);
+                containerSystem.getJNDIContext().bind("java:openejb/client/" + clientInfo.moduleId + "/comp/env", context);
+                if (clientInfo.codebase != null) {
+                    containerSystem.getJNDIContext().bind("java:openejb/client/" + clientInfo.moduleId + "/comp/path", clientInfo.codebase);
                 }
                 if (clientInfo.mainClass != null) {
-                    containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/comp/mainClass", clientInfo.mainClass);
+                    containerSystem.getJNDIContext().bind("java:openejb/client/" + clientInfo.moduleId + "/comp/mainClass", clientInfo.mainClass);
                 }
                 ArrayList<Injection> injections = new ArrayList<Injection>();
                 JndiEncInfo jndiEnc = clientInfo.jndiEnc;
@@ -335,18 +325,18 @@
                             Injection injection = new Injection(info.referenceName, target.propertyName, targetClass);
                             injections.add(injection);
                         } catch (ClassNotFoundException e) {
-                            logger.error("Injection Target invalid: class="+target.className+", name="+target.propertyName+".  Exception: "+e.getMessage(), e);
+                            logger.error("Injection Target invalid: class=" + target.className + ", name=" + target.propertyName + ".  Exception: " + e.getMessage(), e);
                         }
                     }
                 }
-                containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/comp/injections", injections);
+                containerSystem.getJNDIContext().bind("java:openejb/client/" + clientInfo.moduleId + "/comp/injections", injections);
             }
         }
 
         JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
 
         // Containers
-        ContainersBuilder containersBuilder = new ContainersBuilder(containerSystemInfo, ((AssemblerTool)this).props);
+        ContainersBuilder containersBuilder = new ContainersBuilder(containerSystemInfo, ((AssemblerTool) this).props);
         List containers = (List) containersBuilder.buildContainers(deployments2);
         for (int i1 = 0; i1 < containers.size(); i1++) {
             Container container1 = (Container) containers.get(i1);
@@ -365,63 +355,114 @@
             containerSystem.getJNDIContext().bind("java:openejb/remote_jndi_contexts/" + contextInfo.id, cntx);
         }
 
-       return containerSystem;
+        return containerSystem;
     }
 
-    private URL toUrl(String jarPath) throws OpenEJBException {
-        try {
-            return new File(jarPath).toURL();
-        } catch (MalformedURLException e) {
-            throw new OpenEJBException(messages.format("cl0001", jarPath, e.getMessage()));
+    private void createConnector(Map<String, ConnectionManager> connectionManagerMap, ConnectorInfo conInfo) throws OpenEJBException, NamingException {
+        ManagedConnectionFactoryInfo serviceInfo = conInfo.managedConnectionFactory;
+
+        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);
+
+        ConnectionManager connectionManager = (ConnectionManager) props.get(conInfo.connectionManagerId);
+        if (connectionManager == null) {
+            throw new RuntimeException(INVALID_CONNECTION_MANAGER_ERROR + conInfo.connectorId);
         }
-    }
 
-    private void createSecurityService(OpenEjbConfiguration configInfo) throws Exception {
-        securityService = create(configInfo.facilities.securityService);
+        ManagedConnectionFactory managedConnectionFactory = (ManagedConnectionFactory) service;
 
-        install(this.containerSystem, securityService);
+        ConnectorReference reference = new ConnectorReference(connectionManager, managedConnectionFactory);
 
-        props.put(SecurityService.class.getName(), securityService);
+        containerSystem.getJNDIContext().bind("java:openejb/connector/" + conInfo.connectorId, reference);
     }
 
-    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 ConnectionManager createConnectionManager(ConnectionManagerInfo serviceInfo) throws OpenEJBException, java.lang.reflect.InvocationTargetException, IllegalAccessException, NoSuchMethodException, NamingException {
+        ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.constructorArgs.toArray(new String[0]), null);
+        serviceRecipe.setAllProperties(serviceInfo.properties);
+
+        Object object = props.get("TransactionManager");
+        serviceRecipe.setProperty("transactionManager", new StaticRecipe(object));
+
+        Object service = serviceRecipe.create();
+
+        Class interfce = serviceInterfaces.get(serviceInfo.serviceType);
+        checkImplementation(interfce, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
 
-    public static SecurityService create(SecurityServiceInfo serviceInfo) throws OpenEJBException {
-        ObjectRecipe securityServiceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.properties);
-        Object service = securityServiceRecipe.create();
-        checkImplementation(SECURITY_SERVICE, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
+        this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType+"/"+serviceInfo.id, service);
 
-        return (SecurityService) 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);
+
+        return (ConnectionManager) service;
     }
 
-    private void createTransactionManager(TransactionServiceInfo transactionService) throws NamingException, OpenEJBException {
-        TransactionManager unwrappedTransactionManager = create(transactionService);
-        TransactionManager transactionManager = install(this.containerSystem, unwrappedTransactionManager);
+    private void createSecurityService(ServiceInfo serviceInfo) throws Exception {
+
+        ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.constructorArgs.toArray(new String[0]), null);
+        serviceRecipe.setAllProperties(serviceInfo.properties);
+
+        Object service = serviceRecipe.create();
 
-        getContext().put(TransactionManager.class.getName(), transactionManager);
-        props.put(TransactionManager.class.getName(), transactionManager);
-        this.transactionManager = transactionManager;
+        Class interfce = serviceInterfaces.get(serviceInfo.serviceType);
+        checkImplementation(interfce, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
+
+        this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType, 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);
+
+        this.securityService = (SecurityService) service;
     }
 
-    public static TransactionManager install(CoreContainerSystem containerSystem, TransactionManager unwrappedTransactionManager) throws NamingException {
-        ObjectRecipe txManagerWrapperRecipe = new ObjectRecipe(TransactionManagerWrapper.class, new String[]{"transactionManager"},new Class[]{TransactionManager.class});
+    private void createTransactionManager(TransactionServiceInfo serviceInfo) throws NamingException, OpenEJBException {
+        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);
+
+        TransactionManager unwrappedTransactionManager = (TransactionManager) service;
+        ObjectRecipe txManagerWrapperRecipe = new ObjectRecipe(TransactionManagerWrapper.class, new String[]{"transactionManager"}, new Class[]{TransactionManager.class});
         txManagerWrapperRecipe.setProperty("transactionManager", new StaticRecipe(unwrappedTransactionManager));
-        TransactionManager transactionManager = (TransactionManager) txManagerWrapperRecipe.create();
+        service = txManagerWrapperRecipe.create();
 
-        SystemInstance.get().setComponent(TransactionManager.class, transactionManager);
-        containerSystem.getJNDIContext().bind("java:openejb/TransactionManager", transactionManager);
-        return transactionManager;
+        this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType, 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);
+
+        this.transactionManager = (TransactionManager) service;
     }
 
-    public static TransactionManager create(TransactionServiceInfo transactionService) throws OpenEJBException {
-        TransactionServiceInfo serviceInfo = transactionService;
-        ObjectRecipe txServiceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.properties);
-        Object service = txServiceRecipe.create();
-        checkImplementation(TRANSACTION_MANAGER, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
-        return (TransactionManager) service;
+    private URL toUrl(String jarPath) throws OpenEJBException {
+        try {
+            return new File(jarPath).toURL();
+        } catch (MalformedURLException e) {
+            throw new OpenEJBException(messages.format("cl0001", jarPath, e.getMessage()));
+        }
     }
+
+
 }

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=494744&r1=494743&r2=494744
==============================================================================
--- 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 Tue Jan  9 22:58:04 2007
@@ -43,11 +43,23 @@
     public static final Class TRANSACTION_MANAGER = TransactionManager.class;
     public static final Class CONNECTION_MANAGER = javax.resource.spi.ConnectionManager.class;
     public static final Class CONNECTOR = javax.resource.spi.ManagedConnectionFactory.class;
+    public static final Class CONTAINER = org.apache.openejb.Container.class;
+
+    public static final Map<String, Class> serviceInterfaces = new HashMap<String, Class>();
+    static {
+        serviceInterfaces.put("ProxyFactory", PROXY_FACTORY);
+        serviceInterfaces.put("SecurityService", SECURITY_SERVICE);
+        serviceInterfaces.put("TransactionManager", TRANSACTION_MANAGER);
+        serviceInterfaces.put("ConnectionManager", CONNECTION_MANAGER);
+        serviceInterfaces.put("Connector", CONNECTOR);
+        serviceInterfaces.put("Container", CONTAINER);
+    }
 
     protected static final Messages messages = new Messages("org.apache.openejb.util.resources");
     protected static final SafeToolkit toolkit = SafeToolkit.getToolkit("AssemblerTool");
 
     protected Properties props;
+    protected Properties services;
 
     static {
         System.setProperty("noBanner", "true");
@@ -67,57 +79,6 @@
 
             throw new org.apache.openejb.OpenEJBException("The remote JNDI EJB references for remote-jndi-contexts = " + context.id + "+ could not be resolved.", ne);
         }
-    }
-
-    public ConnectionManager assembleConnectionManager(ConnectionManagerInfo cmInfo)
-            throws OpenEJBException, java.lang.Exception {
-        /*TODO: Add better exception handling, this method throws java.lang.Exception,
-         which is not very specific. Only a very specific OpenEJBException should be
-         thrown.
-         */
-        Class managerClass = SafeToolkit.loadClass(cmInfo.className, cmInfo.codebase);
-
-        checkImplementation(CONNECTION_MANAGER, managerClass, "ConnectionManager", cmInfo.id);
-
-        ConnectionManager connectionManager = (ConnectionManager) toolkit.newInstance(managerClass);
-
-        if (cmInfo.properties != null) {
-            Properties clonedProps = (Properties) (this.props.clone());
-            clonedProps.putAll(cmInfo.properties);
-            applyProperties(connectionManager, clonedProps);
-        }
-
-        return connectionManager;
-    }
-
-    public ManagedConnectionFactory assembleManagedConnectionFactory(ManagedConnectionFactoryInfo mngedConFactInfo)
-            throws org.apache.openejb.OpenEJBException, java.lang.Exception {
-
-        ManagedConnectionFactory managedConnectionFactory = null;
-        try {
-            Class factoryClass = SafeToolkit.loadClass(mngedConFactInfo.className, mngedConFactInfo.codebase);
-            checkImplementation(CONNECTOR, factoryClass, "Connector", mngedConFactInfo.id);
-
-            managedConnectionFactory = (ManagedConnectionFactory) toolkit.newInstance(factoryClass);
-        } catch (Exception e) {
-            throw new OpenEJBException("Could not instantiate Connector '" + mngedConFactInfo.id + "'.", e);
-        }
-
-        try {
-
-            if (mngedConFactInfo.properties != null) {
-                Properties clonedProps = (Properties) (this.props.clone());
-                clonedProps.putAll(mngedConFactInfo.properties);
-                applyProperties(managedConnectionFactory, clonedProps);
-            }
-        } catch (java.lang.reflect.InvocationTargetException ite) {
-            throw new OpenEJBException("Could not initialize Connector '" + mngedConFactInfo.id + "'.", ite.getTargetException());
-        } catch (Exception e) {
-
-            throw new OpenEJBException("Could not initialize Connector '" + mngedConFactInfo.id + "'.", e);
-        }
-
-        return managedConnectionFactory;
     }
 
     public void applyProxyFactory(IntraVmServerInfo ivmInfo) throws OpenEJBException {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/SharedLocalConnectionManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/SharedLocalConnectionManager.java?view=diff&rev=494744&r1=494743&r2=494744
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/SharedLocalConnectionManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/SharedLocalConnectionManager.java Tue Jan  9 22:58:04 2007
@@ -52,6 +52,10 @@
     private final Set<ManagedConnection> connSet = Collections.synchronizedSet(new HashSet<ManagedConnection>());
     private TransactionManager transactionManager;
 
+    public SharedLocalConnectionManager(TransactionManager transactionManager) {
+        this.transactionManager = transactionManager;
+    }
+
     public void init(Properties props) {
         transactionManager = (TransactionManager) props.get(TransactionManager.class.getName());
     }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java?view=diff&rev=494744&r1=494743&r2=494744
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JdbcManagedConnectionFactory.java Tue Jan  9 22:58:04 2007
@@ -42,6 +42,16 @@
     private String driver;
     private boolean unmanaged;
 
+
+    public JdbcManagedConnectionFactory(String driver, String url, String defaultUserName, String defaultPassword, boolean unmanaged) throws ResourceAdapterInternalException {
+        this.defaultPassword = defaultPassword;
+        this.defaultUserName = defaultUserName;
+        this.driver = driver;
+        this.unmanaged = unmanaged;
+        this.url = url;
+        start();
+    }
+
     public void init(java.util.Properties props) throws javax.resource.spi.ResourceAdapterInternalException {
         defaultUserName = props.getProperty(EnvProps.USER_NAME);
         defaultPassword = props.getProperty(EnvProps.PASSWORD);
@@ -50,6 +60,7 @@
         unmanaged = props.getProperty("Unmanaged", "false").equalsIgnoreCase("true");
         start();
     }
+
 
     public String getDefaultUserName() {
         return defaultUserName;

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=494744&r1=494743&r2=494744
==============================================================================
--- 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 Tue Jan  9 22:58:04 2007
@@ -251,6 +251,7 @@
   <ServiceProvider
           id="Default JDBC Database"
           provider-type="Connector"
+          constructor="JdbcDriver,JdbcUrl,UserName,Password,Unmanaged"
           class-name="org.apache.openejb.resource.jdbc.JdbcManagedConnectionFactory">
 
     # Driver class name
@@ -271,7 +272,7 @@
     # Default password
 
     #Password pass
-    Password
+    Password  
 
     Unmanaged false
   </ServiceProvider>
@@ -284,6 +285,7 @@
   <ServiceProvider
           id="Default Local TX ConnectionManager"
           provider-type="ConnectionManager"
+          constructor="transactionManager"
           class-name="org.apache.openejb.resource.SharedLocalConnectionManager"/>
 
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java?view=diff&rev=494744&r1=494743&r2=494744
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java Tue Jan  9 22:58:04 2007
@@ -220,15 +220,9 @@
     }
 
     private DataSource createJtaDataSource(TransactionManager transactionManager) throws Exception {
-        JdbcManagedConnectionFactory mcf = new JdbcManagedConnectionFactory();
-        mcf.setDriver("org.hsqldb.jdbcDriver");
-        mcf.setUrl("jdbc:hsqldb:mem:JpaTest");
-        mcf.setDefaultUserName("sa");
-        mcf.setDefaultPassword("");
-        mcf.start();
+        JdbcManagedConnectionFactory mcf = new JdbcManagedConnectionFactory("org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:JpaTest", "sa", "", false);
 
-        SharedLocalConnectionManager connectionManager = new SharedLocalConnectionManager();
-        connectionManager.setTransactionManager(transactionManager);
+        SharedLocalConnectionManager connectionManager = new SharedLocalConnectionManager(transactionManager);
 
         DataSource connectionFactory = (DataSource) mcf.createConnectionFactory(connectionManager);
         return connectionFactory;