This is an automated email from the ASF dual-hosted git repository.

kdoran pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-maven.git

commit eedc64430f6974f43f1f4c8b65a9ee581fc5ec3b
Author: Bryan Bende <bbe...@apache.org>
AuthorDate: Thu Dec 1 15:01:51 2022 -0500

    NIFI-10926 Exclude jdk.tools and com.sun:tools from classpath for extension 
class loader
    
    This closes #26.
    
    Signed-off-by: Kevin Doran <kdo...@apache.org>
---
 .../extraction/ExtensionClassLoaderFactory.java          | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
 
b/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
index 66d7f0d..57bbc7d 100644
--- 
a/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
+++ 
b/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
@@ -24,6 +24,8 @@ import 
org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.logging.Log;
@@ -51,6 +53,15 @@ import java.util.Set;
 import java.util.TreeSet;
 
 public class ExtensionClassLoaderFactory {
+
+    private final static Set<String> EXCLUDED_ARTIFACT_IDS;
+    static {
+        final Set<String> excludedArtifactIds = new HashSet<>();
+        excludedArtifactIds.add("jdk.tools:jdk.tools");
+        excludedArtifactIds.add("com.sun:tools");
+        EXCLUDED_ARTIFACT_IDS = 
Collections.unmodifiableSet(excludedArtifactIds);
+    }
+
     private final Log log;
     private final MavenProject project;
     private final RepositorySystemSession repoSession;
@@ -295,15 +306,14 @@ public class ExtensionClassLoaderFactory {
             projectRequest.setLocalRepository(localRepo);
             projectRequest.setProject(mavenProject);
 
-            final DependencyNode depNode = 
dependencyGraphBuilder.buildDependencyGraph(projectRequest, null);
+            final ArtifactFilter excludesFilter = new 
ExclusionSetFilter(EXCLUDED_ARTIFACT_IDS);
+            final DependencyNode depNode = 
dependencyGraphBuilder.buildDependencyGraph(projectRequest, excludesFilter);
             depNode.accept(nodeVisitor);
         } catch (DependencyGraphBuilderException e) {
             throw new MojoExecutionException("Failed to build dependency 
tree", e);
         }
     }
 
-
-
     private Set<URL> toURLs(final Artifact artifact) throws 
MojoExecutionException {
         final Set<URL> urls = new HashSet<>();
 

Reply via email to