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