You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/01/15 02:43:35 UTC
svn commit: r1231611 - in /openejb/branches/openejb-4.0.0-beta-2: ./
container/openejb-core/src/test/java/org/apache/openejb/config/
container/openejb-jee/src/test/resources/jsf/
examples/alternate-descriptors/src/main/resources/META-INF/ examples/appl...
Author: dblevins
Date: Sun Jan 15 01:43:35 2012
New Revision: 1231611
URL: http://svn.apache.org/viewvc?rev=1231611&view=rev
Log:
svn merge -r 1230436:1230437 https://svn.apache.org/repos/asf/openejb/trunk/openejb
http://svn.apache.org/viewvc?view=revision&revision=1230437
------------------------------------------------------------------------
r1230437 | dblevins | 2012-01-12 00:15:16 -0800 (Thu, 12 Jan 2012) | 2 lines
Previous fix to remove duplicate urls removed all URLs on OSX and Linux if the UrlCache was empty
------------------------------------------------------------------------
Modified:
openejb/branches/openejb-4.0.0-beta-2/ (props changed)
openejb/branches/openejb-4.0.0-beta-2/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java (props changed)
openejb/branches/openejb-4.0.0-beta-2/container/openejb-jee/src/test/resources/jsf/ (props changed)
openejb/branches/openejb-4.0.0-beta-2/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml (props changed)
openejb/branches/openejb-4.0.0-beta-2/examples/application-composer/ (props changed)
openejb/branches/openejb-4.0.0-beta-2/src/ (props changed)
openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
Propchange: openejb/branches/openejb-4.0.0-beta-2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,4 +1,4 @@
/openejb/branches/openejb-3.1.1:779593
/openejb/branches/openejb-3.1.x:945409,945448,1004381,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375,1022393,1023096,1023116,1023125,1026527,1027696,1027724,1027739,1027754,1032856,1032866,1034030,1040222,1040250
/openejb/branches/openejb-jcdi:984659-985270
-/openejb/trunk/openejb:1230327,1230343
+/openejb/trunk/openejb:1230327,1230343,1230437
Propchange: openejb/branches/openejb-4.0.0-beta-2/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,4 +1,4 @@
/openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375,1022393,1023096,1023116,1023125,1026527,1027696,1027724,1027739,1027754,1032856,1032866,1034030,1040222,1040250
/openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:984659-985270
-/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:1230327,1230343
+/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:1230327,1230343,1230437
Propchange: openejb/branches/openejb-4.0.0-beta-2/container/openejb-jee/src/test/resources/jsf/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -2,4 +2,4 @@
/geronimo/server/branches/3.0-M1/plugins/myfaces/geronimo-myfaces-builder/src/test/resources:948864,951792
/geronimo/server/trunk/plugins/j2ee/myfaces/geronimo-myfaces-builder/src/test/resources:887507
/openejb/branches/openejb-jcdi/container/openejb-jee/src/test/resources/jsf:984659-985270
-/openejb/trunk/openejb/container/openejb-jee/src/test/resources/jsf:1230327,1230343
+/openejb/trunk/openejb/container/openejb-jee/src/test/resources/jsf:1230327,1230343,1230437
Propchange: openejb/branches/openejb-4.0.0-beta-2/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,4 +1,4 @@
/openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
/openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375,1022393,1023096,1023116,1023125,1026527,1027696,1027724,1027739,1027754,1032856,1032866,1034030,1040222,1040250
/openejb/branches/openejb-jcdi/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:984659-985270
-/openejb/trunk/openejb/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:1230327,1230343
+/openejb/trunk/openejb/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:1230327,1230343,1230437
Propchange: openejb/branches/openejb-4.0.0-beta-2/examples/application-composer/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,3 +1,3 @@
/openejb/branches/openejb-3.1.1/examples/application-composer:779593
-/openejb/trunk/openejb/examples/application-composer:1230327,1230343
+/openejb/trunk/openejb/examples/application-composer:1230327,1230343,1230437
/openejb/trunk/openejb3/examples/application-composer:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948243,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172,1029528
Propchange: openejb/branches/openejb-4.0.0-beta-2/src/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,3 +1,3 @@
/openejb/branches/openejb-3.1.1/src:779593
-/openejb/trunk/openejb/src:1230327,1230343
+/openejb/trunk/openejb/src:1230327,1230343,1230437
/openejb/trunk/openejb3/src:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948243,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172,1029528
Modified: openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java?rev=1231611&r1=1231610&r2=1231611&view=diff
==============================================================================
--- openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java (original)
+++ openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java Sun Jan 15 01:43:35 2012
@@ -23,6 +23,7 @@ import org.apache.catalina.loader.Webapp
import org.apache.naming.resources.DirContextURLStreamHandler;
import org.apache.openejb.ClassLoaderUtil;
import org.apache.openejb.util.ArrayEnumeration;
+import org.apache.openejb.util.URLs;
import org.apache.tomcat.util.ExceptionUtils;
import java.io.File;
@@ -32,7 +33,9 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
public class TomEEWebappLoader extends WebappLoader {
private ClassLoader appClassLoader;
@@ -80,17 +83,21 @@ public class TomEEWebappLoader extends W
* @throws IOException
*/
@Override public Enumeration<URL> getResources(final String name) throws IOException {
- final List<URL> urls = new ArrayList<URL>();
+ // DMB: On inspection I was seeing three copies of the same resource
+ // due to the app.getResources and webapp.getResources call.
+ // Switching from a list to a form of set trims the duplicates
+ final Map<String, URL> urls = new HashMap<String, URL>();
+
if (webapp instanceof WebappClassLoader && ((WebappClassLoader) webapp).isStarted() || webapp.getParent() == null) { // we set a parent so if it is null webapp was detroyed
add(urls, app.getResources(name));
add(urls, webapp.getResources(name));
- return new ArrayEnumeration(clear(urls));
+ return new ArrayEnumeration(clear(urls.values()));
}
return app.getResources(name);
}
- private List<URL> clear(List<URL> urls) { // take care of antiJarLocking
+ private List<URL> clear(Iterable<URL> urls) { // take care of antiJarLocking
final List<URL> clean = new ArrayList<URL>();
for (URL url : urls) {
final String urlStr = url.toExternalForm();
@@ -115,7 +122,13 @@ public class TomEEWebappLoader extends W
if (resource != null && !clean.contains(resource)) {
clean.add(resource);
}
- }
+ } else {
+ // DMB: Unsure if this is the correct hanlding of the else case,
+ // but in OSX the getUrlKeyCached returns null so the url was
+ // being ignored
+ clean.add(url);
+ }
+
} else if (clean.contains(url)) {
clean.add(url);
}
@@ -123,11 +136,11 @@ public class TomEEWebappLoader extends W
return clean;
}
- private void add(Collection<URL> urls, Enumeration<URL> enumUrls) {
+ private void add(Map<String, URL> urls, Enumeration<URL> enumUrls) {
try {
while (enumUrls.hasMoreElements()) {
final URL url = enumUrls.nextElement();
- urls.add(url);
+ urls.put(url.toExternalForm(), url);
}
} catch (IllegalStateException ese) {
// ignored: if jars are already closed...shutdown for instance
@@ -135,17 +148,7 @@ public class TomEEWebappLoader extends W
}
private static File file(URL jarUrl) {
- String urlAsString = jarUrl.getFile();
- if (urlAsString.startsWith("jar:")) {
- urlAsString = urlAsString.substring(4);
- }
- if (urlAsString.startsWith("file:/")) {
- urlAsString = urlAsString.substring(6);
- }
- if (urlAsString.endsWith("!/")) {
- urlAsString = urlAsString.substring(0, urlAsString.length() - 2);
- }
- return new File(urlAsString);
+ return URLs.toFile(jarUrl);
}
}
}