public List<URL> process(Contribution contribution) throws Fabric3Exception { URL url = contribution.getLocation(); List<Library> libraries = contribution.getManifest().getLibraries(); List<URL> classpath = new ArrayList<>(); // add the the jar itself to the classpath classpath.add(url); if (libraries.isEmpty() && !hasLibDirectory(new File(url.getFile()), "lib") && !hasLibDirectory(new File(url.getFile()), "classes")) { return classpath; } try { // add libraries from the jar addLibraries(classpath, url); } catch (IOException e) { throw new Fabric3Exception(e); } return classpath; }
public List<URL> process(Contribution contribution) throws Fabric3Exception { URL url = contribution.getLocation(); List<Library> libraries = contribution.getManifest().getLibraries(); List<URL> classpath = new ArrayList<>(); // add the the jar itself to the classpath classpath.add(url); if (libraries.isEmpty() && !hasLibDirectory(new File(url.getFile()), "lib") && !hasLibDirectory(new File(url.getFile()), "classes")) { return classpath; } try { // add libraries from the jar addLibraries(classpath, url); } catch (IOException e) { throw new Fabric3Exception(e); } return classpath; }
private PhysicalClassLoaderDefinition createClassLoaderDefinition(Contribution contribution) { URI uri = contribution.getUri(); if (Names.BOOT_CONTRIBUTION.equals(uri) || Names.HOST_CONTRIBUTION.equals(uri)) { return null; } boolean provisionArtifact = contribution.getLocation() != null; // don't provision synthetic artifacts; List<Library> libraries = contribution.getManifest().getLibraries(); PhysicalClassLoaderDefinition definition = new PhysicalClassLoaderDefinition(uri, libraries, provisionArtifact); List<ContributionWire<?, ?>> contributionWires = contribution.getWires(); for (ContributionWire<?, ?> wire : contributionWires) { ClassLoaderWireGenerator generator = generators.get(wire.getClass()); if (generator == null) { // not all contribution wires resolve resources through classloaders, so skip if one is not found continue; } PhysicalClassLoaderWireDefinition wireDefinition = generator.generate(wire); definition.add(wireDefinition); } return definition; }