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 2011/03/10 08:35:11 UTC
svn commit: r1080136 - in /openejb/trunk/openejb3/container:
openejb-core/src/main/java/org/apache/openejb/assembler/classic/
openejb-core/src/main/java/org/apache/openejb/config/
openejb-core/src/main/java/org/apache/openejb/config/rules/ openejb-core...
Author: dblevins
Date: Thu Mar 10 07:35:10 2011
New Revision: 1080136
URL: http://svn.apache.org/viewvc?rev=1080136&view=rev
Log:
OPENEJB-1442: Clarify and normalize all internal module identifiers
Added:
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/NamedModule.java (with props)
Removed:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbSet.java
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/assembler/classic/EjbJarInfo.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbResolver.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppValidator.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/ClientModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationContext.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationFailedException.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationResults.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckDependsOn.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEjbConfigurationValidationTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AnnotationDeployerTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigurationFactoryTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/SunCmpConversionTest.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Connector.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.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=1080136&r1=1080135&r2=1080136&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 Thu Mar 10 07:35:10 2011
@@ -464,8 +464,8 @@ public class Assembler extends Assembler
public AppContext createApplication(AppInfo appInfo, ClassLoader classLoader, boolean start) throws OpenEJBException, IOException, NamingException {
// The path is used in the UrlCache, command line deployer, JNDI name templates, tomcat integration and a few other places
- if (appInfo.path == null) throw new IllegalArgumentException("AppInfo.path cannot be null");
if (appInfo.appId == null) throw new IllegalArgumentException("AppInfo.appId cannot be null");
+ if (appInfo.path == null) appInfo.path = appInfo.appId;
logger.info("createApplication.start", appInfo.path);
@@ -1048,10 +1048,10 @@ public class Assembler extends Assembler
public ClassLoader createAppClassLoader(AppInfo appInfo) throws OpenEJBException, IOException {
List<URL> jars = new ArrayList<URL>();
for (EjbJarInfo info : appInfo.ejbJars) {
- jars.add(toUrl(info.path));
+ if (info.path != null) jars.add(toUrl(info.path));
}
for (ClientInfo info : appInfo.clients) {
- jars.add(toUrl(info.path));
+ if (info.path != null) jars.add(toUrl(info.path));
}
for (ConnectorInfo info : appInfo.connectors) {
for (String jarPath : info.libs) {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java Thu Mar 10 07:35:10 2011
@@ -16,6 +16,7 @@
*/
package org.apache.openejb.assembler.classic;
+import java.net.URI;
import java.util.List;
import java.util.ArrayList;
import java.util.Properties;
@@ -26,7 +27,7 @@ public class EjbJarInfo extends InfoObje
public final Properties properties = new Properties();
public String moduleId;
- public String modulePackageName;
+ public URI moduleUri;
public String path;
public final List<EnterpriseBeanInfo> enterpriseBeans = new ArrayList<EnterpriseBeanInfo>();
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbResolver.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbResolver.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbResolver.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbResolver.java Thu Mar 10 07:35:10 2011
@@ -16,7 +16,6 @@
*/
package org.apache.openejb.assembler.classic;
-import org.apache.openejb.jee.SessionBean;
import org.apache.openejb.util.LinkResolver;
import java.net.URI;
@@ -86,17 +85,17 @@ public class EjbResolver {
private void add(EjbJarInfo ejbJarInfo) {
for (EnterpriseBeanInfo bean : ejbJarInfo.enterpriseBeans) {
- index(ejbJarInfo.modulePackageName, bean);
+ index(ejbJarInfo.moduleUri, bean);
}
}
- private void index(String modulePackageName, EnterpriseBeanInfo bean) {
+ private void index(URI moduleURI, EnterpriseBeanInfo bean) {
// All deployments: deploymentId -> bean
deployments.put(bean.ejbDeploymentId, bean);
// add to the link resolver
- resolver.add(modulePackageName, bean.ejbName, bean.ejbDeploymentId);
+ resolver.add(moduleURI, bean.ejbName, bean.ejbDeploymentId);
// Remote: Interfaces(home,object) -> deploymentId
if (bean.remote != null) {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Thu Mar 10 07:35:10 2011
@@ -103,9 +103,9 @@ class AppInfoBuilder {
appInfo.standaloneModule = appModule.isStandaloneModule();
appInfo.watchedResources.addAll(appModule.getWatchedResources());
- if (appInfo.path == null) throw new IllegalArgumentException("AppInfo.path cannot be null");
if (appInfo.appId == null) throw new IllegalArgumentException("AppInfo.appId cannot be null");
-
+ if (appInfo.path == null) appInfo.path = appInfo.appId;
+
//
// J2EE Connectors
//
@@ -150,7 +150,7 @@ class AppInfoBuilder {
ejbJarInfo.portInfos.addAll(configureWebservices(ejbModule.getWebservices()));
configureWebserviceSecurity(ejbJarInfo, ejbModule);
- ejbJarInfos.put(ejbJarInfo.path, ejbJarInfo);
+ ejbJarInfos.put(ejbJarInfo.moduleId, ejbJarInfo);
appInfo.ejbJars.add(ejbJarInfo);
@@ -172,7 +172,7 @@ class AppInfoBuilder {
// Build the JNDI tree for each ejb
for (EjbModule ejbModule : appModule.getEjbModules()) {
- EjbJarInfo ejbJar = ejbJarInfos.get(ejbModule.getJarLocation());
+ EjbJarInfo ejbJar = ejbJarInfos.get(ejbModule.getModuleId());
Map<String, EnterpriseBean> beanData = ejbModule.getEjbJar().getEnterpriseBeansByEjbName();
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java Thu Mar 10 07:35:10 2011
@@ -18,8 +18,10 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.Application;
import org.apache.openejb.jee.jpa.EntityMappings;
+import org.apache.openejb.jee.oejb3.OpenejbJar;
import java.io.File;
+import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -42,21 +44,26 @@ public class AppModule implements Deploy
private final List<ClientModule> clientModules = new ArrayList<ClientModule>();
private final List<EjbModule> ejbModules = new ArrayList<EjbModule>();
private final List<PersistenceModule> persistenceModules = new ArrayList<PersistenceModule>();
- private final String jarLocation;
private final ClassLoader classLoader;
private EntityMappings cmpMappings;
private final Map<String,Object> altDDs = new HashMap<String,Object>();
- private final String moduleId;
- private final String modulePackageName;
private final Set<String> watchedResources = new TreeSet<String>();
private final boolean standaloneModule;
+ private ID id;
+
public AppModule(ClassLoader classLoader, String jarLocation) {
this(classLoader, jarLocation, null, false);
}
public <T extends DeploymentModule> AppModule(T module) {
- this(module.getClassLoader(), module.getJarLocation(), new Application(module.getModuleId()), true);
+ this.standaloneModule = true;
+ this.classLoader = module.getClassLoader();
+ this.application = new Application(module.getModuleId());
+
+ this.id = new ID(null, application, null, module.getFile(), module.getModuleUri(), this);
+ this.validation = new ValidationContext(this);
+
final Class<? extends DeploymentModule> type = module.getClass();
if (type == EjbModule.class) {
@@ -76,38 +83,11 @@ public class AppModule implements Deploy
public AppModule(ClassLoader classLoader, String jarLocation, Application application, boolean standaloneModule) {
this.classLoader = classLoader;
- this.jarLocation = jarLocation;
this.application = application;
- String moduleId=null;
-
- if (jarLocation != null) {
- File file = new File(jarLocation);
- this.modulePackageName = file.getName();
- } else {
- this.modulePackageName = null;
- }
-
- if (application == null || application.getApplicationName() == null) {
-
- if (modulePackageName != null && modulePackageName.endsWith(".unpacked")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".unpacked".length());
- } else if (modulePackageName != null && modulePackageName.endsWith(".ear")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - 4);
- } else {
- moduleId = modulePackageName;
- }
-
- } else {
- moduleId = application.getApplicationName();
- }
-
- if (this.jarLocation == null) throw new IllegalArgumentException("jarLocation cannot be null");
- if (moduleId == null) throw new IllegalArgumentException("moduleId cannot be null");
-
- this.moduleId = moduleId;
-
- this.validation = new ValidationContext(AppModule.class, jarLocation);
+ File file = (jarLocation == null) ? null : new File(jarLocation);
+ this.id = new ID(null, application, null, file, null, this);
+ this.validation = new ValidationContext(this);
this.standaloneModule = standaloneModule;
}
@@ -190,14 +170,21 @@ public class AppModule implements Deploy
return contexts;
}
+ public String getJarLocation() {
+ return (id.getLocation() != null) ? id.getLocation().getAbsolutePath() : null;
+ }
+
public String getModuleId() {
- return moduleId;
+ return id.getName();
+ }
+
+ public File getFile() {
+ return id.getLocation();
+ }
+
+ public URI getModuleUri() {
+ return id.getUri();
}
-
- @Override
- public String getModulePackageName() {
- return modulePackageName;
- }
public Map<String, Object> getAltDDs() {
return altDDs;
@@ -223,10 +210,6 @@ public class AppModule implements Deploy
return persistenceModules;
}
- public String getJarLocation() {
- return jarLocation;
- }
-
public List<URL> getAdditionalLibraries() {
return additionalLibraries;
}
@@ -264,7 +247,7 @@ public class AppModule implements Deploy
@Override
public String toString() {
return "AppModule{" +
- "moduleId='" + moduleId + '\'' +
+ "moduleId='" + id.getName() + '\'' +
'}';
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppValidator.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppValidator.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppValidator.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppValidator.java Thu Mar 10 07:35:10 2011
@@ -107,7 +107,7 @@ public class AppValidator {
return;
}
System.out.println("------------------------------------------");
- System.out.println("JAR " + set.getJarPath());
+ System.out.println("JAR " + set.getName());
System.out.println(" ");
printValidationExceptions(set.getErrors());
@@ -153,7 +153,7 @@ public class AppValidator {
System.out.println("<jar>");
System.out.print(" <path>");
- System.out.print(set.getJarPath());
+ System.out.print(set.getName());
System.out.println("</path>");
printValidationExceptionsXML(set.getErrors());
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=1080136&r1=1080135&r2=1080136&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 Thu Mar 10 07:35:10 2011
@@ -165,7 +165,7 @@ public class AutoConfig implements Dynam
}
for (EjbModule ejbModule : appModule.getEjbModules()) {
- URI moduleURI = URI.create(ejbModule.getModulePackageName());
+ URI moduleURI = ejbModule.getModuleUri();
for (JndiConsumer component : ejbModule.getEjbJar().getEnterpriseBeans()) {
processPersistenceRefs(component, ejbModule, persistenceUnits, moduleURI);
@@ -408,22 +408,19 @@ public class AutoConfig implements Dynam
for (EjbModule ejbModule : appModule.getEjbModules()) {
AssemblyDescriptor assembly = ejbModule.getEjbJar().getAssemblyDescriptor();
if (assembly != null) {
- String modulePackageName = ejbModule.getModulePackageName();
for (MessageDestination destination : assembly.getMessageDestination()) {
- destinationResolver.add(modulePackageName, destination.getMessageDestinationName(), destination);
+ destinationResolver.add(ejbModule.getModuleUri(), destination.getMessageDestinationName(), destination);
}
}
}
for (ClientModule clientModule : appModule.getClientModules()) {
- String modulePackageName = appModule.getModulePackageName();
for (MessageDestination destination : clientModule.getApplicationClient().getMessageDestination()) {
- destinationResolver.add(modulePackageName, destination.getMessageDestinationName(), destination);
+ destinationResolver.add(appModule.getModuleUri(), destination.getMessageDestinationName(), destination);
}
}
for (WebModule webModule : appModule.getWebModules()) {
- String modulePackageName = appModule.getModulePackageName();
for (MessageDestination destination : webModule.getWebApp().getMessageDestination()) {
- destinationResolver.add(modulePackageName, destination.getMessageDestinationName(), destination);
+ destinationResolver.add(appModule.getModuleUri(), destination.getMessageDestinationName(), destination);
}
}
@@ -438,7 +435,7 @@ public class AutoConfig implements Dynam
continue;
}
- URI moduleUri = URI.create(ejbModule.getModulePackageName());
+ URI moduleUri = ejbModule.getModuleUri();
OpenejbJar openejbJar = ejbModule.getOpenejbJar();
for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
@@ -495,7 +492,7 @@ public class AutoConfig implements Dynam
continue;
}
- URI moduleUri = URI.create(ejbModule.getModulePackageName());
+ URI moduleUri = ejbModule.getModuleUri();
OpenejbJar openejbJar = ejbModule.getOpenejbJar();
for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
@@ -522,7 +519,7 @@ public class AutoConfig implements Dynam
}
for (ClientModule clientModule : appModule.getClientModules()) {
- URI moduleUri = URI.create(clientModule.getModulePackageName());
+ URI moduleUri = clientModule.getModuleUri();
for (MessageDestinationRef ref : clientModule.getApplicationClient().getMessageDestinationRef()) {
String destinationId = resolveDestinationId(ref, moduleUri, destinationResolver, destinationTypes);
if (destinationId != null) {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java Thu Mar 10 07:35:10 2011
@@ -17,8 +17,10 @@
package org.apache.openejb.config;
import org.apache.openejb.jee.ApplicationClient;
+import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.xbean.finder.AbstractFinder;
+import java.net.URI;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
@@ -33,7 +35,6 @@ import java.io.File;
public class ClientModule implements DeploymentModule {
private final ValidationContext validation;
private ApplicationClient applicationClient;
- private String jarLocation;
private ClassLoader classLoader;
private String mainClass;
private boolean ejbModuleGenerated;
@@ -41,37 +42,17 @@ public class ClientModule implements Dep
private final Set<String> localClients = new HashSet<String>();
private final Set<String> remoteClients = new HashSet<String>();
private final Map<String,Object> altDDs = new HashMap<String,Object>();
- private final String moduleId;
- private String modulePackageName;
+ private ID id;
private final Set<String> watchedResources = new TreeSet<String>();
public ClientModule(ApplicationClient applicationClient, ClassLoader classLoader, String jarLocation, String mainClass, String moduleId) {
this.applicationClient = applicationClient;
this.classLoader = classLoader;
- this.jarLocation = jarLocation;
this.mainClass = mainClass;
- File file = new File(jarLocation);
- this.modulePackageName = file.getName();
-
- if (moduleId == null) {
- if (applicationClient != null && applicationClient.getModuleName() != null) {
- moduleId = applicationClient.getModuleName();
- } else if (applicationClient != null && applicationClient.getId() != null) {
- moduleId = applicationClient.getId();
- } else {
- if (modulePackageName != null && modulePackageName.endsWith(".unpacked")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".unpacked".length());
- } else if (modulePackageName != null && modulePackageName.endsWith(".jar")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".jar".length());
- } else {
- moduleId = modulePackageName;
- }
- }
- }
-
- this.moduleId = moduleId;
- validation = new ValidationContext(ClientModule.class, jarLocation);
+ File file = (jarLocation == null) ? null : new File(jarLocation);
+ this.id = new ID(null, applicationClient, moduleId, file, null, this);
+ this.validation = new ValidationContext(this);
}
public boolean isEjbModuleGenerated() {
@@ -98,14 +79,25 @@ public class ClientModule implements Dep
return validation;
}
+ public String getJarLocation() {
+ return (id.getLocation() != null) ? id.getLocation().getAbsolutePath() : null;
+ }
+
+ public void setJarLocation(String jarLocation) {
+ this.id = new ID(null, applicationClient, id.getName(), new File(jarLocation), id.getUri(), this);
+ }
+
public String getModuleId() {
- return moduleId;
+ return id.getName();
+ }
+
+ public File getFile() {
+ return id.getLocation();
+ }
+
+ public URI getModuleUri() {
+ return id.getUri();
}
-
- @Override
- public String getModulePackageName() {
- return modulePackageName;
- }
public Map<String, Object> getAltDDs() {
return altDDs;
@@ -135,14 +127,6 @@ public class ClientModule implements Dep
this.classLoader = classLoader;
}
- public String getJarLocation() {
- return jarLocation;
- }
-
- public void setJarLocation(String jarLocation) {
- this.jarLocation = jarLocation;
- }
-
public String getMainClass() {
return mainClass;
}
@@ -158,7 +142,7 @@ public class ClientModule implements Dep
@Override
public String toString() {
return "ClientModule{" +
- "moduleId='" + moduleId + '\'' +
+ "moduleId='" + id.getName() + '\'' +
", mainClass='" + mainClass + '\'' +
'}';
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConnectorModule.java Thu Mar 10 07:35:10 2011
@@ -19,6 +19,7 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.Connector;
import java.io.File;
+import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@@ -36,13 +37,11 @@ public class ConnectorModule implements
private Connector connector;
private ClassLoader classLoader;
- private String jarLocation;
- private final String moduleId;
- private String modulePackageName;
private final List<URL> libraries = new ArrayList<URL>();
private final Set<String> watchedResources = new TreeSet<String>();
-
+ private ID id;
+
public ConnectorModule(Connector connector) {
this(connector, Thread.currentThread().getContextClassLoader(), null, null);
}
@@ -50,48 +49,31 @@ public class ConnectorModule implements
public ConnectorModule(Connector connector, ClassLoader classLoader, String jarLocation, String moduleId) {
this.connector = connector;
this.classLoader = classLoader;
- this.jarLocation = jarLocation;
-
- if (jarLocation != null) {
- File file = new File(jarLocation);
- this.modulePackageName = file.getName();
- } else {
- this.modulePackageName = null;
- }
-
- if (moduleId == null) {
- if (connector != null && connector.getModuleName() != null) {
- moduleId = connector.getModuleName();
- } else if (connector != null && connector.getId() != null) {
- moduleId = connector.getId();
- } else {
-
- if (modulePackageName != null && modulePackageName.endsWith(".unpacked")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".unpacked".length());
- } else if (modulePackageName != null && modulePackageName.endsWith(".jar")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".jar".length());
- } else {
- moduleId = modulePackageName;
- }
- }
- }
- this.moduleId = moduleId;
- validation = new ValidationContext(ConnectorModule.class, jarLocation);
+ File file = (jarLocation == null) ? null : new File(jarLocation);
+ this.id = new ID(null, connector, null, file, null, this);
+ this.validation = new ValidationContext(this);
}
public ValidationContext getValidation() {
return validation;
}
+ public String getJarLocation() {
+ return (id.getLocation() != null) ? id.getLocation().getAbsolutePath() : null;
+ }
+
public String getModuleId() {
- return moduleId;
+ return id.getName();
+ }
+
+ public File getFile() {
+ return id.getLocation();
+ }
+
+ public URI getModuleUri() {
+ return id.getUri();
}
-
- @Override
- public String getModulePackageName() {
- return modulePackageName;
- }
public Map<String, Object> getAltDDs() {
return altDDs;
@@ -113,14 +95,6 @@ public class ConnectorModule implements
this.classLoader = classLoader;
}
- public String getJarLocation() {
- return jarLocation;
- }
-
- public void setJarLocation(String jarLocation) {
- this.jarLocation = jarLocation;
- }
-
public List<URL> getLibraries() {
return libraries;
}
@@ -132,7 +106,7 @@ public class ConnectorModule implements
@Override
public String toString() {
return "ConnectorModule{" +
- "moduleId='" + moduleId + '\'' +
+ "moduleId='" + id.getName() + '\'' +
'}';
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentModule.java Thu Mar 10 07:35:10 2011
@@ -16,6 +16,10 @@
*/
package org.apache.openejb.config;
+import org.apache.openejb.jee.NamedModule;
+
+import java.io.File;
+import java.net.URI;
import java.util.Map;
import java.util.Set;
@@ -25,15 +29,76 @@ import java.util.Set;
public interface DeploymentModule {
String getModuleId();
- String getModulePackageName();
+ URI getModuleUri();
ClassLoader getClassLoader();
String getJarLocation();
+ File getFile();
+
Map<String, Object> getAltDDs();
ValidationContext getValidation();
Set<String> getWatchedResources();
+
+ class ID {
+ private final String name;
+ private final File location;
+ private final URI uri;
+
+ public ID(NamedModule vendorDd, NamedModule specDd, String name, File location, URI uri, DeploymentModule module) {
+ this.name = name(vendorDd, specDd, uri, location, name, module);
+ this.location = location(location, uri);
+ this.uri = uri(uri, location, this.name);
+ }
+
+ private URI uri(URI uri, File location, String name) {
+ if (uri != null) return uri;
+ if (location != null) return location.toURI();
+ return URI.create(name);
+ }
+
+ private File location(File location, URI uri) {
+ if (location != null) return location;
+ if (uri != null && uri.isAbsolute()) return new File(uri);
+ return null;
+ }
+
+ private String name(NamedModule vendor, NamedModule spec, URI uri, File location, String name, DeploymentModule module) {
+ if (name != null && !name.startsWith("@")) return name;
+ if (vendor != null && vendor.getModuleName() != null) return vendor.getModuleName().trim();
+ if (vendor != null && vendor.getId() != null) return vendor.getId().trim();
+ if (spec != null && spec.getModuleName() != null) return spec.getModuleName().trim();
+ if (spec != null && spec.getId() != null) return spec.getId().trim();
+ if (uri != null) return stripExtension(uri.getPath());
+ if (location != null) return stripExtension(location.getName());
+ if (name != null) return name;
+ return "@" + module.getClass().getSimpleName() + module.hashCode();
+ }
+
+ private String stripExtension(String name) {
+ String[] exts = {".jar", ".zip", ".ear", ".war", ".rar", ".unpacked"};
+ for (String ext : exts) {
+ if (name.endsWith(ext)) {
+ return name.substring(0, name.length() - ext.length());
+ }
+ }
+ return name;
+ }
+
+ public String getName() {
+ if (name.startsWith("@")) return name.substring(1);
+ return name;
+ }
+
+ public File getLocation() {
+ return location;
+ }
+
+ public URI getUri() {
+ return uri;
+ }
+ }
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java Thu Mar 10 07:35:10 2011
@@ -142,17 +142,8 @@ public class EjbJarInfoBuilder {
EjbJarInfo ejbJar = new EjbJarInfo();
ejbJar.path = jar.getJarLocation();
ejbJar.moduleId = jar.getModuleId();
- ejbJar.modulePackageName=jar.getModulePackageName();
+ ejbJar.moduleUri =jar.getModuleUri();
-
- if (ejbJar.modulePackageName == null) {
- ejbJar.modulePackageName = new File(ejbJar.path).getName();
- }
-
- if (ejbJar.moduleId == null) {
- ejbJar.moduleId = ejbJar.modulePackageName.replaceFirst(".jar$","");
- }
-
ejbJar.watchedResources.addAll(jar.getWatchedResources());
ejbJar.properties.putAll(jar.getOpenejbJar().getProperties());
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java Thu Mar 10 07:35:10 2011
@@ -19,13 +19,15 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.Beans;
import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.NamedModule;
import org.apache.openejb.jee.Webservices;
import org.apache.openejb.jee.oejb3.OpenejbJar;
import org.apache.xbean.finder.AbstractFinder;
import java.io.File;
-import java.util.Map;
+import java.net.URI;
import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicReference;
@@ -33,6 +35,7 @@ import java.util.concurrent.atomic.Atomi
/**
* Class is to remain "dumb" and should not have deployment logic added to it.
* Class is intentionally not an interface as that would encourage "smart" implementations
+ *
* @version $Revision$ $Date$
*/
public class EjbModule implements WsModule {
@@ -40,22 +43,18 @@ public class EjbModule implements WsModu
private final ValidationContext validation;
private ClassLoader classLoader;
- private String jarLocation;
+
private EjbJar ejbJar;
private OpenejbJar openejbJar;
private Webservices webservices;
- private String moduleId;
- private String modulePackageName;
-
-
-
private final AtomicReference<AbstractFinder> finder = new AtomicReference<AbstractFinder>();
- private final Map<String,Object> altDDs = new HashMap<String,Object>();
+ private final Map<String, Object> altDDs = new HashMap<String, Object>();
private final Set<String> watchedResources = new TreeSet<String>();
private Beans beans;
private ClientModule clientModule;
+ private ID id;
public EjbModule(EjbJar ejbJar) {
this(Thread.currentThread().getContextClassLoader(), null, ejbJar, null);
@@ -73,46 +72,12 @@ public class EjbModule implements WsModu
this.ejbJar = ejbJar;
this.openejbJar = openejbJar;
- if (jarURI == null){
- if (moduleId != null){
- jarURI = moduleId;
- } else if (ejbJar.getId() != null && !ejbJar.getId().equals("")){
- jarURI = ejbJar.getId();
- } else {
- jarURI = ejbJar.toString();
- }
- }
- this.jarLocation = jarURI;
-
- if (jarLocation != null) {
- File file = new File(jarLocation);
- this.modulePackageName = file.getName();
- } else {
- this.modulePackageName = null;
- }
-
- if (moduleId == null) {
- if (ejbJar != null && ejbJar.getModuleName() != null) {
- moduleId = ejbJar.getModuleName();
- } else if (ejbJar != null && ejbJar.getId() != null) {
- moduleId = ejbJar.getId();
- } else if (modulePackageName == null) {
- moduleId = jarURI;
- } else {
-
- if (modulePackageName != null && modulePackageName.endsWith(".unpacked")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".unpacked".length());
- } else if (modulePackageName != null && modulePackageName.endsWith(".jar")) {
-
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".jar".length() );
- }else {
- moduleId = modulePackageName;
- }
- }
- }
-
- this.moduleId = moduleId;
- validation = new ValidationContext(EjbModule.class, jarLocation);
+ File file = null;
+
+ if (jarURI != null) file = new File(jarURI);
+
+ this.id = new ID(openejbJar, ejbJar, moduleId, file, null, this);
+ this.validation = new ValidationContext(this);
}
public EjbModule(ClassLoader classLoader, String jarURI, EjbJar ejbJar, OpenejbJar openejbJar) {
@@ -134,7 +99,7 @@ public class EjbModule implements WsModu
public void setFinder(AbstractFinder finder) {
this.finder.set(finder);
}
-
+
public ClientModule getClientModule() {
return clientModule;
}
@@ -172,28 +137,35 @@ public class EjbModule implements WsModu
}
public String getJarLocation() {
- return jarLocation;
+ return (id.getLocation() != null) ? id.getLocation().getAbsolutePath() : null;
}
public void setJarLocation(String jarLocation) {
- this.jarLocation = jarLocation;
+ this.id = new ID(openejbJar, ejbJar, id.getName(), new File(jarLocation), id.getUri(), this);
}
public String getModuleId() {
- return moduleId;
+ return id.getName();
}
- public void setModuleId(String moduleId) {
- this.moduleId = moduleId;
+ public File getFile() {
+ return id.getLocation();
}
- public String getModulePackageName() {
- return modulePackageName;
+ public void setModuleId(String moduleId) {
+ if (openejbJar == null) openejbJar = new OpenejbJar();
+ openejbJar.setModuleName(moduleId);
+
+ this.id = new ID(openejbJar, ejbJar, id.getName(), id.getLocation(), id.getUri(), this);
+ }
+
+ public URI getModuleUri() {
+ return id.getUri();
+ }
+
+ public void setModuleUri(URI moduleUri) {
+ this.id = new ID(openejbJar, ejbJar, id.getName(), id.getLocation(), moduleUri, this);
}
-
- public void setModulePackageName(String modulePackageName) {
- this.modulePackageName = modulePackageName;
- }
public OpenejbJar getOpenejbJar() {
return openejbJar;
@@ -218,7 +190,7 @@ public class EjbModule implements WsModu
@Override
public String toString() {
return "EjbModule{" +
- "moduleId='" + moduleId + '\'' +
+ "moduleId='" + id.getName() + '\'' +
'}';
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java Thu Mar 10 07:35:10 2011
@@ -64,7 +64,7 @@ public class FinderFactory {
}
return new ClassFinder(module.getClassLoader(), url);
} else {
- return new ClassFinder(module.getClassLoader());
+ return new ClassFinder();
}
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java Thu Mar 10 07:35:10 2011
@@ -18,6 +18,8 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.jpa.unit.Persistence;
+import java.io.File;
+import java.net.URI;
import java.util.Set;
import java.util.TreeSet;
import java.util.Map;
@@ -26,9 +28,10 @@ public class PersistenceModule implement
private String rootUrl;
private Persistence persistence;
private final Set<String> watchedResources = new TreeSet<String>();
+ private URI uri;
public PersistenceModule(String rootUrl, Persistence persistence) {
- this.rootUrl = rootUrl;
+ setRootUrl(rootUrl);
this.persistence = persistence;
}
@@ -38,6 +41,7 @@ public class PersistenceModule implement
public void setRootUrl(String rootUrl) {
this.rootUrl = rootUrl;
+ this.uri = URI.create(rootUrl);
}
public Persistence getPersistence() {
@@ -68,8 +72,11 @@ public class PersistenceModule implement
return null;
}
- @Override
- public String getModulePackageName() {
+ public URI getModuleUri() {
+ return uri;
+ }
+
+ public File getFile() {
return null;
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReportValidationResults.java Thu Mar 10 07:35:10 2011
@@ -57,7 +57,7 @@ public class ReportValidationResults imp
logResults(context, level);
}
- ValidationContext uberContext = new ValidationContext(AppModule.class, appModule.getValidation().getJarPath());
+ ValidationContext uberContext = new ValidationContext(appModule);
for (ValidationContext context : contexts) {
for (ValidationError error : context.getErrors()) {
uberContext.addError(error);
@@ -79,7 +79,7 @@ public class ReportValidationResults imp
logger.info("Set the '"+VALIDATION_LEVEL+"' system property to "+ join(" or ", levels) +" for increased validation details.");
}
- validationFailedException = new ValidationFailedException("Module failed validation. "+uberContext.getModuleType()+"(path="+uberContext.getJarPath()+")", uberContext, validationFailedException);
+ validationFailedException = new ValidationFailedException("Module failed validation. " + uberContext.getModuleType() + "(name=" + uberContext.getName() + ")", uberContext, validationFailedException);
if (validationFailedException != null) throw validationFailedException;
@@ -102,13 +102,13 @@ public class ReportValidationResults imp
if (context.hasErrors() || context.hasFailures()) {
- logger.error("Invalid "+context.getModuleType()+"(path="+context.getJarPath()+")");
+ logger.error("Invalid "+context.getModuleType()+"(path="+context.getName()+")");
// logger.error("Validation: "+errors.length + " errors, "+failures.length+ " failures, in "+context.getModuleType()+"(path="+context.getJarPath()+")");
} else if (context.hasWarnings()) {
if (context.getWarnings().length == 1) {
- logger.warning(context.getWarnings().length +" warning for "+context.getModuleType()+"(path="+context.getJarPath()+")");
+ logger.warning(context.getWarnings().length +" warning for "+context.getModuleType()+"(path="+context.getName()+")");
} else {
- logger.warning(context.getWarnings().length +" warnings for "+context.getModuleType()+"(path="+context.getJarPath()+")");
+ logger.warning(context.getWarnings().length +" warnings for "+context.getModuleType()+"(path="+context.getName()+")");
}
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationContext.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationContext.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationContext.java Thu Mar 10 07:35:10 2011
@@ -16,23 +16,33 @@
*/
package org.apache.openejb.config;
+import org.apache.openejb.jee.was.v6.common.QName;
+
import java.util.List;
import java.util.ArrayList;
/**
* @version $Rev$ $Date$
*/
-public class ValidationContext implements ValidationResults{
+public class ValidationContext implements ValidationResults {
private final List<ValidationFailure> failures = new ArrayList<ValidationFailure>();
private final List<ValidationWarning> warnings = new ArrayList<ValidationWarning>();
private final List<ValidationError> errors = new ArrayList<ValidationError>();
- private final String jarPath;
private final String moduleType;
+ private final String name;
+ private final DeploymentModule module;
- public ValidationContext(Class<? extends DeploymentModule> moduleType, String jarPath) {
+ public ValidationContext(Class<? extends DeploymentModule> moduleType, String name) {
this.moduleType = moduleType.getSimpleName();
- this.jarPath = jarPath;
+ this.name = name;
+ this.module = null;
+ }
+
+ public ValidationContext(DeploymentModule module) {
+ this.moduleType = module.getClass().getSimpleName();
+ this.module = module;
+ this.name = null;
}
public void fail(String component, String key, Object... details) {
@@ -95,8 +105,8 @@ public class ValidationContext implement
return errors.size() > 0;
}
- public String getJarPath() {
- return jarPath;
+ public String getName() {
+ return (module == null) ? name : module.getModuleId();
}
public String getModuleType() {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationFailedException.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationFailedException.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationFailedException.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationFailedException.java Thu Mar 10 07:35:10 2011
@@ -25,7 +25,7 @@ public class ValidationFailedException e
private final ValidationError[] errors;
private final ValidationFailure[] failures;
private final ValidationWarning[] warnings;
- private final String jarPath;
+ private final String name;
private final String moduleType;
public ValidationFailedException(String message, ValidationResults set) {
@@ -34,15 +34,15 @@ public class ValidationFailedException e
public ValidationFailedException(String message, ValidationResults set, ValidationFailedException e) {
super(message, e);
- jarPath = set.getJarPath();
+ name = set.getName();
errors = set.getErrors();
failures = set.getFailures();
warnings = set.getWarnings();
moduleType = set.getModuleType();
}
- public String getJarPath() {
- return jarPath;
+ public String getName() {
+ return name;
}
public ValidationError[] getErrors() {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationResults.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationResults.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationResults.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ValidationResults.java Thu Mar 10 07:35:10 2011
@@ -32,7 +32,7 @@ public interface ValidationResults {
boolean hasErrors();
- String getJarPath();
+ String getName();
String getModuleType();
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/WebModule.java Thu Mar 10 07:35:10 2011
@@ -17,6 +17,7 @@
package org.apache.openejb.config;
import java.io.File;
+import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@@ -43,20 +44,25 @@ public class WebModule implements WsModu
private String host;
private String contextRoot;
private ClassLoader classLoader;
- private String jarLocation;
- private final String moduleId;
- private String modulePackageName;
private final List<TldTaglib> taglibs = new ArrayList<TldTaglib>();
private final Set<String> watchedResources = new TreeSet<String>();
// List of all faces configuration files found in this web module
private final List<FacesConfig> facesConfigs = new ArrayList<FacesConfig>();
private AbstractFinder finder;
+ private ID id;
+
// keep the list of filtered URL we got after applying include/exclude pattern (@See DeploymentsResolver.loadFromClasspath)
private List<URL> urls;
public WebModule(WebApp webApp, String contextRoot, ClassLoader classLoader, String jarLocation, String moduleId) {
this.webApp = webApp;
+
+
+ File file = (jarLocation == null) ? null : new File(jarLocation);
+ this.id = new ID(null, webApp, moduleId, file, null, this);
+ this.validation = new ValidationContext(this);
+
if (contextRoot == null) {
contextRoot = jarLocation.substring(jarLocation.lastIndexOf(System.getProperty("file.separator")));
if (contextRoot.endsWith(".unpacked")) {
@@ -69,42 +75,24 @@ public class WebModule implements WsModu
if (contextRoot.startsWith("/")) contextRoot = contextRoot.substring(1);
this.contextRoot = contextRoot;
this.classLoader = classLoader;
- this.jarLocation = jarLocation;
-
- if (jarLocation != null) {
- File file = new File(jarLocation);
- this.modulePackageName = file.getName();
- } else {
- this.modulePackageName = null;
- }
if (webApp != null) webApp.setContextRoot(contextRoot);
+ }
- if (moduleId == null) {
-
- if (webApp != null && webApp.getModuleName() != null) {
- moduleId = webApp.getModuleName();
- } else if (webApp != null && webApp.getId() != null) {
- moduleId = webApp.getId();
- } else {
-
- if (modulePackageName != null && modulePackageName.endsWith(".unpacked")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".unpacked".length());
- } else if (modulePackageName != null && modulePackageName.endsWith(".jar")) {
- moduleId = modulePackageName.substring(0, modulePackageName.length() - ".jar".length());
- } else {
- moduleId = modulePackageName;
- }
- }
-
- }
-
-
-
- this.moduleId = moduleId;
-
-
- validation = new ValidationContext(WebModule.class, jarLocation);
+ public String getJarLocation() {
+ return (id.getLocation() != null) ? id.getLocation().getAbsolutePath() : null;
+ }
+
+ public String getModuleId() {
+ return id.getName();
+ }
+
+ public File getFile() {
+ return id.getLocation();
+ }
+
+ public URI getModuleUri() {
+ return id.getUri();
}
public List<URL> getUrls() {
@@ -127,15 +115,6 @@ public class WebModule implements WsModu
return validation;
}
- public String getModuleId() {
- return moduleId;
- }
-
- @Override
- public String getModulePackageName() {
- return modulePackageName;
- }
-
public Map<String, Object> getAltDDs() {
return altDDs;
}
@@ -165,15 +144,6 @@ public class WebModule implements WsModu
this.classLoader = classLoader;
}
- public String getJarLocation() {
- return jarLocation;
- }
-
- public void setJarLocation(String jarLocation) {
- this.jarLocation = jarLocation;
- }
-
-
public String getContextRoot() {
return contextRoot;
}
@@ -207,7 +177,7 @@ public class WebModule implements WsModu
@Override
public String toString() {
return "WebModule{" +
- "moduleId='" + moduleId + '\'' +
+ "moduleId='" + id.getName() + '\'' +
", contextRoot='" + contextRoot + '\'' +
'}';
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckDependsOn.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckDependsOn.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckDependsOn.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckDependsOn.java Thu Mar 10 07:35:10 2011
@@ -45,25 +45,14 @@ public class CheckDependsOn extends Vali
for (EjbModule ejbModule : appModule.getEjbModules()) {
- String modulePackageName = ejbModule.getModulePackageName();
-
- URI moduleUri = null;
- if (modulePackageName != null) {
- try {
- moduleUri = new URI(modulePackageName);
- } catch (URISyntaxException e) {
- return;
- }
- }
-
Resolver<Bean> resolver = new Resolver(app, new LinkResolver<Bean>());
for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
- Bean b = new Bean(bean, ejbModule, moduleUri, resolver);
+ Bean b = new Bean(bean, ejbModule, ejbModule.getModuleUri(), resolver);
- resolver.module.add(ejbModule.getModulePackageName(), bean.getEjbName(), b);
+ resolver.module.add(ejbModule.getModuleUri(), bean.getEjbName(), b);
- resolver.app.add(ejbModule.getModulePackageName(), bean.getEjbName(), b);
+ resolver.app.add(ejbModule.getModuleUri(), bean.getEjbName(), b);
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/LinkResolver.java Thu Mar 10 07:35:10 2011
@@ -17,6 +17,9 @@
*/
package org.apache.openejb.util;
+import org.apache.openejb.loader.JarLocation;
+
+import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
@@ -25,18 +28,23 @@ import java.util.Collections;
import java.net.URI;
public class LinkResolver<E> {
- private final Map<String, E> byFullName = new TreeMap<String, E>();
+ private final Map<URI, E> byFullName = new TreeMap<URI, E>();
private final Map<String, Collection<E>> byShortName = new TreeMap<String, Collection<E>>();
public boolean add(String modulePackageName, String name, E value) {
- String fullName = modulePackageName + "#" + name;
- if (byFullName.containsKey(fullName)) {
+ return add(URI.create(modulePackageName), name, value);
+ }
+
+ public boolean add(URI moduleURI, String name, E value) {
+ URI uri = resolve(moduleURI, name);
+
+ if (byFullName.containsKey(uri)) {
// entry already exists
return false;
}
// Full name: modulePackageName#name -> value
- byFullName.put(fullName, value);
+ byFullName.put(uri, value);
// Short name: name -> List(values)
Collection<E> values = byShortName.get(name);
@@ -49,6 +57,12 @@ public class LinkResolver<E> {
return true;
}
+ private URI resolve(URI moduleURI, String name) {
+ name = name.replaceAll(" ", "%20");
+ URI uri = moduleURI.resolve("#" + name);
+ return uri;
+ }
+
public Collection<E> values() {
return byFullName.values();
}
@@ -68,7 +82,7 @@ public class LinkResolver<E> {
// check for a name in the current module
E value = null;
if (moduleUri != null) {
- value = byFullName.get(moduleUri.toString() + "#" + link);
+ value = byFullName.get(resolve(moduleUri, link));
}
if (value != null) {
return value;
@@ -83,8 +97,8 @@ public class LinkResolver<E> {
return value;
} else if (moduleUri != null) {
// full (absolute) name
- String fullName = moduleUri.resolve(link).toString();
- E value = byFullName.get(fullName);
+ URI uri = moduleUri.resolve(link);
+ E value = byFullName.get(uri);
return value;
} else {
// Absolute reference in a standalone module
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEjbConfigurationValidationTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEjbConfigurationValidationTest.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEjbConfigurationValidationTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEjbConfigurationValidationTest.java Thu Mar 10 07:35:10 2011
@@ -23,6 +23,7 @@ import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -137,6 +138,10 @@ public class OpenEjbConfigurationValidat
continue;
}
+ if (URI.class.isAssignableFrom(type)) {
+ continue;
+ }
+
if(Date.class.isAssignableFrom(type)) {
continue;
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AnnotationDeployerTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AnnotationDeployerTest.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AnnotationDeployerTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AnnotationDeployerTest.java Thu Mar 10 07:35:10 2011
@@ -28,6 +28,7 @@ import static org.junit.Assert.assertTha
import org.apache.openejb.jee.EnterpriseBean;
import org.apache.openejb.jee.SessionBean;
+import org.apache.xbean.finder.ClassFinder;
import org.junit.Assert;
import org.junit.Test;
@@ -46,9 +47,7 @@ public class AnnotationDeployerTest {
* For http://issues.apache.org/jira/browse/OPENEJB-980
*/
public void applicationExceptionInheritanceTest() throws Exception {
- EjbJar ejbJar = new EjbJar("test-classes");
- EjbModule ejbModule = new EjbModule(ejbJar);
- ejbModule.setJarLocation(null); // TODO check why it's necessary now
+ EjbModule ejbModule = testModule();
AnnotationDeployer.DiscoverAnnotatedBeans discvrAnnBeans = new AnnotationDeployer.DiscoverAnnotatedBeans();
ejbModule = discvrAnnBeans.deploy(ejbModule);
@@ -63,7 +62,22 @@ public class AnnotationDeployerTest {
appEx = assemblyDescriptor.getApplicationException(ValueRequiredException.class);
assertThat(appEx, nullValue());
}
-
+
+ private EjbModule testModule() {
+ EjbJar ejbJar = new EjbJar("test-classes");
+ EjbModule ejbModule = new EjbModule(ejbJar);
+ ejbModule.setFinder(new ClassFinder(AnnotationDeployerTest.class,
+ BusinessException.class,
+ Exception.class,
+ GenericInterface.class,
+ InterceptedSLSBean.class,
+ MyMainClass.class,
+ TestLocalBean.class,
+ ValueRequiredException.class
+ ));
+ return ejbModule;
+ }
+
@Test
/**
* For https://issues.apache.org/jira/browse/OPENEJB-1063
@@ -96,10 +110,9 @@ public class AnnotationDeployerTest {
*/
@Test
public void interceptingGenericBusinessMethodCalls() throws Exception {
- EjbJar ejbJar = new EjbJar("test-classes");
- EjbModule ejbModule = new EjbModule(ejbJar);
- ejbModule.setJarLocation(null);
-
+ EjbModule ejbModule = testModule();
+ EjbJar ejbJar = ejbModule.getEjbJar();
+
AnnotationDeployer.DiscoverAnnotatedBeans discvrAnnBeans = new AnnotationDeployer.DiscoverAnnotatedBeans();
ejbModule = discvrAnnBeans.deploy(ejbModule);
@@ -113,9 +126,8 @@ public class AnnotationDeployerTest {
*/
@Test
public void testLocalBean() throws Exception {
- EjbJar ejbJar = new EjbJar("test-classes");
- EjbModule ejbModule = new EjbModule(ejbJar);
- ejbModule.setJarLocation(null);
+ EjbModule ejbModule = testModule();
+ EjbJar ejbJar = ejbModule.getEjbJar();
AppModule appModule = new AppModule(Thread.currentThread().getContextClassLoader(), "myapp");
appModule.getEjbModules().add(ejbModule);
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java Thu Mar 10 07:35:10 2011
@@ -260,7 +260,7 @@ public class AutoConfigPersistenceUnitsT
app.getPersistenceModules().add(new PersistenceModule("root", new Persistence(persistenceUnit)));
WebApp webApp = new WebApp();
webApp.setMetadataComplete(true);
- app.getWebModules().add(new WebModule(webApp, "orange-web", cl, "war", "orange-id"));
+ app.getWebModules().add(new WebModule(webApp, "orange-web", cl, null, "orange-id"));
// Create app
AppInfo appInfo = config.configureApplication(app);
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigurationFactoryTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigurationFactoryTest.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigurationFactoryTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigurationFactoryTest.java Thu Mar 10 07:35:10 2011
@@ -51,7 +51,7 @@ public class ConfigurationFactoryTest {
ejbJar.setMetadataComplete(true);
EjbJarInfo info = factory.configureApplication(ejbJar);
// not much to assert
- assertEquals(id, info.path);
+ assertEquals(id, info.moduleId);
}
@Test
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java Thu Mar 10 07:35:10 2011
@@ -137,7 +137,7 @@ public class OpenEjb2ConversionTest exte
private AppModule deploy(String ejbJarFileName, String openejbJarFileName) throws OpenEJBException {
// create and configure the module
- EjbModule ejbModule = new EjbModule(getClass().getClassLoader(), "TestModule", ejbJarFileName, null, null);
+ EjbModule ejbModule = new EjbModule(getClass().getClassLoader(), "TestModule", null, null, null);
AppModule appModule = new AppModule(getClass().getClassLoader(), "TestModule");
appModule.getEjbModules().add(ejbModule);
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/SunCmpConversionTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/SunCmpConversionTest.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/SunCmpConversionTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/SunCmpConversionTest.java Thu Mar 10 07:35:10 2011
@@ -91,7 +91,7 @@ public class SunCmpConversionTest extend
EjbJar ejbJar = (EjbJar) JaxbJavaee.unmarshalJavaee(EjbJar.class, new ByteArrayInputStream(readContent(in).getBytes()));
// create and configure the module
- EjbModule ejbModule = new EjbModule(getClass().getClassLoader(), "TestModule", ejbJarFileName, ejbJar, new OpenejbJar());
+ EjbModule ejbModule = new EjbModule(getClass().getClassLoader(), "TestModule", null, ejbJar, new OpenejbJar());
InitEjbDeployments initEjbDeployments = new InitEjbDeployments();
initEjbDeployments.deploy(ejbModule);
AppModule appModule = new AppModule(getClass().getClassLoader(), "TestModule");
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Application.java Thu Mar 10 07:35:10 2011
@@ -96,7 +96,7 @@ import javax.xml.bind.annotation.adapter
"messageDestination",
"dataSource"
})
-public class Application implements JndiConsumer {
+public class Application implements JndiConsumer, NamedModule {
@XmlElement(name = "application-name")
protected String applicationName;
@@ -162,6 +162,11 @@ public class Application implements Jndi
this.applicationName = value;
}
+ @Override
+ public String getModuleName() {
+ return getApplicationName();
+ }
+
@XmlElement(name = "description", required = true)
public Text[] getDescriptions() {
return description.toArray();
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java Thu Mar 10 07:35:10 2011
@@ -93,7 +93,7 @@ import java.util.Map;
"dataSource"
})
-public class ApplicationClient implements JndiConsumer, Lifecycle {
+public class ApplicationClient implements JndiConsumer, Lifecycle, NamedModule {
@XmlElement(name = "module-name", required = true)
protected String moduleName;
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Connector.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Connector.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Connector.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Connector.java Thu Mar 10 07:35:10 2011
@@ -76,7 +76,7 @@ import java.util.Map;
"resourceAdapter",
"requiredWorkContext"
})
-public class Connector {
+public class Connector implements NamedModule {
@XmlElement(name = "module-name")
protected String moduleName;
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EjbJar.java Thu Mar 10 07:35:10 2011
@@ -78,7 +78,7 @@ import java.util.Collection;
"assemblyDescriptor",
"ejbClientJar"
})
-public class EjbJar {
+public class EjbJar implements NamedModule {
@XmlElement(name = "module-name")
protected String moduleName;
Added: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/NamedModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/NamedModule.java?rev=1080136&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/NamedModule.java (added)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/NamedModule.java Thu Mar 10 07:35:10 2011
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.jee;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface NamedModule {
+
+ String getId();
+ String getModuleName();
+}
Propchange: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/NamedModule.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java Thu Mar 10 07:35:10 2011
@@ -98,7 +98,7 @@ import java.util.Map;
"moduleName"
})
-public class WebApp implements WebCommon, Lifecycle {
+public class WebApp implements WebCommon, Lifecycle, NamedModule {
@XmlTransient
private String contextRoot;
Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java?rev=1080136&r1=1080135&r2=1080136&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/OpenejbJar.java Thu Mar 10 07:35:10 2011
@@ -18,6 +18,7 @@
package org.apache.openejb.jee.oejb3;
+import org.apache.openejb.jee.NamedModule;
import org.apache.openejb.jee.StatelessBean;
import org.apache.openejb.jee.EnterpriseBean;
@@ -37,13 +38,16 @@ import java.util.Properties;
/**
*/
@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(propOrder = {"properties","ejbDeployment"})
+@XmlType(propOrder = {"moduleName", "properties","ejbDeployment"})
@XmlRootElement(name = "openejb-jar")
-public class OpenejbJar {
+public class OpenejbJar implements NamedModule {
@XmlElement(name = "properties")
@XmlJavaTypeAdapter(PropertiesAdapter.class)
protected Properties properties;
+ @XmlElement(name = "module-name")
+ protected String moduleName;
+
@XmlElement(name = "ejb-deployment", required = true)
protected List<EjbDeployment> ejbDeployment;
@@ -70,6 +74,20 @@ public class OpenejbJar {
return map;
}
+ @Override
+ public String getId() {
+ return null;
+ }
+
+ @Override
+ public String getModuleName() {
+ return moduleName;
+ }
+
+ public void setModuleName(String moduleName) {
+ this.moduleName = moduleName;
+ }
+
public int getEjbDeploymentCount() {
return getEjbDeployment().size();
}