Author: rmannibucau Date: Tue May 14 16:19:17 2013 New Revision: 1482421 URL: http://svn.apache.org/r1482421 Log: TOMEE-935 persistence.xml handling in webapp is not complete
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1482421&r1=1482420&r2=1482421&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Tue May 14 16:19:17 2013 @@ -577,14 +577,37 @@ public class DeploymentLoader implements DeploymentsResolver.loadFromClasspath(base, filteredUrls, appModule.getClassLoader()); addPersistenceUnits(appModule, filteredUrls.toArray(new URL[filteredUrls.size()])); + final Object pXmls = appModule.getAltDDs().get("persistence.xml"); + for (final WebModule webModule : appModule.getWebModules()) { - final List<URL> scannableUrls = webModule.getScannableUrls(); final List<URL> foundRootUrls = new ArrayList<URL>(); + final List<URL> scannableUrls = webModule.getScannableUrls(); for (final URL url : scannableUrls) { if (!addPersistenceUnits(appModule, url).isEmpty()) { foundRootUrls.add(url); } } + + if (pXmls != null && Collection.class.isInstance(pXmls)) { + final File webapp = webModule.getFile(); + if (webapp == null) { + continue; + } + final String webappAbsolutePath = webapp.getAbsolutePath(); + + final Collection<URL> list = Collection.class.cast(pXmls); + for (final URL url : list) { + try { + final File file = URLs.toFile(url); + if (file.getAbsolutePath().startsWith(webappAbsolutePath)) { + foundRootUrls.add(url); + } + } catch (final IllegalArgumentException iae) { + // no-op + } + } + } + webModule.getAltDDs().put(EAR_WEBAPP_PERSISTENCE_XML_JARS, foundRootUrls); }