private void loadUrls(ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder, File artifactFolder) throws InvalidDescriptorLoaderException { try { classLoaderModelBuilder.containing(artifactFolder.toURI().toURL()); final File libDir = new File(artifactFolder, LIB_DIR); if (libDir.exists()) { final File[] jars = libDir.listFiles((FilenameFilter) new SuffixFileFilter(JAR_FILE)); for (int i = 0; i < jars.length; i++) { classLoaderModelBuilder.containing(jars[i].toURI().toURL()); } } } catch (MalformedURLException e) { throw new InvalidDescriptorLoaderException("Failed to create plugin descriptor " + artifactFolder); } } }
private void addDependenciesToClasspathUrls(ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder, Set<BundleDependency> dependencies) { dependencies.stream() .filter(dependency -> !MULE_PLUGIN_CLASSIFIER.equals(dependency.getDescriptor().getClassifier().orElse(null))) .filter(dependency -> dependency.getBundleUri() != null) .forEach(dependency -> { try { classLoaderModelBuilder.containing(dependency.getBundleUri().toURL()); } catch (MalformedURLException e) { throw new MuleRuntimeException(e); } }); }
@Override public ClassLoaderModel load(File artifactFile, Map<String, Object> attributes, ArtifactType artifactType) throws InvalidDescriptorLoaderException { if (artifactFile == null || !artifactFile.exists()) { throw new IllegalArgumentException("Service folder does not exists: " + (artifactFile != null ? artifactFile.getName() : null)); } ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder = new ClassLoaderModel.ClassLoaderModelBuilder(); classLoaderModelBuilder.containing(getUrl(artifactFile)); for (URL url : getServiceUrls(artifactFile)) { classLoaderModelBuilder.containing(url); } return classLoaderModelBuilder.build(); }
.containing(getAppFolder(APP_NAME).toURI().toURL()).build(); applicationDescriptor.setClassLoaderModel(classLoaderModel); appCL = new MuleApplicationClassLoader(APP_NAME, applicationDescriptor, domainCL, null, urls,
private void loadUrls(ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder, File artifactFolder) throws InvalidDescriptorLoaderException { try { classLoaderModelBuilder.containing(artifactFolder.toURI().toURL()); final File libDir = new File(artifactFolder, LIB_DIR); if (libDir.exists()) { final File[] jars = libDir.listFiles((FilenameFilter) new SuffixFileFilter(JAR_FILE)); for (int i = 0; i < jars.length; i++) { classLoaderModelBuilder.containing(jars[i].toURI().toURL()); } } } catch (MalformedURLException e) { throw new InvalidDescriptorLoaderException("Failed to create plugin descriptor " + artifactFolder); } } }
private void addDependenciesToClasspathUrls(ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder, Set<BundleDependency> dependencies) { dependencies.stream() .filter(dependency -> !MULE_PLUGIN_CLASSIFIER.equals(dependency.getDescriptor().getClassifier().orElse(null))) .filter(dependency -> dependency.getBundleUri() != null) .forEach(dependency -> { try { classLoaderModelBuilder.containing(dependency.getBundleUri().toURL()); } catch (MalformedURLException e) { throw new MuleRuntimeException(e); } }); }
@Override public ClassLoaderModel load(File artifactFile, Map<String, Object> attributes, ArtifactType artifactType) throws InvalidDescriptorLoaderException { if (artifactFile == null || !artifactFile.exists()) { throw new IllegalArgumentException("Service folder does not exists: " + (artifactFile != null ? artifactFile.getName() : null)); } ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder = new ClassLoaderModel.ClassLoaderModelBuilder(); classLoaderModelBuilder.containing(getUrl(artifactFile)); for (URL url : getServiceUrls(artifactFile)) { classLoaderModelBuilder.containing(url); } return classLoaderModelBuilder.build(); }
@Override protected void addArtifactSpecificClassloaderConfiguration(File artifactFile, ClassLoaderModelBuilder classLoaderModelBuilder, Set<BundleDependency> dependencies) { classLoaderModelBuilder.containing(getUrl(artifactFile, artifactFile)); }
@Override protected void addArtifactSpecificClassloaderConfiguration(File artifactFile, ClassLoaderModelBuilder classLoaderModelBuilder, Set<BundleDependency> dependencies) { try { classLoaderModelBuilder.containing(artifactFile.toURL()); exportSharedLibrariesResourcesAndPackages(artifactFile, classLoaderModelBuilder, dependencies); } catch (MalformedURLException e) { throw new MuleRuntimeException(e); } }
.containing(getAppFolder(APP_NAME).toURI().toURL()).build(); applicationDescriptor.setClassLoaderModel(classLoaderModel); appCL = new MuleApplicationClassLoader(APP_NAME, applicationDescriptor, domainCL, null, urls,
@Override protected void doSetUp() throws Exception { MuleApplicationClassLoader parentArtifactClassLoader = mock(MuleApplicationClassLoader.class); mockArtifactContext = mock(ArtifactContext.class); when(mockArtifactContext.getMuleContext()).thenReturn(muleContext); when(mockArtifactContext.getRegistry()).thenReturn(new DefaultRegistry(muleContext)); ApplicationDescriptor applicationDescriptorMock = mock(ApplicationDescriptor.class, RETURNS_DEEP_STUBS.get()); when(applicationDescriptorMock.getClassLoaderModel()) .thenReturn(new ClassLoaderModel.ClassLoaderModelBuilder().containing(new URL("file:/target/classes")).build()); application = new DefaultMuleApplication(applicationDescriptorMock, parentArtifactClassLoader, emptyList(), null, mock(ServiceRepository.class), mock(ExtensionModelLoaderRepository.class), appLocation, null, null, getRuntimeComponentBuildingDefinitionProvider()); application.setArtifactContext(mockArtifactContext); muleContext.getInjector().inject(this); }
private ClassLoaderModelBuilder createBuilderWithoutDependency(ClassLoaderModel originalClassLoaderModel, BundleDependency dependencyToBeExcluded) { ClassLoaderModelBuilder classLoaderModelBuilder = new ClassLoaderModelBuilder() .dependingOn(originalClassLoaderModel.getDependencies().stream() .filter(dependency -> !dependency.equals(dependencyToBeExcluded)) .collect(toSet())) .exportingPackages(originalClassLoaderModel.getExportedPackages()) .exportingPrivilegedPackages(originalClassLoaderModel.getPrivilegedExportedPackages(), originalClassLoaderModel.getPrivilegedArtifacts()) .exportingResources(originalClassLoaderModel.getExportedResources()); for (URL url : originalClassLoaderModel.getUrls()) { classLoaderModelBuilder.containing(url); } return classLoaderModelBuilder; }
private ClassLoaderModelBuilder createBuilderWithoutExportedPackages(ClassLoaderModel originalClassLoaderModel) { ClassLoaderModelBuilder classLoaderModelBuilder = new ClassLoaderModelBuilder() .dependingOn(originalClassLoaderModel.getDependencies()) .exportingPrivilegedPackages(originalClassLoaderModel.getPrivilegedExportedPackages(), originalClassLoaderModel.getPrivilegedArtifacts()) .exportingResources(originalClassLoaderModel.getExportedResources()); for (URL url : originalClassLoaderModel.getUrls()) { classLoaderModelBuilder.containing(url); } return classLoaderModelBuilder; }