You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2013/06/28 10:14:13 UTC
svn commit: r1497672 - in
/openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone:
OwbSWClassLoader.java OwbStandaloneConfiguration.java
OwbStandaloneContainer.java
Author: rmannibucau
Date: Fri Jun 28 08:14:13 2013
New Revision: 1497672
URL: http://svn.apache.org/r1497672
Log:
OWB-876 virtual resource handling in arquillian - allow to exclude some resources from filtering
Modified:
openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbSWClassLoader.java
openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneConfiguration.java
openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneContainer.java
Modified: openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbSWClassLoader.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbSWClassLoader.java?rev=1497672&r1=1497671&r2=1497672&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbSWClassLoader.java (original)
+++ openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbSWClassLoader.java Fri Jun 28 08:14:13 2013
@@ -35,6 +35,7 @@ import java.net.URLClassLoader;
import java.net.URLConnection;
import java.net.URLStreamHandler;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
@@ -45,12 +46,14 @@ public class OwbSWClassLoader extends UR
private final String prefix;
private final boolean useOnlyArchiveResources;
private final Archive<?> archive;
+ private final Collection<String> useOnlyArchiveResourcesExcludes;
- public OwbSWClassLoader(final ClassLoader parent, final Archive<?> archive, final boolean useOnlyArchiveResources)
+ public OwbSWClassLoader(final ClassLoader parent, final Archive<?> archive, final boolean useOnlyArchiveResources, final Collection<String> useOnlyArchiveResourcesExcludes)
{
super(new URL[0], parent);
this.useOnlyArchiveResources = useOnlyArchiveResources;
+ this.useOnlyArchiveResourcesExcludes = useOnlyArchiveResourcesExcludes;
this.archive = archive;
if (WebArchive.class.isInstance(archive))
@@ -92,7 +95,13 @@ public class OwbSWClassLoader extends UR
if (useOnlyArchiveResources)
{
final Enumeration<URL> urls = findResources(name);
- if (urls.hasMoreElements())
+ if (useOnlyArchiveResourcesExcludes.contains(name))
+ {
+ final Collection<URL> returnValue = new ArrayList<URL>(Collections.list(urls));
+ returnValue.addAll(Collections.list(super.getResources(name)));
+ return Collections.enumeration(returnValue);
+ }
+ else if (urls.hasMoreElements())
{
return urls;
} // else user probably used the fact the test is embedded
Modified: openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneConfiguration.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneConfiguration.java?rev=1497672&r1=1497671&r2=1497672&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneConfiguration.java (original)
+++ openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneConfiguration.java Fri Jun 28 08:14:13 2013
@@ -31,6 +31,7 @@ public class OwbStandaloneConfiguration
* can be useful when a resource should appear a single time in an app
*/
private boolean useOnlyArchiveResources = false;
+ private String useOnlyArchiveResourcesExcludes = null;
@Override
public void validate() throws ConfigurationException
@@ -47,4 +48,14 @@ public class OwbStandaloneConfiguration
{
this.useOnlyArchiveResources = useOnlyArchiveResources;
}
+
+ public String getUseOnlyArchiveResourcesExcludes()
+ {
+ return useOnlyArchiveResourcesExcludes;
+ }
+
+ public void setUseOnlyArchiveResourcesExcludes(final String useOnlyArchiveResourcesExcludes)
+ {
+ this.useOnlyArchiveResourcesExcludes = useOnlyArchiveResourcesExcludes;
+ }
}
Modified: openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneContainer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneContainer.java?rev=1497672&r1=1497671&r2=1497672&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneContainer.java (original)
+++ openwebbeans/trunk/webbeans-arquillian/owb-arquillian-standalone/src/main/java/org/apache/webbeans/arquillian/standalone/OwbStandaloneContainer.java Fri Jun 28 08:14:13 2013
@@ -35,6 +35,9 @@ import org.jboss.shrinkwrap.descriptor.a
import javax.enterprise.inject.spi.BeanManager;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.logging.Logger;
/**
@@ -57,6 +60,7 @@ public class OwbStandaloneContainer impl
private final ThreadLocal<ClassLoader> originalLoader = new ThreadLocal<ClassLoader>();
private boolean useOnlyArchiveResources;
+ private Collection<String> useOnlyArchiveResourcesExcludes = new ArrayList<String>();
@Override
public Class<OwbStandaloneConfiguration> getConfigurationClass()
@@ -79,6 +83,10 @@ public class OwbStandaloneContainer impl
WebBeansFinder.setSingletonService(singletonService);
useOnlyArchiveResources = owbStandaloneConfiguration.isUseOnlyArchiveResources();
+ if (useOnlyArchiveResources && owbStandaloneConfiguration.getUseOnlyArchiveResourcesExcludes() != null)
+ {
+ useOnlyArchiveResourcesExcludes = Arrays.asList(owbStandaloneConfiguration.getUseOnlyArchiveResourcesExcludes().split(","));
+ }
}
@@ -107,7 +115,7 @@ public class OwbStandaloneContainer impl
final ClassLoader parentLoader = Thread.currentThread().getContextClassLoader();
originalLoader.set(parentLoader);
- Thread.currentThread().setContextClassLoader(new OwbSWClassLoader(parentLoader, archive, useOnlyArchiveResources));
+ Thread.currentThread().setContextClassLoader(new OwbSWClassLoader(parentLoader, archive, useOnlyArchiveResources, useOnlyArchiveResourcesExcludes));
try
{