Author: rmannibucau
Date: Wed Nov 7 22:18:10 2012
New Revision: 1406845
URL: http://svn.apache.org/viewvc?rev=1406845&view=rev
Log:
TOMEE-560 custom bean validation impl in webapp should be possible
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=1406845&r1=1406844&r2=1406845&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
Wed Nov 7 22:18:10 2012
@@ -71,8 +71,8 @@ public class TempClassLoader extends URL
@Override
public Enumeration<URL> getResources(final String name) throws IOException
{
final Enumeration<URL> urls = super.getResources(name);
- if (URLClassLoaderFirst.isSlf4jQuery(name)) {
- return URLClassLoaderFirst.filterSlf4jImpl(urls);
+ if (URLClassLoaderFirst.isFilterableResource(name)) {
+ return URLClassLoaderFirst.filterResources(name, urls);
}
return urls;
}
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java?rev=1406845&r1=1406844&r2=1406845&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
Wed Nov 7 22:18:10 2012
@@ -327,23 +327,24 @@ public class URLClassLoaderFirst extends
@Override
public Enumeration<URL> getResources(final String name) throws IOException
{
final Enumeration<URL> result = super.getResources(name);
- if (isSlf4jQuery(name)) {
- return filterSlf4jImpl(result);
+ if (URLClassLoaderFirst.isFilterableResource(name)) {
+ return URLClassLoaderFirst.filterResources(name, result);
}
return result;
}
- public static final String SLF4J_STATIC_LOGGER_BINDER_CLASS =
"org/slf4j/impl/StaticLoggerBinder.class";
-
- public static boolean isSlf4jQuery(final String name) {
- return SLF4J_STATIC_LOGGER_BINDER_CLASS.equals(name);
+ public static boolean isFilterableResource(final String name) {
+ // currently bean validation, Slf4j
+ return
"META-INF/services/javax.validation.spi.ValidationProvider".equals(name)
+ || "org/slf4j/impl/StaticLoggerBinder.class".equals(name);
}
- public static Enumeration<URL> filterSlf4jImpl(final Enumeration<URL>
result) {
+ // useful method for SPI
+ public static Enumeration<URL> filterResources(final String name, final
Enumeration<URL> result) {
final Collection<URL> values = Collections.list(result);
if (values.size() > 1) {
// remove openejb one
- final URL url = URLClassLoaderFirst.class.getResource("/" +
SLF4J_STATIC_LOGGER_BINDER_CLASS);
+ final URL url = URLClassLoaderFirst.class.getResource("/" + name);
if (url != null) {
values.remove(url);
}
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java?rev=1406845&r1=1406844&r2=1406845&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
Wed Nov 7 22:18:10 2012
@@ -166,8 +166,8 @@ public class LazyStopWebappClassLoader e
@Override
public Enumeration<URL> getResources(final String name) throws IOException
{
final Enumeration<URL> urls = super.getResources(name);
- if (URLClassLoaderFirst.isSlf4jQuery(name)) {
- return URLClassLoaderFirst.filterSlf4jImpl(urls);
+ if (URLClassLoaderFirst.isFilterableResource(name)) {
+ return URLClassLoaderFirst.filterResources(name, urls);
}
return urls;
}