You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/09/27 18:09:25 UTC

svn commit: r1176452 - in /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/ config/ junit/

Author: rmannibucau
Date: Tue Sep 27 16:09:24 2011
New Revision: 1176452

URL: http://svn.apache.org/viewvc?rev=1176452&view=rev
Log:
reading META-INF/openejb.xml to load resources (to review)

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConvertDataSourceDefinitions.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Tue Sep 27 16:09:24 2011
@@ -79,6 +79,7 @@ import org.apache.openejb.ClassLoaderUti
 import org.apache.openejb.Container;
 import org.apache.openejb.DuplicateDeploymentIdException;
 import org.apache.openejb.Injection;
+import org.apache.openejb.JndiConstants;
 import org.apache.openejb.MethodContext;
 import org.apache.openejb.NoSuchApplicationException;
 import org.apache.openejb.OpenEJB;
@@ -139,19 +140,12 @@ import org.apache.xbean.recipe.ObjectRec
 import org.apache.xbean.recipe.Option;
 import org.apache.xbean.recipe.UnsetPropertiesRecipe;
 
-public class Assembler extends AssemblerTool implements org.apache.openejb.spi.Assembler {
+public class Assembler extends AssemblerTool implements org.apache.openejb.spi.Assembler, JndiConstants {
 
     static {
         AsmParameterNameLoader.install();
     }
 
-    public static final String JAVA_OPENEJB_NAMING_CONTEXT = "openejb/";
-
-    public static final String PERSISTENCE_UNIT_NAMING_CONTEXT = JAVA_OPENEJB_NAMING_CONTEXT + "PersistenceUnit/";
-
-    public static final String VALIDATOR_FACTORY_NAMING_CONTEXT = JAVA_OPENEJB_NAMING_CONTEXT + "ValidatorFactory/";
-    public static final String VALIDATOR_NAMING_CONTEXT = JAVA_OPENEJB_NAMING_CONTEXT + "Validator/";
-
     private static final String OPENEJB_URL_PKG_PREFIX = "org.apache.openejb.core.ivm.naming";
 
     public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, Assembler.class);
@@ -1469,7 +1463,7 @@ public class Assembler extends Assembler
         }
 
         try {
-            final String name = "openejb/Resource/" + serviceInfo.id;
+            final String name = OPENEJB_RESOURCE_JNDI_PREFIX + serviceInfo.id;
             containerSystem.getJNDIContext().bind(name, service);
         } catch (NamingException e) {
             throw new OpenEJBException("Cannot bind resource adapter with id " + serviceInfo.id, e);

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Tue Sep 27 16:09:24 2011
@@ -170,7 +170,6 @@ import javax.ejb.TransactionAttributeTyp
 import javax.ejb.TransactionManagement;
 import javax.ejb.TransactionManagementType;
 import javax.enterprise.inject.Specializes;
-import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.Extension;
 import javax.interceptor.ExcludeClassInterceptors;
 import javax.interceptor.ExcludeDefaultInterceptors;
@@ -349,7 +348,7 @@ public class AnnotationDeployer implemen
     public static class DiscoverAnnotatedBeans implements DynamicDeployer {
         public AppModule deploy(AppModule appModule) throws OpenEJBException {
             for (EjbModule ejbModule : appModule.getEjbModules()) {
-                ejbModule.setAppModule(appModule);
+                ejbModule.initAppModule(appModule);
                 setModule(ejbModule);
                 try {
                     deploy(ejbModule);
@@ -358,7 +357,7 @@ public class AnnotationDeployer implemen
                 }
             }
             for (ClientModule clientModule : appModule.getClientModules()) {
-                clientModule.setAppModule(appModule);
+                clientModule.initAppModule(appModule);
                 setModule(clientModule);
                 try {
                     deploy(clientModule);
@@ -367,7 +366,7 @@ public class AnnotationDeployer implemen
                 }
             }
             for (ConnectorModule connectorModule : appModule.getConnectorModules()) {
-                connectorModule.setAppModule(appModule);
+                connectorModule.initAppModule(appModule);
                 setModule(connectorModule);
                 try {
                     deploy(connectorModule);
@@ -376,7 +375,7 @@ public class AnnotationDeployer implemen
                 }
             }
             for (WebModule webModule : appModule.getWebModules()) {
-                webModule.setAppModule(appModule);
+                webModule.initAppModule(appModule);
                 setModule(webModule);
                 try {
                     deploy(webModule);

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Tue Sep 27 16:09:24 2011
@@ -16,18 +16,7 @@
  */
 package org.apache.openejb.config;
 
-import javax.ejb.TimerService;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.sql.DataSource;
-import javax.transaction.TransactionManager;
-import javax.transaction.TransactionSynchronizationRegistry;
-import javax.transaction.UserTransaction;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.ext.ContextResolver;
+import org.apache.openejb.JndiConstants;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.assembler.classic.ContainerInfo;
 import org.apache.openejb.assembler.classic.ResourceInfo;
@@ -69,10 +58,22 @@ import org.apache.openejb.util.URISuppor
 import org.apache.openejb.util.UniqueDefaultLinkResolver;
 
 import javax.annotation.ManagedBean;
+import javax.ejb.TimerService;
+import javax.enterprise.inject.spi.BeanManager;
 import javax.jms.Queue;
 import javax.jms.Topic;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
+import javax.transaction.TransactionSynchronizationRegistry;
+import javax.transaction.UserTransaction;
 import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Request;
+import javax.ws.rs.core.SecurityContext;
+import javax.ws.rs.core.UriInfo;
+import javax.ws.rs.ext.ContextResolver;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -92,11 +93,14 @@ import static org.apache.openejb.config.
 import static org.apache.openejb.config.ServiceUtils.hasServiceProvider;
 import static org.apache.openejb.util.Join.join;
 
-public class AutoConfig implements DynamicDeployer {
+public class AutoConfig implements DynamicDeployer, JndiConstants {
+    public static final String ORIGIN_ANNOTATION = "Annotation";
+    public static final String ORIGIN_FLAG = "Origin";
 
     public static Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, AutoConfig.class);
 
     private static Set<String> ignoredReferenceTypes = new TreeSet<String>();
+
     static{
         // Context objects are automatically handled
         ignoredReferenceTypes.add("javax.ejb.SessionContext");
@@ -837,9 +841,9 @@ public class AutoConfig implements Dynam
     }
 
     private void processDataSourceDefinitions(AppModule module) throws OpenEJBException {
-        Collection<Resource> datasources = module.getResources();
+        Collection<Resource> resources = module.getResources();
 
-        if (datasources.size() == 0) return;
+        if (resources.size() == 0) return;
 
         List<JndiConsumer> jndiConsumers = new ArrayList<JndiConsumer>();
         for (WebModule webModule : module.getWebModules()) {
@@ -851,43 +855,49 @@ public class AutoConfig implements Dynam
             Collections.addAll(jndiConsumers, ejbModule.getEjbJar().getEnterpriseBeans());
         }
 
-        for (Resource datasource : datasources) {
-            if (!DataSource.class.getName().equals(datasource.getType())) {
-                continue;
-            }
+        for (Resource resource : resources) {
+            ResourceInfo resourceInfo = configFactory.configureService(resource, ResourceInfo.class);
+            final ResourceRef resourceRef = new ResourceRef();
+            resourceRef.setResType(resource.getType());
 
-            Properties properties = datasource.getProperties();
-            if (properties.get("JdbcUrl") == null) {
-                final String url = getVendorUrl(properties);
-                if (url != null) {
-                    properties.put("JdbcUrl", url);
+            if (DataSource.class.getName().equals(resource.getType())
+                    && resource.getProperties().containsKey(ORIGIN_FLAG)
+                    && resource.getProperties().getProperty(ORIGIN_FLAG).equals(ORIGIN_ANNOTATION)) {
+
+                resourceInfo.id = module.getModuleId() + "/" + resourceInfo.id;
+
+                Properties properties = resource.getProperties();
+                if (properties.get("JdbcUrl") == null) {
+                    final String url = getVendorUrl(properties);
+                    if (url != null) {
+                        properties.put("JdbcUrl", url);
+                    }
                 }
-            }
 
-            // this property is not supported by dbcp
-            properties.remove("LoginTimeout");
+                // these properties are not supported by dbcp
+                properties.remove("LoginTimeout");
+                properties.remove(ORIGIN_FLAG);
 
-            ResourceInfo resourceInfo = configFactory.configureService(datasource, ResourceInfo.class);
-            resourceInfo.id = module.getModuleId() + "/" + resourceInfo.id;
+                resourceRef.setResRefName(dataSourceLookupName(resource));
+            } else {
+                resourceRef.setResRefName(OPENEJB_RESOURCE_JNDI_PREFIX + resourceInfo.id);
+            }
 
-            final ResourceRef dataSourceRef = new ResourceRef(dataSourceLookupName(datasource), DataSource.class.getName());
-            dataSourceRef.setMappedName(resourceInfo.id);
+            resourceRef.setMappedName(resourceInfo.id);
 
             for (JndiConsumer consumer : jndiConsumers) {
-
-                final ResourceRef existing = consumer.getResourceRefMap().get(dataSourceRef.getKey());
+                final ResourceRef existing = consumer.getResourceRefMap().get(resourceRef.getKey());
                 if (existing != null) {
-                    existing.setMappedName(dataSourceRef.getMappedName());
+                    existing.setMappedName(resourceRef.getMappedName());
                 } else {
-                    consumer.getResourceRef().add(dataSourceRef);
+                    consumer.getResourceRef().add(resourceRef);
                 }
             }
 
-
             installResource(module.getModuleId(), resourceInfo);
         }
 
-        datasources.clear();
+        resources.clear();
     }
 
     private String dataSourceLookupName(Resource datasource) {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConvertDataSourceDefinitions.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConvertDataSourceDefinitions.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConvertDataSourceDefinitions.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConvertDataSourceDefinitions.java Tue Sep 27 16:09:24 2011
@@ -18,7 +18,6 @@ package org.apache.openejb.config;
 
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.config.sys.Resource;
-import org.apache.openejb.jee.ApplicationClient;
 import org.apache.openejb.jee.DataSource;
 import org.apache.openejb.jee.JndiConsumer;
 import org.apache.openejb.jee.KeyedCollection;
@@ -84,6 +83,7 @@ public class ConvertDataSourceDefinition
         put(p, "Description", datasource.getDescription());
         put(p, "ServerName", datasource.getServerName());
         put(p, "Definition", rawDefinition(datasource));
+        put(p, AutoConfig.ORIGIN_FLAG, AutoConfig.ORIGIN_ANNOTATION);
         setProperties(datasource, p);
 
         // to force it to be bound in JndiEncBuilder

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Module.java Tue Sep 27 16:09:24 2011
@@ -16,7 +16,7 @@
  */
 package org.apache.openejb.config;
 
-import org.apache.openejb.config.sys.Resource;
+import org.apache.openejb.config.sys.Openejb;
 import org.apache.openejb.jee.bval.ValidationConfigType;
 
 import java.util.HashMap;
@@ -33,6 +33,7 @@ public class Module {
     private final Map<String, Object> altDDs = new HashMap<String, Object>();
     private String uniqueId;
     private AppModule appModule = null;
+    private Openejb openejb;
 
     public Module() {
         uniqueId = Integer.toString(currentId++);
@@ -70,17 +71,26 @@ public class Module {
         this.classLoader = classLoader;
     }
 
-    public void addResource(Resource resource) {
-        if (appModule != null) {
-            appModule.getResources().add(resource);
+    public void initAppModule(AppModule appModule) {
+        if (this.appModule != null) {
+            throw new UnsupportedOperationException("AppModule is already set");
         }
-    }
 
-    public void setAppModule(AppModule appModule) {
         this.appModule = appModule;
+        if (openejb != null) {
+            this.appModule.getResources().addAll(openejb.getResource());
+        }
     }
 
     public AppModule getAppModule() {
         return appModule;
     }
+
+    public void initOpenejb(Openejb openejb) {
+        if (this.openejb != null) {
+            throw new UnsupportedOperationException("openejb.xml is already set");
+        }
+
+        this.openejb = openejb;
+    }
 }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Tue Sep 27 16:09:24 2011
@@ -18,6 +18,7 @@ package org.apache.openejb.config;
 
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.config.sys.JaxbOpenejb;
+import org.apache.openejb.config.sys.Openejb;
 import org.apache.openejb.core.webservices.WsdlResolver;
 import org.apache.openejb.jee.ApplicationClient;
 import org.apache.openejb.jee.Beans;
@@ -86,21 +87,25 @@ public class ReadDescriptors implements 
 
             readValidationConfigType(ejbModule);
             readCmpOrm(ejbModule);
+            readOpenEJBXml(ejbModule);
         }
 
         for (ClientModule clientModule : appModule.getClientModules()) {
             readAppClient(clientModule, appModule);
             readValidationConfigType(clientModule);
+            readOpenEJBXml(clientModule);
         }
 
         for (ConnectorModule connectorModule : appModule.getConnectorModules()) {
             readConnector(connectorModule, appModule);
             readValidationConfigType(connectorModule);
+            readOpenEJBXml(connectorModule);
         }
 
         for (WebModule webModule : appModule.getWebModules()) {
             readWebApp(webModule, appModule);
             readValidationConfigType(webModule);
+            readOpenEJBXml(webModule);
         }
 
         List<URL> persistenceUrls = (List<URL>) appModule.getAltDDs().get("persistence.xml");
@@ -138,17 +143,62 @@ public class ReadDescriptors implements 
 
     }
 
+    private URL getUrl(Module module, String name) {
+        URL url = (URL) module.getAltDDs().get(name);
+        if (url == null && module.getClassLoader() != null) {
+            if (module instanceof WebModule) {
+                url = module.getClassLoader().getResource("WEB-INF/" + name);
+            } else {
+                url = module.getClassLoader().getResource("META-INF/" + name);
+            }
+
+            if (url != null) {
+                module.getAltDDs().put(name, url);
+            }
+        }
+        return url;
+    }
+
+    private void readOpenEJBXml(Module module) {
+        URL url = getUrl(module, "openejb.xml");
+        if (url != null) {
+            try {
+                Openejb openejb = JaxbOpenejb.unmarshal(Openejb.class, url.openStream());
+                module.initOpenejb(openejb);
+
+                // warn if other entities than resources were declared
+                if (openejb.getContainer().size() > 0) {
+                    logger.warning("containers can't be declared at module level");
+                }
+                if (openejb.getDeployments().size() > 0) {
+                    logger.warning("deployments can't be declared at module level");
+                }
+                if (openejb.getSecurityService() != null) {
+                    logger.warning("security service can't be declared at module level");
+                }
+                if (openejb.getConnectionManager() != null) {
+                    logger.warning("connection manager can't be declared at module level");
+                }
+                if (openejb.getJndiProvider().size() > 0) {
+                    logger.warning("jndi providers can't be declared at module level");
+                }
+                if (openejb.getTransactionManager() != null) {
+                    logger.warning("transaction manager can't be declared at module level");
+                }
+                if (openejb.getProxyFactory() != null) {
+                    logger.warning("proxy factory can't be declared at module level");
+                }
+            } catch (Exception e) {
+                logger.warning("can't read " + url.toString() + " to load resources for module " + module.toString(), e);
+            }
+        }
+    }
+
     private void readValidationConfigType(Module module) throws OpenEJBException {
         if (module.getValidationConfig() != null) {
             return;
         }
-        URL url = (URL) module.getAltDDs().get("validation.xml");
-        if (url == null && module.getClassLoader() != null) { // library but not a module case
-            url = module.getClassLoader().getResource("META-INF/validation.xml");
-            if (url != null) {
-                module.getAltDDs().put("validation.xml", url);
-            }
-        }
+        URL url = getUrl(module, "validation.xml");
         if (url != null) {
             ValidationConfigType validationConfigType;
             try {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java Tue Sep 27 16:09:24 2011
@@ -18,7 +18,6 @@ package org.apache.openejb.config;
 
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.loader.FileUtils;
 import org.apache.openejb.config.sys.ServiceProvider;
 import org.apache.openejb.config.sys.ServicesJar;
 import org.apache.openejb.config.sys.JaxbOpenejb;
@@ -48,7 +47,7 @@ public class ServiceUtils {
      * 2. If in a full server containing a "conf" directory "org.apache.openejb" </br>
      * 3. Embedded mode "org.apache.openejb.embedded" </br>
      */
-    public static final String defaultProviderURL;
+    public static final String DEFAULT_PROVIDER_URL;
     static {
         String defaultValue = "org.apache.openejb";
         try {
@@ -58,7 +57,7 @@ public class ServiceUtils {
             }
         } catch (Exception ignored) {
         }
-        defaultProviderURL = SystemInstance.get().getOptions().get("openejb.provider.default", defaultValue);
+        DEFAULT_PROVIDER_URL = SystemInstance.get().getOptions().get("openejb.provider.default", defaultValue);
     }
 
 
@@ -129,7 +128,7 @@ public class ServiceUtils {
         ArrayList<ServiceProvider> providers = new ArrayList<ServiceProvider>();
         if (type == null) return providers;
 
-        List<ServiceProvider> services = getServiceProviders(defaultProviderURL);
+        List<ServiceProvider> services = getServiceProviders(DEFAULT_PROVIDER_URL);
 
         for (ServiceProvider service : services) {
             if (service.getService().equals(type)) {
@@ -149,7 +148,7 @@ public class ServiceUtils {
         if (type == null) return null;
         if (required == null) required = new Properties();
 
-        List<ServiceProvider> services = getServiceProviders(defaultProviderURL);
+        List<ServiceProvider> services = getServiceProviders(DEFAULT_PROVIDER_URL);
 
         for (ServiceProvider service : services) {
             if (service.getTypes().contains(type) && implies(required, service.getProperties())) {
@@ -197,7 +196,7 @@ public class ServiceUtils {
     }
 
     public static List<ServiceProvider> getServiceProviders() throws OpenEJBException {
-        return getServiceProviders(defaultProviderURL);
+        return getServiceProviders(DEFAULT_PROVIDER_URL);
     }
 
     public static List<ServiceProvider> getServiceProviders(String packageName) throws OpenEJBException {
@@ -244,7 +243,7 @@ public class ServiceUtils {
             providerName = id.substring(0, id.indexOf(":"));
             serviceName = id.substring(id.indexOf(":") + 1);
         } else {
-            providerName = defaultProviderURL;
+            providerName = DEFAULT_PROVIDER_URL;
             serviceName = id;
         }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java?rev=1176452&r1=1176451&r2=1176452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java Tue Sep 27 16:09:24 2011
@@ -231,6 +231,13 @@ public class ApplicationComposer extends
                     ejbModule.setFinder(new AnnotationFinder(new ClassesArchive(beans)).link());
                     ejbModule.setBeans(new Beans());
                     appModule.getEjbModules().add(ejbModule);
+                } else if (obj instanceof Class) {
+
+                    final Class bean = (Class) obj;
+                    final EjbModule ejbModule = new EjbModule(new EjbJar(method.getName()));
+                    ejbModule.setFinder(new AnnotationFinder(new ClassesArchive(bean)).link());
+                    ejbModule.setBeans(new Beans());
+                    appModule.getEjbModules().add(ejbModule);
                 }
             }