Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.util.Objects;

import org.apache.commons.lang3.StringUtils;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
Expand All @@ -36,12 +37,17 @@
import org.apache.maven.plugins.dependency.utils.DependencyUtil;
import org.apache.maven.plugins.dependency.utils.filters.ArtifactItemFilter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
import org.apache.maven.shared.transfer.artifact.DefaultArtifactCoordinate;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
import org.apache.maven.shared.transfer.repository.RepositoryManager;
import org.eclipse.aether.DefaultRepositoryCache;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.LocalRepositoryManager;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.ArtifactResult;
import org.sonatype.plexus.build.incremental.BuildContext;

/**
Expand Down Expand Up @@ -112,23 +118,19 @@ public abstract class AbstractFromConfigurationMojo extends AbstractDependencyMo
@Parameter
private File localRepositoryDirectory;

private final ArtifactResolver artifactResolver;

private final RepositoryManager repositoryManager;

private final ArtifactHandlerManager artifactHandlerManager;

private final RepositorySystem repositorySystem;

protected AbstractFromConfigurationMojo(
MavenSession session,
BuildContext buildContext,
MavenProject project,
ArtifactResolver artifactResolver,
RepositoryManager repositoryManager,
ArtifactHandlerManager artifactHandlerManager) {
ArtifactHandlerManager artifactHandlerManager,
RepositorySystem repositorySystem) {
super(session, buildContext, project);
this.artifactResolver = artifactResolver;
this.repositoryManager = repositoryManager;
this.artifactHandlerManager = artifactHandlerManager;
this.repositorySystem = repositorySystem;
}

abstract ArtifactItemFilter getMarkedArtifactFilter(ArtifactItem item);
Expand Down Expand Up @@ -156,9 +158,9 @@ protected void verifyRequirements() throws MojoFailureException {
protected List<ArtifactItem> getProcessedArtifactItems(ProcessArtifactItemsRequest processArtifactItemsRequest)
throws MojoExecutionException {

boolean removeVersion = processArtifactItemsRequest.isRemoveVersion(),
prependGroupId = processArtifactItemsRequest.isPrependGroupId(),
useBaseVersion = processArtifactItemsRequest.isUseBaseVersion();
boolean removeVersion = processArtifactItemsRequest.isRemoveVersion();
boolean prependGroupId = processArtifactItemsRequest.isPrependGroupId();
boolean useBaseVersion = processArtifactItemsRequest.isUseBaseVersion();

boolean removeClassifier = processArtifactItemsRequest.isRemoveClassifier();

Expand Down Expand Up @@ -196,11 +198,31 @@ protected List<ArtifactItem> getProcessedArtifactItems(ProcessArtifactItemsReque
return artifactItems;
}

private boolean checkIfProcessingNeeded(ArtifactItem item) throws MojoExecutionException, ArtifactFilterException {
private boolean checkIfProcessingNeeded(ArtifactItem item) throws ArtifactFilterException {
return "true".equalsIgnoreCase(item.getOverWrite())
|| getMarkedArtifactFilter(item).isArtifactIncluded(item);
}

private RepositorySystemSession createSystemSessionForLocalRepo() {
RepositorySystemSession repositorySystemSession = session.getRepositorySession();
if (localRepositoryDirectory != null) {
// "clone" repository session and replace localRepository
DefaultRepositorySystemSession newSession =
new DefaultRepositorySystemSession(session.getRepositorySession());
// Clear cache, since we're using a new local repository
newSession.setCache(new DefaultRepositoryCache());
LocalRepositoryManager localRepositoryManager = repositorySystem.newLocalRepositoryManager(
newSession, new LocalRepository(localRepositoryDirectory));

newSession.setLocalRepositoryManager(localRepositoryManager);
repositorySystemSession = newSession;
getLog().debug("localRepoPath: "
+ localRepositoryManager.getRepository().getBasedir());
}

return repositorySystemSession;
}

/**
* Resolves the Artifact from the remote repository if necessary. If no version is specified, it will be retrieved
* from the dependency list or from the DependencyManagement section of the pom.
Expand All @@ -210,23 +232,8 @@ private boolean checkIfProcessingNeeded(ArtifactItem item) throws MojoExecutionE
* @throws MojoExecutionException if the version can't be found in DependencyManagement
*/
protected Artifact getArtifact(ArtifactItem artifactItem) throws MojoExecutionException {
Artifact artifact;

try {
ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest();

if (localRepositoryDirectory != null) {
buildingRequest =
repositoryManager.setLocalRepositoryBasedir(buildingRequest, localRepositoryDirectory);
}

// Map dependency to artifact coordinate
DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
coordinate.setGroupId(artifactItem.getGroupId());
coordinate.setArtifactId(artifactItem.getArtifactId());
coordinate.setVersion(artifactItem.getVersion());
coordinate.setClassifier(artifactItem.getClassifier());

final String extension;

ArtifactHandler artifactHandler = artifactHandlerManager.getArtifactHandler(artifactItem.getType());
Expand All @@ -235,16 +242,23 @@ protected Artifact getArtifact(ArtifactItem artifactItem) throws MojoExecutionEx
} else {
extension = artifactItem.getType();
}
coordinate.setExtension(extension);

artifact = artifactResolver
.resolveArtifact(buildingRequest, coordinate)
.getArtifact();
} catch (ArtifactResolverException e) {
DefaultArtifact artifact = new DefaultArtifact(
artifactItem.getGroupId(),
artifactItem.getArtifactId(),
artifactItem.getClassifier(),
extension,
artifactItem.getVersion());

RepositorySystemSession repositorySession = createSystemSessionForLocalRepo();

ArtifactRequest request = new ArtifactRequest(artifact, getProject().getRemoteProjectRepositories(), null);
ArtifactResult artifactResult = repositorySystem.resolveArtifact(repositorySession, request);
return RepositoryUtils.toArtifact(artifactResult.getArtifact());

} catch (ArtifactResolutionException e) {
throw new MojoExecutionException("Unable to find/resolve artifact.", e);
}

