diff --git a/java/runjava/pom.xml b/java/runjava/pom.xml index 8aeb185723052e612ca8ebc14ffba517c0cf032c..feed5f1912698ce948f965e6869e9f84d30b8519 100644 --- a/java/runjava/pom.xml +++ b/java/runjava/pom.xml @@ -43,6 +43,31 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.2</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <relocations> + <relocation> + <pattern>net.sf.cglib</pattern> + <shadedPattern>io.osv.shade.net.sf.cglib</shadedPattern> + </relocation> + <relocation> + <pattern>org.objectweb.asm</pattern> + <shadedPattern>io.osv.shade.org.objectweb.asm</shadedPattern> + </relocation> + </relocations> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project> diff --git a/java/runjava/src/main/java/io/osv/ContextIsolator.java b/java/runjava/src/main/java/io/osv/ContextIsolator.java index 2c425e99a1954e1253c8cccc139efe6b739a9452..96e00504bb695319d077a66f4e840d482cbec1fe 100644 --- a/java/runjava/src/main/java/io/osv/ContextIsolator.java +++ b/java/runjava/src/main/java/io/osv/ContextIsolator.java @@ -60,8 +60,7 @@ public class ContextIsolator { ClassLoader originalSystemClassLoader = getOsvClassLoader().getParent(); masterContext = new Context(originalSystemClassLoader, System.getProperties()); - parentClassLoaderForIsolates = new TeeClassLoader( - new FilteringClassLoader(originalSystemClassLoader, "io.osv.")); + parentClassLoaderForIsolates = originalSystemClassLoader; installSystemPropertiesProxy(); } diff --git a/java/runjava/src/main/java/io/osv/FilteringClassLoader.java b/java/runjava/src/main/java/io/osv/FilteringClassLoader.java deleted file mode 100644 index 6c8c28a1af00394b4ed3a4186befcbf81363accc..0000000000000000000000000000000000000000 --- a/java/runjava/src/main/java/io/osv/FilteringClassLoader.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.osv; - -class FilteringClassLoader extends ClassLoader { - private final String allowedPrefix; - - public FilteringClassLoader(ClassLoader parent, String allowedPrefix) { - super(parent); - this.allowedPrefix = allowedPrefix; - } - - private boolean isClassAllowed(String name) { - return name.startsWith(allowedPrefix); - } - - @Override - protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { - if (!isClassAllowed(name)) { - throw new ClassNotFoundException(name); - } - return super.loadClass(name, resolve); - } -} diff --git a/java/runjava/src/main/java/io/osv/TeeClassLoader.java b/java/runjava/src/main/java/io/osv/TeeClassLoader.java deleted file mode 100644 index 1d98a3b83582767aa439d7e0cecfa91e65d6d21e..0000000000000000000000000000000000000000 --- a/java/runjava/src/main/java/io/osv/TeeClassLoader.java +++ /dev/null @@ -1,29 +0,0 @@ -package io.osv; - -import java.io.IOException; -import java.net.URL; -import java.util.Enumeration; - -class TeeClassLoader extends ClassLoader { - private ClassLoader delegate; - - public TeeClassLoader(ClassLoader delegate) { - super(null); - this.delegate = delegate; - } - - @Override - protected Class<?> findClass(String name) throws ClassNotFoundException { - return delegate.loadClass(name); - } - - @Override - protected URL findResource(String name) { - return delegate.getResource(name); - } - - @Override - protected Enumeration<URL> findResources(String name) throws IOException { - return delegate.getResources(name); - } -} diff --git a/java/tests/pom.xml b/java/tests/pom.xml index e34b357d428372a1e1e5f24111a5431ad5facc85..e463d461cf8450c696631d953dd52e8afe900324 100644 --- a/java/tests/pom.xml +++ b/java/tests/pom.xml @@ -81,23 +81,6 @@ </execution> </executions> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory> - <testClassesDirectory>target/classes</testClassesDirectory> - <argLine>-ea -Djava.system.class.loader=io.osv.OsvSystemClassLoader - -Djava.util.logging.manager=io.osv.jul.IsolatingLogManager - </argLine> - <systemProperties> - <property> - <name>isolates.jar</name> - <value>${io.osv:tests-isolates:jar:jar-with-dependencies}</value> - </property> - </systemProperties> - </configuration> - </plugin> </plugins> </build> </project>