package org.jboss.forge.furnace.modules.providers;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import org.jboss.forge.furnace.modules.ModuleSpecProvider;
import org.jboss.modules.DependencySpec;
import org.jboss.modules.ModuleIdentifier;
import org.jboss.modules.ModuleLoader;
import org.jboss.modules.ModuleSpec;
import org.jboss.modules.ModuleSpec.Builder;
import org.jboss.modules.filter.PathFilters;
/**
* This class is the base class for any {@link ModuleSpecProvider} implementation inside Furnace
*/
public abstract class AbstractModuleSpecProvider implements ModuleSpecProvider
{
@Override
public ModuleSpec get(ModuleLoader loader, ModuleIdentifier id)
{
if (getId().equals(id))
{
Builder builder = ModuleSpec.build(id);
builder.addDependency(DependencySpec.createClassLoaderDependencySpec(PathFilters.acceptAll(),
PathFilters.acceptAll(), ClassLoader.getSystemClassLoader(), getPaths()));
configure(loader, builder);
return builder.create();
}
return null;
}
protected void configure(ModuleLoader loader, Builder builder)
{
}
protected abstract ModuleIdentifier getId();
protected abstract Set<String> getPaths();
static protected Set<String> systemPaths = new HashSet<String>();
private static Set<String> getPathsFrom(String root, File file)
{
Set<String> result = new HashSet<String>();
String[] children = file.list();
for (String name : children)
{
File child = new File(file, name);
if (child.isDirectory())
{
result.addAll(getPathsFrom(root, child));
String path = child.getAbsolutePath().substring(root.length() + 1);
result.add(path);
}
}
return result;
}
protected static Set<String> getLoaderPaths()
{
Set<String> result = new HashSet<String>();
ClassLoader loader = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader) loader).getURLs();
for (URL url : urls)
{
try
{
File file = new File(url.toURI());
if (file.isDirectory())
{
result.addAll(getPathsFrom(file.getAbsolutePath(), file));
}
else if (!file.isDirectory())
{
JarFile jar = new JarFile(file);
Enumeration<JarEntry> entries = jar.entries();
while (entries.hasMoreElements())
{
JarEntry entry = entries.nextElement();
String name = entry.getName();
if (name.indexOf('/') != -1)
result.add(name.substring(0, name.lastIndexOf('/')));
}
}
}
catch (IOException e)
{
System.out.println("Failed loading paths from: [" + url.toString() + "]. Attempting folder discovery");
}
catch (URISyntaxException e)
{
throw new RuntimeException(e);
}
}
return result;
}
static
{
systemPaths.add("META-INF");
systemPaths.add("META-INF/services");
systemPaths.add("__redirected");
systemPaths.add("ch/qos/cal10n");
systemPaths.add("ch/qos/cal10n/util");
systemPaths.add("ch/qos/cal10n/verifier");
systemPaths.add("com/google/common/annotations");
systemPaths.add("com/google/common/base");
systemPaths.add("com/google/common/base/internal");
systemPaths.add("com/google/common/cache");
systemPaths.add("com/google/common/collect");
systemPaths.add("com/google/common/eventbus");
systemPaths.add("com/google/common/hash");
systemPaths.add("com/google/common/io");
systemPaths.add("com/google/common/math");
systemPaths.add("com/google/common/net");
systemPaths.add("com/google/common/primitives");
systemPaths.add("com/google/common/util/concurrent");
systemPaths.add("java/awt");
systemPaths.add("java/awt/color");
systemPaths.add("java/awt/datatransfer");
systemPaths.add("java/awt/dnd");
systemPaths.add("java/awt/dnd/peer");
systemPaths.add("java/awt/event");
systemPaths.add("java/awt/font");
systemPaths.add("java/awt/geom");
systemPaths.add("java/awt/im");
systemPaths.add("java/awt/im/spi");
systemPaths.add("java/awt/image");
systemPaths.add("java/awt/image/renderable");
systemPaths.add("java/awt/peer");
systemPaths.add("java/awt/print");
systemPaths.add("java/beans");
systemPaths.add("java/beans/beancontext");
systemPaths.add("java/io");
systemPaths.add("java/lang");
systemPaths.add("java/lang/annotation");
systemPaths.add("java/lang/instrument");
systemPaths.add("java/lang/management");
systemPaths.add("java/lang/ref");
systemPaths.add("java/lang/reflect");
systemPaths.add("java/math");
systemPaths.add("java/net");
systemPaths.add("java/nio");
systemPaths.add("java/nio/channels");
systemPaths.add("java/nio/channels/spi");
systemPaths.add("java/nio/charset");
systemPaths.add("java/nio/charset/spi");
systemPaths.add("java/rmi");
systemPaths.add("java/rmi/activation");
systemPaths.add("java/rmi/dgc");
systemPaths.add("java/rmi/registry");
systemPaths.add("java/rmi/server");
systemPaths.add("java/security");
systemPaths.add("java/security/acl");
systemPaths.add("java/security/cert");
systemPaths.add("java/security/interfaces");
systemPaths.add("java/security/spec");
systemPaths.add("java/sql");
systemPaths.add("java/text");
systemPaths.add("java/text/spi");
systemPaths.add("java/util");
systemPaths.add("java/util/concurrent");
systemPaths.add("java/util/concurrent/atomic");
systemPaths.add("java/util/concurrent/locks");
systemPaths.add("java/util/jar");
systemPaths.add("java/util/logging");
systemPaths.add("java/util/prefs");
systemPaths.add("java/util/regex");
systemPaths.add("java/util/spi");
systemPaths.add("java/util/zip");
systemPaths.add("javassist");
systemPaths.add("javassist/bytecode");
systemPaths.add("javassist/bytecode/analysis");
systemPaths.add("javassist/bytecode/annotation");
systemPaths.add("javassist/bytecode/stackmap");
systemPaths.add("javassist/compiler");
systemPaths.add("javassist/compiler/ast");
systemPaths.add("javassist/convert");
systemPaths.add("javassist/expr");
systemPaths.add("javassist/runtime");
systemPaths.add("javassist/scopedpool");
systemPaths.add("javassist/tools");
systemPaths.add("javassist/tools/reflect");
systemPaths.add("javassist/tools/rmi");
systemPaths.add("javassist/tools/web");
systemPaths.add("javassist/util");
systemPaths.add("javassist/util/proxy");
systemPaths.add("javax");
systemPaths.add("javax/accessibility");
systemPaths.add("javax/activation");
systemPaths.add("javax/activity");
systemPaths.add("javax/annotation");
systemPaths.add("javax/annotation/concurrent");
systemPaths.add("javax/annotation/meta");
systemPaths.add("javax/annotation/processing");
systemPaths.add("javax/annotation/security");
systemPaths.add("javax/crypto");
systemPaths.add("javax/crypto/interfaces");
systemPaths.add("javax/crypto/spec");
systemPaths.add("javax/decorator");
systemPaths.add("javax/el");
systemPaths.add("javax/enterprise/context");
systemPaths.add("javax/enterprise/context/spi");
systemPaths.add("javax/enterprise/event");
systemPaths.add("javax/enterprise/inject");
systemPaths.add("javax/enterprise/inject/spi");
systemPaths.add("javax/enterprise/util");
systemPaths.add("javax/imageio");
systemPaths.add("javax/imageio/event");
systemPaths.add("javax/imageio/metadata");
systemPaths.add("javax/imageio/plugins/bmp");
systemPaths.add("javax/imageio/plugins/jpeg");
systemPaths.add("javax/imageio/spi");
systemPaths.add("javax/imageio/stream");
systemPaths.add("javax/inject");
systemPaths.add("javax/interceptor");
systemPaths.add("javax/jws");
systemPaths.add("javax/jws/soap");
systemPaths.add("javax/lang/model");
systemPaths.add("javax/lang/model/element");
systemPaths.add("javax/lang/model/type");
systemPaths.add("javax/lang/model/util");
systemPaths.add("javax/management");
systemPaths.add("javax/management/loading");
systemPaths.add("javax/management/modelmbean");
systemPaths.add("javax/management/monitor");
systemPaths.add("javax/management/openmbean");
systemPaths.add("javax/management/relation");
systemPaths.add("javax/management/remote");
systemPaths.add("javax/management/remote/rmi");
systemPaths.add("javax/management/timer");
systemPaths.add("javax/media/j3d");
systemPaths.add("javax/media/jai");
systemPaths.add("javax/media/jai/iterator");
systemPaths.add("javax/media/jai/operator");
systemPaths.add("javax/media/jai/registry");
systemPaths.add("javax/media/jai/remote");
systemPaths.add("javax/media/jai/tilecodec");
systemPaths.add("javax/media/jai/util");
systemPaths.add("javax/media/jai/widget");
systemPaths.add("javax/naming");
systemPaths.add("javax/naming/directory");
systemPaths.add("javax/naming/event");
systemPaths.add("javax/naming/ldap");
systemPaths.add("javax/naming/spi");
systemPaths.add("javax/net");
systemPaths.add("javax/net/ssl");
systemPaths.add("javax/print");
systemPaths.add("javax/print/attribute");
systemPaths.add("javax/print/attribute/standard");
systemPaths.add("javax/print/event");
systemPaths.add("javax/rmi");
systemPaths.add("javax/rmi/CORBA");
systemPaths.add("javax/rmi/ssl");
systemPaths.add("javax/script");
systemPaths.add("javax/security/auth");
systemPaths.add("javax/security/auth/callback");
systemPaths.add("javax/security/auth/kerberos");
systemPaths.add("javax/security/auth/login");
systemPaths.add("javax/security/auth/spi");
systemPaths.add("javax/security/auth/x500");
systemPaths.add("javax/security/cert");
systemPaths.add("javax/security/sasl");
systemPaths.add("javax/servlet");
systemPaths.add("javax/servlet/annotation");
systemPaths.add("javax/servlet/descriptor");
systemPaths.add("javax/servlet/http");
systemPaths.add("javax/smartcardio");
systemPaths.add("javax/sound/midi");
systemPaths.add("javax/sound/midi/spi");
systemPaths.add("javax/sound/sampled");
systemPaths.add("javax/sound/sampled/spi");
systemPaths.add("javax/sql");
systemPaths.add("javax/sql/rowset");
systemPaths.add("javax/sql/rowset/serial");
systemPaths.add("javax/sql/rowset/spi");
systemPaths.add("javax/swing");
systemPaths.add("javax/swing/border");
systemPaths.add("javax/swing/colorchooser");
systemPaths.add("javax/swing/event");
systemPaths.add("javax/swing/filechooser");
systemPaths.add("javax/swing/plaf");
systemPaths.add("javax/swing/plaf/basic");
systemPaths.add("javax/swing/plaf/metal");
systemPaths.add("javax/swing/plaf/multi");
systemPaths.add("javax/swing/plaf/synth");
systemPaths.add("javax/swing/table");
systemPaths.add("javax/swing/text");
systemPaths.add("javax/swing/text/html");
systemPaths.add("javax/swing/text/html/parser");
systemPaths.add("javax/swing/text/rtf");
systemPaths.add("javax/swing/tree");
systemPaths.add("javax/swing/undo");
systemPaths.add("javax/tools");
systemPaths.add("javax/transaction");
systemPaths.add("javax/transaction/xa");
systemPaths.add("javax/vecmath");
systemPaths.add("javax/xml");
systemPaths.add("javax/xml/bind");
systemPaths.add("javax/xml/bind/annotation");
systemPaths.add("javax/xml/bind/annotation/adapters");
systemPaths.add("javax/xml/bind/attachment");
systemPaths.add("javax/xml/bind/helpers");
systemPaths.add("javax/xml/bind/util");
systemPaths.add("javax/xml/crypto");
systemPaths.add("javax/xml/crypto/dom");
systemPaths.add("javax/xml/crypto/dsig");
systemPaths.add("javax/xml/crypto/dsig/dom");
systemPaths.add("javax/xml/crypto/dsig/keyinfo");
systemPaths.add("javax/xml/crypto/dsig/spec");
systemPaths.add("javax/xml/datatype");
systemPaths.add("javax/xml/namespace");
systemPaths.add("javax/xml/parsers");
systemPaths.add("javax/xml/soap");
systemPaths.add("javax/xml/stream");
systemPaths.add("javax/xml/stream/events");
systemPaths.add("javax/xml/stream/util");
systemPaths.add("javax/xml/transform");
systemPaths.add("javax/xml/transform/dom");
systemPaths.add("javax/xml/transform/sax");
systemPaths.add("javax/xml/transform/stax");
systemPaths.add("javax/xml/transform/stream");
systemPaths.add("javax/xml/validation");
systemPaths.add("javax/xml/ws");
systemPaths.add("javax/xml/ws/handler");
systemPaths.add("javax/xml/ws/handler/soap");
systemPaths.add("javax/xml/ws/http");
systemPaths.add("javax/xml/ws/soap");
systemPaths.add("javax/xml/ws/spi");
systemPaths.add("javax/xml/ws/wsaddressing");
systemPaths.add("javax/xml/xpath");
systemPaths.add("junit/extensions");
systemPaths.add("junit/framework");
systemPaths.add("junit/runner");
systemPaths.add("junit/textui");
systemPaths.add("net/sf/cglib");
systemPaths.add("net/sf/cglib/core");
systemPaths.add("net/sf/cglib/proxy");
systemPaths.add("org/apache/commons/logging");
systemPaths.add("org/apache/commons/logging/impl");
systemPaths.add("org/apache/log4j");
systemPaths.add("org/apache/log4j/chainsaw");
systemPaths.add("org/apache/log4j/config");
systemPaths.add("org/apache/log4j/helpers");
systemPaths.add("org/apache/log4j/jdbc");
systemPaths.add("org/apache/log4j/jmx");
systemPaths.add("org/apache/log4j/lf5");
systemPaths.add("org/apache/log4j/lf5/util");
systemPaths.add("org/apache/log4j/lf5/viewer");
systemPaths.add("org/apache/log4j/lf5/viewer/categoryexplorer");
systemPaths.add("org/apache/log4j/lf5/viewer/configure");
systemPaths.add("org/apache/log4j/net");
systemPaths.add("org/apache/log4j/nt");
systemPaths.add("org/apache/log4j/or");
systemPaths.add("org/apache/log4j/or/jms");
systemPaths.add("org/apache/log4j/or/sax");
systemPaths.add("org/apache/log4j/spi");
systemPaths.add("org/apache/log4j/varia");
systemPaths.add("org/apache/log4j/xml");
systemPaths.add("org/apache/maven/artifact/repository/metadata");
systemPaths.add("org/apache/maven/artifact/repository/metadata/io/xpp3");
systemPaths.add("org/apache/maven/model");
systemPaths.add("org/apache/maven/model/building");
systemPaths.add("org/apache/maven/model/composition");
systemPaths.add("org/apache/maven/model/inheritance");
systemPaths.add("org/apache/maven/model/interpolation");
systemPaths.add("org/apache/maven/model/io");
systemPaths.add("org/apache/maven/model/io/xpp3");
systemPaths.add("org/apache/maven/model/locator");
systemPaths.add("org/apache/maven/model/management");
systemPaths.add("org/apache/maven/model/merge");
systemPaths.add("org/apache/maven/model/normalization");
systemPaths.add("org/apache/maven/model/path");
systemPaths.add("org/apache/maven/model/plugin");
systemPaths.add("org/apache/maven/model/profile");
systemPaths.add("org/apache/maven/model/profile/activation");
systemPaths.add("org/apache/maven/model/resolution");
systemPaths.add("org/apache/maven/model/superpom");
systemPaths.add("org/apache/maven/model/validation");
systemPaths.add("org/apache/maven/plugin/surefire/runorder");
systemPaths.add("org/apache/maven/repository/internal");
systemPaths.add("org/apache/maven/settings");
systemPaths.add("org/apache/maven/settings/building");
systemPaths.add("org/apache/maven/settings/crypto");
systemPaths.add("org/apache/maven/settings/io");
systemPaths.add("org/apache/maven/settings/io/xpp3");
systemPaths.add("org/apache/maven/settings/merge");
systemPaths.add("org/apache/maven/settings/validation");
systemPaths.add("org/apache/maven/surefire");
systemPaths.add("org/apache/maven/surefire/booter");
systemPaths.add("org/apache/maven/surefire/providerapi");
systemPaths.add("org/apache/maven/surefire/report");
systemPaths.add("org/apache/maven/surefire/shade/org/codehaus/plexus/util");
systemPaths.add("org/apache/maven/surefire/suite");
systemPaths.add("org/apache/maven/surefire/testset");
systemPaths.add("org/apache/maven/surefire/util");
systemPaths.add("org/apache/maven/surefire/util/internal");
systemPaths.add("org/apache/maven/wagon");
systemPaths.add("org/apache/maven/wagon/authentication");
systemPaths.add("org/apache/maven/wagon/authorization");
systemPaths.add("org/apache/maven/wagon/events");
systemPaths.add("org/apache/maven/wagon/observers");
systemPaths.add("org/apache/maven/wagon/providers/file");
systemPaths.add("org/apache/maven/wagon/providers/http");
systemPaths.add("org/apache/maven/wagon/proxy");
systemPaths.add("org/apache/maven/wagon/repository");
systemPaths.add("org/apache/maven/wagon/resource");
systemPaths.add("org/apache/maven/wagon/shared/http");
systemPaths.add("org/apache/xbean/propertyeditor");
systemPaths.add("org/apache/xbean/recipe");
systemPaths.add("org/codehaus/classworlds");
systemPaths.add("org/codehaus/plexus");
systemPaths.add("org/codehaus/plexus/classworlds");
systemPaths.add("org/codehaus/plexus/classworlds/launcher");
systemPaths.add("org/codehaus/plexus/classworlds/realm");
systemPaths.add("org/codehaus/plexus/classworlds/strategy");
systemPaths.add("org/codehaus/plexus/component");
systemPaths.add("org/codehaus/plexus/component/annotations");
systemPaths.add("org/codehaus/plexus/component/builder");
systemPaths.add("org/codehaus/plexus/component/collections");
systemPaths.add("org/codehaus/plexus/component/composition");
systemPaths.add("org/codehaus/plexus/component/configurator");
systemPaths.add("org/codehaus/plexus/component/configurator/converters");
systemPaths.add("org/codehaus/plexus/component/configurator/converters/basic");
systemPaths.add("org/codehaus/plexus/component/configurator/converters/composite");
systemPaths.add("org/codehaus/plexus/component/configurator/converters/lookup");
systemPaths.add("org/codehaus/plexus/component/configurator/converters/special");
systemPaths.add("org/codehaus/plexus/component/configurator/expression");
systemPaths.add("org/codehaus/plexus/component/discovery");
systemPaths.add("org/codehaus/plexus/component/factory");
systemPaths.add("org/codehaus/plexus/component/factory/java");
systemPaths.add("org/codehaus/plexus/component/manager");
systemPaths.add("org/codehaus/plexus/component/repository");
systemPaths.add("org/codehaus/plexus/component/repository/exception");
systemPaths.add("org/codehaus/plexus/component/repository/io");
systemPaths.add("org/codehaus/plexus/configuration");
systemPaths.add("org/codehaus/plexus/configuration/io");
systemPaths.add("org/codehaus/plexus/configuration/source");
systemPaths.add("org/codehaus/plexus/configuration/xml");
systemPaths.add("org/codehaus/plexus/container/initialization");
systemPaths.add("org/codehaus/plexus/context");
systemPaths.add("org/codehaus/plexus/interpolation");
systemPaths.add("org/codehaus/plexus/interpolation/multi");
systemPaths.add("org/codehaus/plexus/interpolation/object");
systemPaths.add("org/codehaus/plexus/interpolation/os");
systemPaths.add("org/codehaus/plexus/interpolation/reflection");
systemPaths.add("org/codehaus/plexus/interpolation/util");
systemPaths.add("org/codehaus/plexus/lifecycle");
systemPaths.add("org/codehaus/plexus/lifecycle/phase");
systemPaths.add("org/codehaus/plexus/logging");
systemPaths.add("org/codehaus/plexus/logging/console");
systemPaths.add("org/codehaus/plexus/personality/plexus/lifecycle/phase");
systemPaths.add("org/codehaus/plexus/util");
systemPaths.add("org/codehaus/plexus/util/cli");
systemPaths.add("org/codehaus/plexus/util/cli/shell");
systemPaths.add("org/codehaus/plexus/util/dag");
systemPaths.add("org/codehaus/plexus/util/introspection");
systemPaths.add("org/codehaus/plexus/util/io");
systemPaths.add("org/codehaus/plexus/util/reflection");
systemPaths.add("org/codehaus/plexus/util/xml");
systemPaths.add("org/codehaus/plexus/util/xml/pull");
systemPaths.add("org/hamcrest");
systemPaths.add("org/hamcrest/core");
systemPaths.add("org/hamcrest/internal");
systemPaths.add("org/ietf/jgss");
systemPaths.add("org/jboss/classfilewriter");
systemPaths.add("org/jboss/classfilewriter/annotations");
systemPaths.add("org/jboss/classfilewriter/attributes");
systemPaths.add("org/jboss/classfilewriter/code");
systemPaths.add("org/jboss/classfilewriter/constpool");
systemPaths.add("org/jboss/classfilewriter/util");
systemPaths.add("org/jboss/forge");
systemPaths.add("org/jboss/forge/furnace");
systemPaths.add("org/jboss/forge/furnace/addons");
systemPaths.add("org/jboss/forge/furnace/event");
systemPaths.add("org/jboss/forge/furnace/exception");
systemPaths.add("org/jboss/forge/furnace/impl");
systemPaths.add("org/jboss/forge/furnace/lock");
systemPaths.add("org/jboss/forge/furnace/repositories");
systemPaths.add("org/jboss/forge/furnace/modules");
systemPaths.add("org/jboss/forge/furnace/modules/providers");
systemPaths.add("org/jboss/forge/furnace/services");
systemPaths.add("org/jboss/forge/furnace/spi");
systemPaths.add("org/jboss/forge/furnace/util");
systemPaths.add("org/jboss/forge/furnace/util/cdi");
systemPaths.add("org/jboss/forge/furnace/versions");
systemPaths.add("org/jboss/forge/parser");
systemPaths.add("org/jboss/forge/parser/xml");
systemPaths.add("org/jboss/forge/parser/xml/query");
systemPaths.add("org/jboss/forge/parser/xml/util");
systemPaths.add("org/jboss/forge/proxy");
systemPaths.add("org/jboss/forge/test");
systemPaths.add("org/jboss/logmanager");
systemPaths.add("org/jboss/logmanager/config");
systemPaths.add("org/jboss/logmanager/errormanager");
systemPaths.add("org/jboss/logmanager/filters");
systemPaths.add("org/jboss/logmanager/formatters");
systemPaths.add("org/jboss/logmanager/handlers");
systemPaths.add("org/jboss/modules");
systemPaths.add("org/jboss/modules/filter");
systemPaths.add("org/jboss/modules/log");
systemPaths.add("org/jboss/modules/management");
systemPaths.add("org/jboss/modules/ref");
systemPaths.add("org/jboss/shrinkwrap/api");
systemPaths.add("org/jboss/shrinkwrap/api/asset");
systemPaths.add("org/jboss/shrinkwrap/api/classloader");
systemPaths.add("org/jboss/shrinkwrap/api/container");
systemPaths.add("org/jboss/shrinkwrap/api/exporter");
systemPaths.add("org/jboss/shrinkwrap/api/formatter");
systemPaths.add("org/jboss/shrinkwrap/api/importer");
systemPaths.add("org/jboss/shrinkwrap/api/serialization");
systemPaths.add("org/jboss/shrinkwrap/api/spec");
systemPaths.add("org/jboss/shrinkwrap/descriptor/api");
systemPaths.add("org/jboss/shrinkwrap/descriptor/api/spec/se/manifest");
systemPaths.add("org/jboss/shrinkwrap/descriptor/spi");
systemPaths.add("org/jboss/shrinkwrap/descriptor/spi/node");
systemPaths.add("org/jboss/shrinkwrap/descriptor/spi/node/dom");
systemPaths.add("org/jboss/shrinkwrap/impl/base");
systemPaths.add("org/jboss/shrinkwrap/impl/base/asset");
systemPaths.add("org/jboss/shrinkwrap/impl/base/container");
systemPaths.add("org/jboss/shrinkwrap/impl/base/exporter");
systemPaths.add("org/jboss/shrinkwrap/impl/base/exporter/tar");
systemPaths.add("org/jboss/shrinkwrap/impl/base/exporter/zip");
systemPaths.add("org/jboss/shrinkwrap/impl/base/filter");
systemPaths.add("org/jboss/shrinkwrap/impl/base/importer");
systemPaths.add("org/jboss/shrinkwrap/impl/base/importer/tar");
systemPaths.add("org/jboss/shrinkwrap/impl/base/importer/zip");
systemPaths.add("org/jboss/shrinkwrap/impl/base/io");
systemPaths.add("org/jboss/shrinkwrap/impl/base/io/tar");
systemPaths.add("org/jboss/shrinkwrap/impl/base/path");
systemPaths.add("org/jboss/shrinkwrap/impl/base/serialization");
systemPaths.add("org/jboss/shrinkwrap/impl/base/spec");
systemPaths.add("org/jboss/shrinkwrap/resolver/api");
systemPaths.add("org/jboss/shrinkwrap/resolver/api/maven");
systemPaths.add("org/jboss/shrinkwrap/resolver/api/maven/filter");
systemPaths.add("org/jboss/shrinkwrap/resolver/impl/maven");
systemPaths.add("org/jboss/shrinkwrap/spi");
systemPaths.add("org/jboss/weld");
systemPaths.add("org/jboss/weld/annotated");
systemPaths.add("org/jboss/weld/annotated/enhanced");
systemPaths.add("org/jboss/weld/annotated/enhanced/jlr");
systemPaths.add("org/jboss/weld/annotated/runtime");
systemPaths.add("org/jboss/weld/annotated/slim");
systemPaths.add("org/jboss/weld/annotated/slim/backed");
systemPaths.add("org/jboss/weld/annotated/slim/unbacked");
systemPaths.add("org/jboss/weld/bean");
systemPaths.add("org/jboss/weld/bean/attributes");
systemPaths.add("org/jboss/weld/bean/builtin");
systemPaths.add("org/jboss/weld/bean/builtin/ee");
systemPaths.add("org/jboss/weld/bean/interceptor");
systemPaths.add("org/jboss/weld/bean/proxy");
systemPaths.add("org/jboss/weld/bean/proxy/util");
systemPaths.add("org/jboss/weld/bootstrap");
systemPaths.add("org/jboss/weld/bootstrap/api");
systemPaths.add("org/jboss/weld/bootstrap/api/helpers");
systemPaths.add("org/jboss/weld/bootstrap/events");
systemPaths.add("org/jboss/weld/bootstrap/spi");
systemPaths.add("org/jboss/weld/bootstrap/spi/helpers");
systemPaths.add("org/jboss/weld/context");
systemPaths.add("org/jboss/weld/context/api");
systemPaths.add("org/jboss/weld/context/beanstore");
systemPaths.add("org/jboss/weld/context/beanstore/ejb");
systemPaths.add("org/jboss/weld/context/beanstore/http");
systemPaths.add("org/jboss/weld/context/bound");
systemPaths.add("org/jboss/weld/context/cache");
systemPaths.add("org/jboss/weld/context/conversation");
systemPaths.add("org/jboss/weld/context/ejb");
systemPaths.add("org/jboss/weld/context/http");
systemPaths.add("org/jboss/weld/context/unbound");
systemPaths.add("org/jboss/weld/ejb");
systemPaths.add("org/jboss/weld/ejb/api");
systemPaths.add("org/jboss/weld/ejb/spi");
systemPaths.add("org/jboss/weld/ejb/spi/helpers");
systemPaths.add("org/jboss/weld/el");
systemPaths.add("org/jboss/weld/enums");
systemPaths.add("org/jboss/weld/environment/se");
systemPaths.add("org/jboss/weld/environment/se/beans");
systemPaths.add("org/jboss/weld/environment/se/bindings");
systemPaths.add("org/jboss/weld/environment/se/contexts");
systemPaths.add("org/jboss/weld/environment/se/discovery");
systemPaths.add("org/jboss/weld/environment/se/discovery/url");
systemPaths.add("org/jboss/weld/environment/se/events");
systemPaths.add("org/jboss/weld/environment/se/threading");
systemPaths.add("org/jboss/weld/event");
systemPaths.add("org/jboss/weld/exceptions");
systemPaths.add("org/jboss/weld/executor");
systemPaths.add("org/jboss/weld/injection");
systemPaths.add("org/jboss/weld/injection/attributes");
systemPaths.add("org/jboss/weld/injection/producer");
systemPaths.add("org/jboss/weld/injection/producer/ejb");
systemPaths.add("org/jboss/weld/injection/spi");
systemPaths.add("org/jboss/weld/injection/spi/helpers");
systemPaths.add("org/jboss/weld/interceptor/builder");
systemPaths.add("org/jboss/weld/interceptor/proxy");
systemPaths.add("org/jboss/weld/interceptor/reader");
systemPaths.add("org/jboss/weld/interceptor/reader/cache");
systemPaths.add("org/jboss/weld/interceptor/spi/context");
systemPaths.add("org/jboss/weld/interceptor/spi/instance");
systemPaths.add("org/jboss/weld/interceptor/spi/metadata");
systemPaths.add("org/jboss/weld/interceptor/spi/model");
systemPaths.add("org/jboss/weld/interceptor/spi");
systemPaths.add("org/jboss/weld/interceptor/util");
systemPaths.add("org/jboss/weld/interceptor/util/proxy");
systemPaths.add("org/jboss/weld/jsf");
systemPaths.add("org/jboss/weld/literal");
systemPaths.add("org/jboss/weld/logging");
systemPaths.add("org/jboss/weld/logging/messages");
systemPaths.add("org/jboss/weld/manager");
systemPaths.add("org/jboss/weld/manager/api");
systemPaths.add("org/jboss/weld/metadata");
systemPaths.add("org/jboss/weld/metadata/cache");
systemPaths.add("org/jboss/weld/persistence");
systemPaths.add("org/jboss/weld/resolution");
systemPaths.add("org/jboss/weld/resources");
systemPaths.add("org/jboss/weld/resources/spi");
systemPaths.add("org/jboss/weld/resources/spi/helpers");
systemPaths.add("org/jboss/weld/security/spi");
systemPaths.add("org/jboss/weld/serialization");
systemPaths.add("org/jboss/weld/serialization/spi");
systemPaths.add("org/jboss/weld/serialization/spi/helpers");
systemPaths.add("org/jboss/weld/servlet");
systemPaths.add("org/jboss/weld/servlet/api");
systemPaths.add("org/jboss/weld/servlet/api/helpers");
systemPaths.add("org/jboss/weld/transaction/spi");
systemPaths.add("org/jboss/weld/util");
systemPaths.add("org/jboss/weld/util/annotated");
systemPaths.add("org/jboss/weld/util/bean");
systemPaths.add("org/jboss/weld/util/bytecode");
systemPaths.add("org/jboss/weld/util/collections");
systemPaths.add("org/jboss/weld/util/dom");
systemPaths.add("org/jboss/weld/util/el");
systemPaths.add("org/jboss/weld/util/reflection");
systemPaths.add("org/jboss/weld/util/reflection/instantiation");
systemPaths.add("org/jboss/weld/validation/spi");
systemPaths.add("org/jboss/weld/ws");
systemPaths.add("org/jboss/weld/xml");
systemPaths.add("org/jcp/xml/dsig/internal");
systemPaths.add("org/jcp/xml/dsig/internal/dom");
systemPaths.add("org/junit");
systemPaths.add("org/junit/experimental");
systemPaths.add("org/junit/experimental/categories");
systemPaths.add("org/junit/experimental/max");
systemPaths.add("org/junit/experimental/results");
systemPaths.add("org/junit/experimental/runners");
systemPaths.add("org/junit/experimental/theories");
systemPaths.add("org/junit/experimental/theories/internal");
systemPaths.add("org/junit/experimental/theories/suppliers");
systemPaths.add("org/junit/internal");
systemPaths.add("org/junit/internal/builders");
systemPaths.add("org/junit/internal/matchers");
systemPaths.add("org/junit/internal/requests");
systemPaths.add("org/junit/internal/runners");
systemPaths.add("org/junit/internal/runners/model");
systemPaths.add("org/junit/internal/runners/rules");
systemPaths.add("org/junit/internal/runners/statements");
systemPaths.add("org/junit/matchers");
systemPaths.add("org/junit/rules");
systemPaths.add("org/junit/runner");
systemPaths.add("org/junit/runner/manipulation");
systemPaths.add("org/junit/runner/notification");
systemPaths.add("org/junit/runners");
systemPaths.add("org/junit/runners/model");
systemPaths.add("org/omg/CORBA");
systemPaths.add("org/omg/CORBA/DynAnyPackage");
systemPaths.add("org/omg/CORBA/ORBPackage");
systemPaths.add("org/omg/CORBA/TypeCodePackage");
systemPaths.add("org/omg/CORBA/portable");
systemPaths.add("org/omg/CORBA_2_3");
systemPaths.add("org/omg/CORBA_2_3/portable");
systemPaths.add("org/omg/CosNaming");
systemPaths.add("org/omg/CosNaming/NamingContextExtPackage");
systemPaths.add("org/omg/CosNaming/NamingContextPackage");
systemPaths.add("org/omg/Dynamic");
systemPaths.add("org/omg/DynamicAny");
systemPaths.add("org/omg/DynamicAny/DynAnyFactoryPackage");
systemPaths.add("org/omg/DynamicAny/DynAnyPackage");
systemPaths.add("org/omg/IOP");
systemPaths.add("org/omg/IOP/CodecFactoryPackage");
systemPaths.add("org/omg/IOP/CodecPackage");
systemPaths.add("org/omg/Messaging");
systemPaths.add("org/omg/PortableInterceptor");
systemPaths.add("org/omg/PortableInterceptor/ORBInitInfoPackage");
systemPaths.add("org/omg/PortableServer");
systemPaths.add("org/omg/PortableServer/CurrentPackage");
systemPaths.add("org/omg/PortableServer/POAManagerPackage");
systemPaths.add("org/omg/PortableServer/POAPackage");
systemPaths.add("org/omg/PortableServer/ServantLocatorPackage");
systemPaths.add("org/omg/PortableServer/portable");
systemPaths.add("org/omg/SendingContext");
systemPaths.add("org/omg/stub/java/rmi");
systemPaths.add("org/omg/stub/javax/management/remote/rmi");
systemPaths.add("org/relaxng/datatype");
systemPaths.add("org/relaxng/datatype/helpers");
systemPaths.add("org/slf4j");
systemPaths.add("org/slf4j/agent");
systemPaths.add("org/slf4j/cal10n");
systemPaths.add("org/slf4j/ext");
systemPaths.add("org/slf4j/helpers");
systemPaths.add("org/slf4j/impl");
systemPaths.add("org/slf4j/instrumentation");
systemPaths.add("org/slf4j/profiler");
systemPaths.add("org/slf4j/spi");
systemPaths.add("org/sonatype/aether");
systemPaths.add("org/sonatype/aether/artifact");
systemPaths.add("org/sonatype/aether/collection");
systemPaths.add("org/sonatype/aether/connector/wagon");
systemPaths.add("org/sonatype/aether/deployment");
systemPaths.add("org/sonatype/aether/graph");
systemPaths.add("org/sonatype/aether/impl");
systemPaths.add("org/sonatype/aether/impl/internal");
systemPaths.add("org/sonatype/aether/installation");
systemPaths.add("org/sonatype/aether/metadata");
systemPaths.add("org/sonatype/aether/repository");
systemPaths.add("org/sonatype/aether/resolution");
systemPaths.add("org/sonatype/aether/spi/connector");
systemPaths.add("org/sonatype/aether/spi/io");
systemPaths.add("org/sonatype/aether/spi/locator");
systemPaths.add("org/sonatype/aether/spi/log");
systemPaths.add("org/sonatype/aether/transfer");
systemPaths.add("org/sonatype/aether/util");
systemPaths.add("org/sonatype/aether/util/artifact");
systemPaths.add("org/sonatype/aether/util/filter");
systemPaths.add("org/sonatype/aether/util/graph");
systemPaths.add("org/sonatype/aether/util/graph/manager");
systemPaths.add("org/sonatype/aether/util/graph/selector");
systemPaths.add("org/sonatype/aether/util/graph/transformer");
systemPaths.add("org/sonatype/aether/util/graph/traverser");
systemPaths.add("org/sonatype/aether/util/layout");
systemPaths.add("org/sonatype/aether/util/listener");
systemPaths.add("org/sonatype/aether/util/metadata");
systemPaths.add("org/sonatype/aether/util/repository");
systemPaths.add("org/sonatype/aether/util/version");
systemPaths.add("org/sonatype/aether/version");
systemPaths.add("org/sonatype/plexus/components/cipher");
systemPaths.add("org/sonatype/plexus/components/sec/dispatcher");
systemPaths.add("org/sonatype/plexus/components/sec/dispatcher/model");
systemPaths.add("org/sonatype/plexus/components/sec/dispatcher/model/io/xpp3");
systemPaths.add("org/w3c/dom");
systemPaths.add("org/w3c/dom/bootstrap");
systemPaths.add("org/w3c/dom/css");
systemPaths.add("org/w3c/dom/events");
systemPaths.add("org/w3c/dom/html");
systemPaths.add("org/w3c/dom/ls");
systemPaths.add("org/w3c/dom/ranges");
systemPaths.add("org/w3c/dom/stylesheets");
systemPaths.add("org/w3c/dom/traversal");
systemPaths.add("org/w3c/dom/views");
systemPaths.add("org/w3c/dom/xpath");
systemPaths.add("org/xml/sax");
systemPaths.add("org/xml/sax/ext");
systemPaths.add("org/xml/sax/helpers");
}
}