Author: rfscholte
Date: Mon Jul  6 19:01:48 2015
New Revision: 1689478

URL: http://svn.apache.org/r1689478
Log:
Introduce ArtifactResult wrappers, dependency:purge-repository needs the extra 
info
Using Iterable<T> for lazy transforming

Added:
    
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResult.java
    
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResult.java
    
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResult.java
Modified:
    
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/resolve/ArtifactResolver.java
    
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/DefaultArtifactResolver.java
    
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java
    
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java

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=1689478&r1=1689477&r2=1689478&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
 Mon Jul  6 19:01:48 2015
@@ -115,7 +115,7 @@ public class Maven30RepositoryManager
 
         return newRequest;
     }
-
+    
     /**
      * {@inheritDoc}
      */
@@ -130,7 +130,6 @@ public class Maven30RepositoryManager
         {
             throw new RuntimeException( e.getMessage(), e );
         }
-
         return session.getLocalRepository().getBasedir();
     }
 
@@ -138,4 +137,5 @@ public class Maven30RepositoryManager
     {
         return localRepository.getContentType();
     }
+
 }

Modified: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResolver.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResolver.java?rev=1689478&r1=1689477&r2=1689478&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResolver.java
 (original)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResolver.java
 Mon Jul  6 19:01:48 2015
@@ -29,13 +29,13 @@ import org.apache.maven.shared.artifact.
 public interface ArtifactResolver
 {
 
-    Artifact resolveArtifact( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact  )
+    ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact  )
         throws ArtifactResolverException;
 
-    void resolveTransitively( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact  )
+    Iterable<ArtifactResult> resolveTransitively( ProjectBuildingRequest 
buildingRequest , Artifact mavenArtifact  )
         throws ArtifactResolverException;
 
-    void resolveTransitively( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact ,
+    Iterable<ArtifactResult> resolveTransitively( ProjectBuildingRequest 
buildingRequest , Artifact mavenArtifact ,
                               TransformableFilter filter  )
         throws ArtifactResolverException;
 

Added: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResult.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResult.java?rev=1689478&view=auto
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResult.java
 (added)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/ArtifactResult.java
 Mon Jul  6 19:01:48 2015
@@ -0,0 +1,34 @@
+package org.apache.maven.shared.artifact.resolve;
+
+import org.apache.maven.artifact.Artifact;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * The Artifact Result
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public interface ArtifactResult
+{
+
+    Artifact getArtifact();
+}

Modified: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/DefaultArtifactResolver.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/DefaultArtifactResolver.java?rev=1689478&r1=1689477&r2=1689478&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/DefaultArtifactResolver.java
 (original)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/DefaultArtifactResolver.java
 Mon Jul  6 19:01:48 2015
@@ -24,6 +24,7 @@ import org.apache.maven.project.ProjectB
 import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
 import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
 import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.artifact.resolve.ArtifactResult;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
@@ -41,7 +42,7 @@ public class DefaultArtifactResolver
 {
     private PlexusContainer container;
 
-    public Artifact resolveArtifact( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact  )
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest 
buildingRequest , Artifact mavenArtifact  )
         throws ArtifactResolverException
     {
         try
@@ -58,7 +59,7 @@ public class DefaultArtifactResolver
         }
     }
     
-    public void resolveTransitively( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact  )
+    public Iterable<ArtifactResult> resolveTransitively( 
ProjectBuildingRequest buildingRequest , Artifact mavenArtifact  )
         throws ArtifactResolverException
     {
         try
@@ -67,7 +68,7 @@ public class DefaultArtifactResolver
 
             ArtifactResolver effectiveArtifactResolver = container.lookup( 
ArtifactResolver.class, hint );
 
-            effectiveArtifactResolver.resolveTransitively( buildingRequest, 
mavenArtifact );
+            return effectiveArtifactResolver.resolveTransitively( 
buildingRequest, mavenArtifact );
         }
         catch ( ComponentLookupException e )
         {
@@ -75,7 +76,7 @@ public class DefaultArtifactResolver
         }
     }
     