return artifact;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@
import org.apache.maven.plugins.dependency.utils.filters.ArtifactItemFilter;
import org.apache.maven.plugins.dependency.utils.filters.DestFileFilter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
import org.apache.maven.shared.transfer.repository.RepositoryManager;
import org.eclipse.aether.RepositorySystem;
import org.sonatype.plexus.build.incremental.BuildContext;

/**
Expand Down Expand Up @@ -92,11 +91,10 @@ public CopyMojo(
MavenSession session,
BuildContext buildContext,
MavenProject project,
ArtifactResolver artifactResolver,
RepositoryManager repositoryManager,
ArtifactHandlerManager artifactHandlerManager,
CopyUtil copyUtil) {
super(session, buildContext, project, artifactResolver, repositoryManager, artifactHandlerManager);
CopyUtil copyUtil,
RepositorySystem repositorySystem) {
super(session, buildContext, project, artifactHandlerManager, repositorySystem);
this.copyUtil = copyUtil;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,8 @@
import org.apache.maven.plugins.dependency.utils.markers.MarkerHandler;
import org.apache.maven.plugins.dependency.utils.markers.UnpackFileMarkerHandler;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
import org.apache.maven.shared.transfer.repository.RepositoryManager;
import org.codehaus.plexus.components.io.filemappers.FileMapper;
import org.eclipse.aether.RepositorySystem;
import org.sonatype.plexus.build.incremental.BuildContext;

/**
Expand Down Expand Up @@ -110,11 +109,10 @@ public UnpackMojo(
MavenSession session,
BuildContext buildContext,
MavenProject project,
ArtifactResolver artifactResolver,
RepositoryManager repositoryManager,
ArtifactHandlerManager artifactHandlerManager,
UnpackUtil unpackUtil) {
super(session, buildContext, project, artifactResolver, repositoryManager, artifactHandlerManager);
UnpackUtil unpackUtil,
RepositorySystem repositorySystem) {
super(session, buildContext, project, artifactHandlerManager, repositorySystem);
this.unpackUtil = unpackUtil;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import org.apache.maven.model.Exclusion;
import org.apache.maven.model.InputLocation;
import org.apache.maven.model.InputSource;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
Expand Down Expand Up @@ -97,10 +96,6 @@ protected void setUp() throws Exception {
mojo = (AnalyzeExclusionsMojo) lookupMojo("analyze-exclusions", testPom);
assertNotNull(mojo);

LegacySupport legacySupport = lookup(LegacySupport.class);
legacySupport.setSession(session);
installLocalRepository(legacySupport);

testLog = new TestLog();
mojo.setLog(testLog);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
import org.apache.maven.plugins.dependency.testUtils.stubs.DependencyProjectStub;
Expand Down Expand Up @@ -71,9 +70,7 @@ protected void setUp() throws Exception {
assertNotNull(mojo);
assertNotNull(mojo.getProject());

LegacySupport legacySupport = lookup(LegacySupport.class);
legacySupport.setSession(session);
installLocalRepository(legacySupport);
installLocalRepository(session.getRepositorySession());
}

private ArtifactItem getSingleArtifactItem(boolean removeVersion, boolean useBaseVersion)
Expand Down Expand Up @@ -147,7 +144,7 @@ public void assertFileExists(ArtifactItem item, boolean exist) {
}

public void testMojoDefaults() {
CopyMojo theMojo = new CopyMojo(null, null, null, null, null, null, null);
CopyMojo theMojo = new CopyMojo(null, null, null, null, null, null);

assertFalse(theMojo.isStripVersion());
assertFalse(theMojo.isSkip());
Expand Down Expand Up @@ -507,14 +504,6 @@ public void testMissingVersionFromDependencyMgtWithClassifier() throws Exception
}

public void testArtifactNotFound() throws Exception {
dotestArtifactExceptions(false, true);
}

public void testArtifactResolutionException() throws Exception {
dotestArtifactExceptions(true, false);
}

public void dotestArtifactExceptions(boolean are, boolean anfe) throws Exception {
ArtifactItem item = new ArtifactItem();

item.setArtifactId("artifactId");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
import org.apache.maven.plugins.dependency.testUtils.DependencyArtifactStubFactory;
Expand Down Expand Up @@ -87,10 +86,7 @@ protected void setUp() throws Exception {
stubFactory.setSrcFile(new File(
getBasedir() + File.separatorChar + "target/test-classes/unit/unpack-dependencies-test/test.txt"));

LegacySupport legacySupport = lookup(LegacySupport.class);

legacySupport.setSession(session);
installLocalRepository(legacySupport);
installLocalRepository(session.getRepositorySession());
}

public ArtifactItem getSingleArtifactItem(boolean removeVersion) throws MojoExecutionException {
Expand Down Expand Up @@ -374,14 +370,6 @@ public void testMissingVersionFromDependencyMgtWithClassifier() throws Exception
}

public void testArtifactNotFound() throws Exception {
dotestArtifactExceptions(false, true);
}

public void testArtifactResolutionException() throws Exception {
dotestArtifactExceptions(true, false);
}

public void dotestArtifactExceptions(boolean are, boolean anfe) throws Exception {
ArtifactItem item = new ArtifactItem();

item.setArtifactId("artifactId");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,8 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugin.testing.SilentLog;
import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
import org.apache.maven.plugins.dependency.testUtils.DependencyArtifactStubFactory;

Expand All @@ -42,8 +37,6 @@
public class TestClassifierTypeTranslator extends AbstractDependencyMojoTestCase {
Set<Artifact> artifacts = new HashSet<>();

ArtifactRepository artifactRepository;

Log log = new SilentLog();

private ArtifactHandlerManager artifactHandlerManager;
Expand All @@ -65,16 +58,8 @@ protected void setUp() throws Exception {
artifactHandlerManager = new DefaultArtifactHandlerManager();
this.setVariableValueToObject(artifactHandlerManager, "artifactHandlers", new HashMap<>());

artifactRepository = new StubArtifactRepository(null);

DependencyArtifactStubFactory factory = new DependencyArtifactStubFactory(null, false);
artifacts = factory.getMixedArtifacts();

LegacySupport legacySupport = lookup(LegacySupport.class);
MavenSession session = newMavenSession(new MavenProjectStub());
legacySupport.setSession(session);

installLocalRepository(legacySupport);
}

public void testNullClassifier() {
Expand Down
Loading