Author: dblevins
Date: Mon Jun 23 18:46:59 2008
New Revision: 670992
URL: http://svn.apache.org/viewvc?rev=670992&view=rev
Log:
OPENEJB-831: PersistenceModule discoverable via the classpath
Removed:
openejb/trunk/openejb3/examples/ear-testing/business-model/src/main/resources/META-INF/ejb-jar.xml
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceModule.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=670992&r1=670991&r2=670992&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
Mon Jun 23 18:46:59 2008
@@ -153,6 +153,16 @@
AppModule appModule = new
AppModule(OpenEJB.class.getClassLoader(), warPath);
addWebModule(appModule, warPath,
OpenEJB.class.getClassLoader(), null, moduleId);
return appModule;
+ } else if (PersistenceModule.class.equals(moduleClass)) {
+ ClassLoader classLoader =
ClassLoaderUtil.createTempClassLoader(jarPath, new URL[]{baseUrl},
OpenEJB.class.getClassLoader());
+
+ // wrap the EJB Module with an Application Module
+ AppModule appModule = new AppModule(classLoader, jarPath);
+
+ // Persistence Units
+ addPersistenceUnits(appModule, baseUrl);
+
+ return appModule;
} else {
throw new UnsupportedModuleTypeException("Unsupported module
type: "+moduleClass.getSimpleName());
}
@@ -985,6 +995,10 @@
}
}
+ if (descriptors.containsKey("persistence.xml")) {
+ return PersistenceModule.class;
+ }
+
throw new UnknownModuleTypeException("Unknown module type: url=" +
baseUrl.toExternalForm());
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java?rev=670992&r1=670991&r2=670992&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
Mon Jun 23 18:46:59 2008
@@ -283,7 +283,7 @@
for (URL url : urls) {
try {
Class<? extends DeploymentModule> moduleType =
DeploymentLoader.discoverModuleType(url, classLoader,
searchForDescriptorlessApplications);
- if (AppModule.class.isAssignableFrom(moduleType) ||
EjbModule.class.isAssignableFrom(moduleType)) {
+ if (AppModule.class.isAssignableFrom(moduleType) ||
EjbModule.class.isAssignableFrom(moduleType) ||
PersistenceModule.class.isAssignableFrom(moduleType)) {
deployment = JaxbOpenejb.createDeployments();
if (url.getProtocol().equals("jar")) {
url = new URL(url.getFile().replaceFirst("!.*$", ""));
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=670992&r1=670991&r2=670992&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
Mon Jun 23 18:46:59 2008
@@ -20,8 +20,9 @@
import java.util.Set;
import java.util.TreeSet;
+import java.util.Map;
-public class PersistenceModule {
+public class PersistenceModule implements DeploymentModule {
private String rootUrl;
private Persistence persistence;
private final Set<String> watchedResources = new TreeSet<String>();
@@ -50,4 +51,24 @@
public Set<String> getWatchedResources() {
return watchedResources;
}
+
+ public Map<String, Object> getAltDDs() {
+ return null;
+ }
+
+ public ClassLoader getClassLoader() {
+ return null;
+ }
+
+ public String getJarLocation() {
+ return null;
+ }
+
+ public String getModuleId() {
+ return null;
+ }
+
+ public ValidationContext getValidation() {
+ return null;
+ }
}