/** * Creates class loader with given loading strategy. */ public ExtendedURLClassLoader( URL[] classpath, ClassLoader parent, boolean parentFirst, boolean excludeJrePackagesFromLoader) { super(classpath, parent); this.parentFirst = parentFirst; if (parent == null) { throw new IllegalArgumentException("Parent classloader not specified"); } parentClassLoader = parent; parentOnlyRules = new String[0]; loaderOnlyRules = new String[0]; if (excludeJrePackagesFromLoader) { String[] corePackages = SystemUtil.jrePackages(); for (String corePackage : corePackages) { if (corePackage.equals("javax")) { // javax is NOT forbidden continue; } addParentOnlyRules(corePackage + ".*"); } } }