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 2012/06/25 19:47:28 UTC

svn commit: r1353682 - in /openejb/trunk/openejb: arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java

Author: rmannibucau
Date: Mon Jun 25 17:47:26 2012
New Revision: 1353682

URL: http://svn.apache.org/viewvc?rev=1353682&view=rev
Log:
OPENEJB-1845 some common persistence.xml management for arquillian (classloaderasset, persistence.xml in root folder and WEB-INF/classes/META-INF/)

Modified:
    openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java

Modified: openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java?rev=1353682&r1=1353681&r2=1353682&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java (original)
+++ openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java Mon Jun 25 17:47:26 2012
@@ -55,6 +55,7 @@ import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ArchivePath;
 import org.jboss.shrinkwrap.api.Node;
 import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
 import org.jboss.shrinkwrap.api.asset.FileAsset;
 import org.jboss.shrinkwrap.api.asset.UrlAsset;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
@@ -143,7 +144,10 @@ public class OpenEJBArchiveProcessor imp
         }
 
         {
-            final Node persistenceXml = archive.get(prefix.concat(PERSISTENCE_XML));
+            Node persistenceXml = archive.get(prefix.concat(PERSISTENCE_XML));
+            if (persistenceXml == null && prefix.startsWith("WEB-INF")) { // particular case
+                persistenceXml = archive.get(prefix.concat("classes/META-INF/").concat(PERSISTENCE_XML));
+            }
             if (persistenceXml != null) {
                 final Asset asset = persistenceXml.getAsset();
                 if (asset instanceof UrlAsset) {
@@ -154,6 +158,13 @@ public class OpenEJBArchiveProcessor imp
                     } catch (MalformedURLException e) {
                         appModule.getAltDDs().put(PERSISTENCE_XML, Arrays.asList(new AssetSource(persistenceXml.getAsset())));
                     }
+                } else if (asset instanceof ClassLoaderAsset) {
+                    final URL url = get(ClassLoader.class, "classLoader", asset).getResource(get(String.class, "resourceName", asset));
+                    if (url != null) {
+                        appModule.getAltDDs().put(PERSISTENCE_XML, Arrays.asList(url));
+                    } else {
+                        appModule.getAltDDs().put(PERSISTENCE_XML, Arrays.asList(new AssetSource(persistenceXml.getAsset())));
+                    }
                 } else {
                     appModule.getAltDDs().put(PERSISTENCE_XML, Arrays.asList(new AssetSource(persistenceXml.getAsset())));
                 }

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1353682&r1=1353681&r2=1353682&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Mon Jun 25 17:47:26 2012
@@ -126,7 +126,12 @@ public class ReadDescriptors implements 
                     path = file.getAbsolutePath();
 
                     if (file.getName().endsWith("persistence.xml")) {
-                        file = file.getParentFile().getParentFile();
+                        final String parent = file.getParentFile().getName();
+                        if (parent.equalsIgnoreCase("WEB-INF") || parent.equalsIgnoreCase("META-INF")) {
+                            file = file.getParentFile().getParentFile();
+                        } else { // we don't really know so simply go back (users will often put persistence.xml in root resource folder with arquillian)
+                            file = file.getParentFile();
+                        }
                     }
                     moduleName = file.toURI().toString();