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