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


Reply via email to