Author: rfscholte
Date: Sat Aug 8 10:30:44 2015
New Revision: 1694786
URL: http://svn.apache.org/r1694786
Log:
Add String getPathForLocalArtifact( ProjectBuildingRequest, ArtifactCoordinate
);
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/RepositoryManager.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/DefaultRepositoryManager.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven30RepositoryManager.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven31RepositoryManager.java
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/RepositoryManager.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/RepositoryManager.java?rev=1694786&r1=1694785&r2=1694786&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/RepositoryManager.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/RepositoryManager.java
Sat Aug 8 10:30:44 2015
@@ -23,6 +23,7 @@ import java.io.File;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.ArtifactCoordinate;
/**
*
@@ -31,7 +32,9 @@ public interface RepositoryManager
{
String getPathForLocalArtifact( ProjectBuildingRequest buildingRequest,
Artifact artifact );
-
+
+ String getPathForLocalArtifact( ProjectBuildingRequest buildingRequest,
ArtifactCoordinate coordinate );
+
/**
* Create a new {@code ProjectBuildingRequest} with an adjusted repository
session.
*
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/DefaultRepositoryManager.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/DefaultRepositoryManager.java?rev=1694786&r1=1694785&r2=1694786&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/DefaultRepositoryManager.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/DefaultRepositoryManager.java
Sat Aug 8 10:30:44 2015
@@ -23,6 +23,7 @@ import java.io.File;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.ArtifactCoordinate;
import org.apache.maven.shared.artifact.repository.RepositoryManager;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
@@ -41,9 +42,7 @@ public class DefaultRepositoryManager
{
private PlexusContainer container;
- /**
- * {@inheritDoc}
- */
+ @Override
public String getPathForLocalArtifact( ProjectBuildingRequest
buildingRequest, Artifact artifact )
{
try
@@ -58,12 +57,26 @@ public class DefaultRepositoryManager
{
throw new IllegalStateException( e.getMessage(), e );
}
-
}
- /**
- * {@inheritDoc}
- */
+ @Override
+ public String getPathForLocalArtifact( ProjectBuildingRequest
buildingRequest, ArtifactCoordinate coor )
+ {
+ try
+ {
+ String hint = isMaven31() ? "maven31" : "maven3";
+
+ RepositoryManager effectiveRepositoryManager = container.lookup(
RepositoryManager.class, hint );
+
+ return effectiveRepositoryManager.getPathForLocalArtifact(
buildingRequest, coor );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new IllegalStateException( e.getMessage(), e );
+ }
+ }
+
+ @Override
public ProjectBuildingRequest setLocalRepositoryBasedir(
ProjectBuildingRequest request, File basedir )
{
try
@@ -80,9 +93,7 @@ public class DefaultRepositoryManager
}
}
- /**
- * {@inheritDoc}
- */
+ @Override
public File getLocalRepositoryBasedir( ProjectBuildingRequest request )
{
try
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven30RepositoryManager.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven30RepositoryManager.java?rev=1694786&r1=1694785&r2=1694786&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven30RepositoryManager.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven30RepositoryManager.java
Sat Aug 8 10:30:44 2015
@@ -22,8 +22,10 @@ package org.apache.maven.shared.artifact
import java.io.File;
import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.ArtifactCoordinate;
import org.apache.maven.shared.artifact.repository.RepositoryManager;
import org.apache.maven.shared.artifact.repository.RepositoryManagerException;
import org.codehaus.plexus.component.annotations.Component;
@@ -31,10 +33,13 @@ import org.codehaus.plexus.component.ann
import org.sonatype.aether.RepositorySystem;
import org.sonatype.aether.RepositorySystemSession;
import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.artifact.ArtifactType;
+import org.sonatype.aether.artifact.ArtifactTypeRegistry;
import org.sonatype.aether.repository.LocalRepository;
import org.sonatype.aether.repository.LocalRepositoryManager;
import org.sonatype.aether.util.DefaultRepositoryCache;
import org.sonatype.aether.util.DefaultRepositorySystemSession;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
/**
*
@@ -46,14 +51,16 @@ public class Maven30RepositoryManager
@Requirement
private RepositorySystem repositorySystem;
+
+ @Requirement
+ private ArtifactHandlerManager artifactHandlerManager;
- /**
- * {@inheritDoc}
- */
+ @Override
public String getPathForLocalArtifact( ProjectBuildingRequest
buildingRequest,
org.apache.maven.artifact.Artifact
mavenArtifact )
{
Artifact aetherArtifact;
+
RepositorySystemSession session;
// LRM.getPathForLocalArtifact() won't throw an Exception, so
translate reflection error to RuntimeException
@@ -72,10 +79,34 @@ public class Maven30RepositoryManager
return session.getLocalRepositoryManager().getPathForLocalArtifact(
aetherArtifact );
}
+
+ @Override
+ public String getPathForLocalArtifact( ProjectBuildingRequest
buildingRequest, ArtifactCoordinate coordinate )
+ {
+ Artifact aetherArtifact;
+
+ RepositorySystemSession session;
- /**
- * {@inheritDoc}
- */
+ // LRM.getPathForLocalArtifact() won't throw an Exception, so
translate reflection error to RuntimeException
+ try
+ {
+ ArtifactTypeRegistry typeRegistry =
+ (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class,
"newArtifactTypeRegistry",
+
ArtifactHandlerManager.class, artifactHandlerManager );
+
+ aetherArtifact = toArtifact( coordinate, typeRegistry );
+
+ session = (RepositorySystemSession) Invoker.invoke(
buildingRequest, "getRepositorySession" );
+ }
+ catch ( RepositoryManagerException e )
+ {
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return session.getLocalRepositoryManager().getPathForLocalArtifact(
aetherArtifact );
+ }
+
+ @Override
public ProjectBuildingRequest setLocalRepositoryBasedir(
ProjectBuildingRequest buildingRequest, File basedir )
{
ProjectBuildingRequest newRequest = new DefaultProjectBuildingRequest(
buildingRequest );
@@ -116,9 +147,7 @@ public class Maven30RepositoryManager
return newRequest;
}
- /**
- * {@inheritDoc}
- */
+ @Override
public File getLocalRepositoryBasedir( ProjectBuildingRequest
buildingRequest )
{
RepositorySystemSession session;
@@ -137,5 +166,20 @@ public class Maven30RepositoryManager
{
return localRepository.getContentType();
}
+
+ protected Artifact toArtifact( ArtifactCoordinate coordinate,
ArtifactTypeRegistry typeRegistry )
+ {
+ if ( coordinate == null )
+ {
+ return null;
+ }
+ ArtifactType artifactType = typeRegistry.get( coordinate.getType() );
+
+ Artifact result =
+ new DefaultArtifact( coordinate.getGroupId(),
coordinate.getArtifactId(), coordinate.getClassifier(),
+ artifactType.getExtension(),
coordinate.getVersion(), null, artifactType );
+
+ return result;
+ }
}
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven31RepositoryManager.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven31RepositoryManager.java?rev=1694786&r1=1694785&r2=1694786&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven31RepositoryManager.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/repository/internal/Maven31RepositoryManager.java
Sat Aug 8 10:30:44 2015
@@ -22,8 +22,10 @@ package org.apache.maven.shared.artifact
import java.io.File;
import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.ArtifactCoordinate;
import org.apache.maven.shared.artifact.repository.RepositoryManager;
import org.apache.maven.shared.artifact.repository.RepositoryManagerException;
import org.codehaus.plexus.component.annotations.Component;
@@ -33,6 +35,9 @@ import org.eclipse.aether.DefaultReposit
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.ArtifactType;
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.LocalRepositoryManager;
@@ -43,10 +48,13 @@ import org.eclipse.aether.repository.Loc
public class Maven31RepositoryManager
implements RepositoryManager
{
-
@Requirement
private RepositorySystem repositorySystem;
+ @Requirement
+ private ArtifactHandlerManager artifactHandlerManager;
+
+ @Override
public String getPathForLocalArtifact( ProjectBuildingRequest
buildingRequest,
org.apache.maven.artifact.Artifact
mavenArtifact )
{
@@ -69,7 +77,34 @@ public class Maven31RepositoryManager
return session.getLocalRepositoryManager().getPathForLocalArtifact(
aetherArtifact );
}
+
+ @Override
+ public String getPathForLocalArtifact( ProjectBuildingRequest
buildingRequest, ArtifactCoordinate coordinate )
+ {
+ Artifact aetherArtifact;
+
+ RepositorySystemSession session;
+
+ // LRM.getPathForLocalArtifact() won't throw an Exception, so
translate reflection error to RuntimeException
+ try
+ {
+ ArtifactTypeRegistry typeRegistry =
+ (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class,
"newArtifactTypeRegistry",
+
ArtifactHandlerManager.class, artifactHandlerManager );
+
+ aetherArtifact = toArtifact( coordinate, typeRegistry );
+
+ session = (RepositorySystemSession) Invoker.invoke(
buildingRequest, "getRepositorySession" );
+ }
+ catch ( RepositoryManagerException e )
+ {
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return session.getLocalRepositoryManager().getPathForLocalArtifact(
aetherArtifact );
+ }
+ @Override
public ProjectBuildingRequest setLocalRepositoryBasedir(
ProjectBuildingRequest buildingRequest, File basedir )
{
ProjectBuildingRequest newRequest = new DefaultProjectBuildingRequest(
buildingRequest );
@@ -110,6 +145,7 @@ public class Maven31RepositoryManager
return newRequest;
}
+ @Override
public File getLocalRepositoryBasedir( ProjectBuildingRequest
buildingRequest )
{
RepositorySystemSession session;
@@ -139,4 +175,20 @@ public class Maven31RepositoryManager
}
return repositoryType;
}
+
+ protected Artifact toArtifact( ArtifactCoordinate coordinate,
ArtifactTypeRegistry typeRegistry )
+ {
+ if ( coordinate == null )
+ {
+ return null;
+ }
+
+ ArtifactType artifactType = typeRegistry.get( coordinate.getType() );
+
+ Artifact result =
+ new DefaultArtifact( coordinate.getGroupId(),
coordinate.getArtifactId(), coordinate.getClassifier(),
+ artifactType.getExtension(),
coordinate.getVersion(), null, artifactType );
+
+ return result;
+ }
}