private boolean isPrivilegedPluginDependency(ArtifactPluginDescriptor descriptor, ArtifactPluginDescriptor dependencyPluginDescriptor) { if (dependencyPluginDescriptor.getClassLoaderModel().getPrivilegedExportedPackages().isEmpty()) { return false; } return dependencyPluginDescriptor.getClassLoaderModel().getPrivilegedArtifacts().stream().filter( a -> a.startsWith(descriptor .getBundleDescriptor() .getGroupId() + ":" + descriptor .getBundleDescriptor() .getArtifactId())) .findFirst().isPresent(); }
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; }
for (String exportedPackage : dependencyPluginDescriptor.getClassLoaderModel().getPrivilegedExportedPackages()) { pluginsLookupPolicies.put(exportedPackage, lookupStrategy);
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; }