-    public void resolveTransitively( ProjectBuildingRequest buildingRequest , 
Artifact mavenArtifact ,
+    public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> 
resolveTransitively( ProjectBuildingRequest buildingRequest , Artifact 
mavenArtifact ,
                                      TransformableFilter filter  )
         throws ArtifactResolverException
     {
@@ -85,7 +86,7 @@ public class DefaultArtifactResolver
 
             ArtifactResolver effectiveArtifactResolver = container.lookup( 
ArtifactResolver.class, hint );
 
-            effectiveArtifactResolver.resolveTransitively( buildingRequest, 
mavenArtifact, filter );
+            return effectiveArtifactResolver.resolveTransitively( 
buildingRequest, mavenArtifact, filter );
         }
         catch ( ComponentLookupException e )
         {

Modified: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java?rev=1689478&r1=1689477&r2=1689478&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java
 (original)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResolver.java
 Mon Jul  6 19:01:48 2015
@@ -21,6 +21,7 @@ package org.apache.maven.shared.artifact
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.RepositoryUtils;
@@ -55,7 +56,7 @@ public class Maven30ArtifactResolver
     @Requirement
     private RepositorySystem repositorySystem;
 
-    public org.apache.maven.artifact.Artifact resolveArtifact( 
ProjectBuildingRequest buildingRequest ,
+    public org.apache.maven.shared.artifact.resolve.ArtifactResult 
resolveArtifact( ProjectBuildingRequest buildingRequest ,
                                                                
org.apache.maven.artifact.Artifact mavenArtifact  )
         throws ArtifactResolverException
     {
@@ -82,10 +83,7 @@ public class Maven30ArtifactResolver
 
             ArtifactRequest request = new ArtifactRequest( 
descriptorResult.getArtifact(), aetherRepositories, null );
 
-            Artifact resolvedArtifact = repositorySystem.resolveArtifact( 
session, request ).getArtifact();
-
-            return (org.apache.maven.artifact.Artifact) Invoker.invoke( 
RepositoryUtils.class, "toArtifact",
-                                                                        
Artifact.class, resolvedArtifact );
+            return new Maven30ArtifactResult( 
repositorySystem.resolveArtifact( session, request ) );
         }
         catch ( ArtifactDescriptorException e )
         {
@@ -97,14 +95,14 @@ public class Maven30ArtifactResolver
         }
     }
 
-    public void resolveTransitively( ProjectBuildingRequest buildingRequest ,
+    public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> 
resolveTransitively( ProjectBuildingRequest buildingRequest ,
                                   org.apache.maven.artifact.Artifact 
mavenArtifact  )
         throws ArtifactResolverException
     {
-        resolveTransitively( buildingRequest, mavenArtifact, null );
+        return resolveTransitively( buildingRequest, mavenArtifact, null );
     }
 
-    public void resolveTransitively( ProjectBuildingRequest buildingRequest ,
+    public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> 
resolveTransitively( ProjectBuildingRequest buildingRequest ,
                                   org.apache.maven.artifact.Artifact 
mavenArtifact ,
                                   TransformableFilter dependencyFilter  )
         throws ArtifactResolverException
@@ -140,18 +138,36 @@ public class Maven30ArtifactResolver
                 depFilter = dependencyFilter.transform( new 
SonatypeAetherFilterTransformer() );
             }
 
-            List<ArtifactResult> artifactResults = 
repositorySystem.resolveDependencies( session, request, depFilter );
+            List<ArtifactResult> dependencyResults = 
repositorySystem.resolveDependencies( session, request, depFilter );
 
-            Collection<ArtifactRequest> artifactRequests = new 
ArrayList<ArtifactRequest>( 1 + artifactResults.size() );
+            Collection<ArtifactRequest> artifactRequests = new 
ArrayList<ArtifactRequest>( 1 + dependencyResults.size() );
 
             artifactRequests.add( new ArtifactRequest( 
descriptorResult.getArtifact(), aetherRepositories, null ) );
 
-            for ( ArtifactResult artifactResult : artifactResults )
+            for ( ArtifactResult artifactResult : dependencyResults )
             {
                 artifactRequests.add( new ArtifactRequest( 
artifactResult.getArtifact(), aetherRepositories, null ) );
             }
 
-            repositorySystem.resolveArtifacts( session, artifactRequests );
+            final List<ArtifactResult> artifactResults = 
repositorySystem.resolveArtifacts( session, artifactRequests );
+
+            // Keep it lazy! Often artifactsResults aren't used, so 
transforming up front is too expensive
+            return new 
Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult>()
+            {
+                @Override
+                public 
Iterator<org.apache.maven.shared.artifact.resolve.ArtifactResult> iterator()
+                {
+                    
Collection<org.apache.maven.shared.artifact.resolve.ArtifactResult> artResults =
+                        new 
ArrayList<org.apache.maven.shared.artifact.resolve.ArtifactResult>( 
artifactResults.size() );
+
+                    for ( ArtifactResult artifactResult : artifactResults )
+                    {
+                        artResults.add( new Maven30ArtifactResult( 
artifactResult ) );
+                    }
+
+                    return artResults.iterator();
+                }
+            };
         }
         catch ( ArtifactDescriptorException e )
         {

Added: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResult.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResult.java?rev=1689478&view=auto
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResult.java
 (added)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven30ArtifactResult.java
 Mon Jul  6 19:01:48 2015
@@ -0,0 +1,54 @@
+package org.apache.maven.shared.artifact.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.resolution.ArtifactResult;
+
+/**
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class Maven30ArtifactResult implements 
org.apache.maven.shared.artifact.resolve.ArtifactResult
+{
+    private final ArtifactResult artifactResult;
+
+    public Maven30ArtifactResult( ArtifactResult artifactResult )
+    {
+        this.artifactResult = artifactResult;
+    }
+    
+    @Override
+    public org.apache.maven.artifact.Artifact getArtifact()
+    {
+        try
+        {
+            return (org.apache.maven.artifact.Artifact) Invoker.invoke( 
RepositoryUtils.class, "toArtifact", Artifact.class,
+                                                       
artifactResult.getArtifact() );
+        }
+        catch ( ArtifactResolverException e )
+        {
+            throw new RuntimeException( e );
+        }
+    }
+}

Modified: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java?rev=1689478&r1=1689477&r2=1689478&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java
 (original)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResolver.java
 Mon Jul  6 19:01:48 2015
@@ -21,6 +21,7 @@ package org.apache.maven.shared.artifact
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.RepositoryUtils;
@@ -56,7 +57,7 @@ public class Maven31ArtifactResolver
     @Requirement
     private RepositorySystem repositorySystem;
 
-    public org.apache.maven.artifact.Artifact resolveArtifact( 
ProjectBuildingRequest buildingRequest ,
+    public org.apache.maven.shared.artifact.resolve.ArtifactResult 
resolveArtifact( ProjectBuildingRequest buildingRequest ,
                                                                
org.apache.maven.artifact.Artifact mavenArtifact  )
         throws ArtifactResolverException
     {
@@ -83,10 +84,7 @@ public class Maven31ArtifactResolver
 
             ArtifactRequest request = new ArtifactRequest( 
descriptorResult.getArtifact(), aetherRepositories, null );
 
-            Artifact resolvedArtifact = repositorySystem.resolveArtifact( 
session, request ).getArtifact();
-
-            return (org.apache.maven.artifact.Artifact) Invoker.invoke( 
RepositoryUtils.class, "toArtifact",
-                                                                        
Artifact.class, resolvedArtifact );
+            return new Maven31ArtifactResult( 
repositorySystem.resolveArtifact( session, request ) );
         }
         catch ( ArtifactResolutionException e )
         {
@@ -98,14 +96,14 @@ public class Maven31ArtifactResolver
         }
     }
 
-    public void resolveTransitively( ProjectBuildingRequest buildingRequest ,
+    public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> 
resolveTransitively( ProjectBuildingRequest buildingRequest ,
                                      org.apache.maven.artifact.Artifact 
mavenArtifact  )
         throws ArtifactResolverException
     {
-        resolveTransitively( buildingRequest, mavenArtifact, null );
+        return resolveTransitively( buildingRequest, mavenArtifact, null );
     }
 
-    public void resolveTransitively( ProjectBuildingRequest buildingRequest ,
+    public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> 
resolveTransitively( ProjectBuildingRequest buildingRequest ,
                                      org.apache.maven.artifact.Artifact 
mavenArtifact ,
                                      TransformableFilter dependencyFilter  )
         throws ArtifactResolverException
@@ -143,19 +141,37 @@ public class Maven31ArtifactResolver
 
             DependencyRequest depRequest = new DependencyRequest( request, 
depFilter );
 
-            List<ArtifactResult> artifactResults =
+            List<ArtifactResult> dependencyResults =
                 repositorySystem.resolveDependencies( session, depRequest 
).getArtifactResults();
 
-            Collection<ArtifactRequest> artifactRequests = new 
ArrayList<ArtifactRequest>( 1 + artifactResults.size() );
+            Collection<ArtifactRequest> artifactRequests = new 
ArrayList<ArtifactRequest>( 1 + dependencyResults.size() );
 
             artifactRequests.add( new ArtifactRequest( 
descriptorResult.getArtifact(), aetherRepositories, null ) );
 
-            for ( ArtifactResult artifactResult : artifactResults )
+            for ( ArtifactResult artifactResult : dependencyResults )
             {
                 artifactRequests.add( new ArtifactRequest( 
artifactResult.getArtifact(), aetherRepositories, null ) );
             }
 
-            repositorySystem.resolveArtifacts( session, artifactRequests );
+            final List<ArtifactResult> artifactResults = 
repositorySystem.resolveArtifacts( session, artifactRequests );
+
+            // Keep it lazy! Often artifactsResults aren't used, so 
transforming up front is too expensive
+            return new 
Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult>()
+            {
+                @Override
+                public 
Iterator<org.apache.maven.shared.artifact.resolve.ArtifactResult> iterator()
+                {
+                    
Collection<org.apache.maven.shared.artifact.resolve.ArtifactResult> artResults =
+                        new 
ArrayList<org.apache.maven.shared.artifact.resolve.ArtifactResult>( 
artifactResults.size() );
+
+                    for ( ArtifactResult artifactResult : artifactResults )
+                    {
+                        artResults.add( new Maven31ArtifactResult( 
artifactResult ) );
+                    }
+
+                    return artResults.iterator();
+                }
+            };
         }
         catch ( ArtifactDescriptorException e )
         {

Added: 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResult.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResult.java?rev=1689478&view=auto
==============================================================================
--- 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResult.java
 (added)
+++ 
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/resolve/internal/Maven31ArtifactResult.java
 Mon Jul  6 19:01:48 2015
@@ -0,0 +1,55 @@
+package org.apache.maven.shared.artifact.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
+import org.eclipse.aether.resolution.ArtifactResult;
+import org.eclipse.aether.artifact.Artifact;
+
+/**
+ * 
+ * 
+ * @author Robert Scholte
+ * @since 3.0
+ */
+public class Maven31ArtifactResult implements 
org.apache.maven.shared.artifact.resolve.ArtifactResult
+{
+    private final ArtifactResult artifactResult;
+
+    public Maven31ArtifactResult( ArtifactResult artifactResult )
+    {
+        this.artifactResult = artifactResult;
+    }
+    
+    @Override
+    public org.apache.maven.artifact.Artifact getArtifact()
+    {
+        try
+        {
+            return (org.apache.maven.artifact.Artifact) Invoker.invoke( 
RepositoryUtils.class, "toArtifact", Artifact.class,
+                                                       
artifactResult.getArtifact() );
+        }
+        catch ( ArtifactResolverException e )
+        {
+            throw new RuntimeException( e );
+        }
+    }
+}


Reply via email to