// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.plugin.mojo; import org.apache.maven.artifact.Artifact; import org.apache.maven.project.MavenProject; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * @author Tony Vaagenes * @author ollivir */ class Artifacts { static class ArtifactSet { private final List jarArtifactsToInclude; private final List jarArtifactsProvided; private final List nonJarArtifacts; private ArtifactSet(List jarArtifactsToInclude, List jarArtifactsProvided, List nonJarArtifacts) { this.jarArtifactsToInclude = jarArtifactsToInclude; this.jarArtifactsProvided = jarArtifactsProvided; this.nonJarArtifacts = nonJarArtifacts; } List getJarArtifactsToInclude() { return jarArtifactsToInclude; } List getJarArtifactsProvided() { return jarArtifactsProvided; } List getNonJarArtifacts() { return nonJarArtifacts; } } static ArtifactSet getArtifacts(MavenProject project) { List jarArtifactsToInclude = new ArrayList<>(); List jarArtifactsProvided = new ArrayList<>(); List nonJarArtifactsToInclude = new ArrayList<>(); List nonJarArtifactsProvided = new ArrayList<>(); for (Artifact artifact : project.getArtifacts()) { if ("jar".equals(artifact.getType())) { if (Artifact.SCOPE_COMPILE.equals(artifact.getScope())) { jarArtifactsToInclude.add(artifact); } else if (Artifact.SCOPE_PROVIDED.equals(artifact.getScope())) { jarArtifactsProvided.add(artifact); } } else { if (Artifact.SCOPE_COMPILE.equals(artifact.getScope())) { nonJarArtifactsToInclude.add(artifact); } else if (Artifact.SCOPE_PROVIDED.equals(artifact.getScope())) { nonJarArtifactsProvided.add(artifact); } } } nonJarArtifactsToInclude.addAll(nonJarArtifactsProvided); return new ArtifactSet(jarArtifactsToInclude, jarArtifactsProvided, nonJarArtifactsToInclude); } static Collection getArtifactsToInclude(MavenProject project) { return getArtifacts(project).getJarArtifactsToInclude(); } }