You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2015/05/14 13:39:32 UTC

svn commit: r1679346 - in /maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal: Invoker.java Maven30ArtifactDeployer.java Maven31ArtifactDeployer.java

Author: rfscholte
Date: Thu May 14 11:39:32 2015
New Revision: 1679346

URL: http://svn.apache.org/r1679346
Log:
Fix handling of metadata

Modified:
    maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Invoker.java
    maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven30ArtifactDeployer.java
    maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven31ArtifactDeployer.java

Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Invoker.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Invoker.java?rev=1679346&r1=1679345&r2=1679346&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Invoker.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Invoker.java Thu May 14 11:39:32 2015
@@ -81,4 +81,26 @@ final class Invoker
             throw new ArtifactDeployerException( e.getMessage(), e );
         }
     }
+    
+    public static Object invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
+                    throws ArtifactDeployerException
+    {
+        try
+        {
+            return objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
+        }
+        catch ( IllegalAccessException e )
+        {
+            throw new ArtifactDeployerException( e.getMessage(), e );
+        }
+        catch ( InvocationTargetException e )
+        {
+            throw new ArtifactDeployerException( e.getMessage(), e );
+        }
+        catch ( NoSuchMethodException e )
+        {
+            throw new ArtifactDeployerException( e.getMessage(), e );
+        }
+    }
+
 }

Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven30ArtifactDeployer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven30ArtifactDeployer.java?rev=1679346&r1=1679345&r2=1679346&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven30ArtifactDeployer.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven30ArtifactDeployer.java Thu May 14 11:39:32 2015
@@ -21,7 +21,11 @@ package org.apache.maven.shared.artifact
 
 import java.util.Collection;
 
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.project.artifact.ProjectArtifactMetadata;
 import org.apache.maven.shared.artifact.deploy.ArtifactDeployer;
 import org.apache.maven.shared.artifact.deploy.ArtifactDeployerException;
 import org.codehaus.plexus.component.annotations.Component;
@@ -33,7 +37,8 @@ import org.sonatype.aether.deployment.De
 import org.sonatype.aether.deployment.DeploymentException;
 import org.sonatype.aether.metadata.Metadata;
 import org.sonatype.aether.metadata.Metadata.Nature;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.util.artifact.SubArtifact;
 import org.sonatype.aether.util.metadata.DefaultMetadata;
 
 @Component( role = ArtifactDeployer.class, hint = "maven3" )
@@ -55,26 +60,39 @@ public class Maven30ArtifactDeployer
         for ( org.apache.maven.artifact.Artifact mavenArtifact : mavenArtifacts )
         {
             Artifact aetherArtifact =
-                new DefaultArtifact( mavenArtifact.getGroupId(), mavenArtifact.getArtifactId(),
-                                     mavenArtifact.getClassifier(), mavenArtifact.getArtifactHandler().getExtension(),
-                                     mavenArtifact.getVersion(), null, mavenArtifact.getFile() );
-            
+                            (Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
+                                                       org.apache.maven.artifact.Artifact.class, mavenArtifact );
             request.addArtifact( aetherArtifact );
+
+            RemoteRepository aetherRepository =
+                (RemoteRepository) Invoker.invoke( RepositoryUtils.class, "toRepo",
+                                                   org.apache.maven.artifact.repository.ArtifactRepository.class,
+                                                   mavenArtifact.getRepository() );
+            request.setRepository( aetherRepository );
             
-            if ( mavenArtifact.getMetadataList() != null )
+            for ( ArtifactMetadata metadata : mavenArtifact.getMetadataList() )
             {
-                for( org.apache.maven.artifact.metadata.ArtifactMetadata metadata : mavenArtifact.getMetadataList() )
+                if ( metadata instanceof ProjectArtifactMetadata )
+                {
+                    org.sonatype.aether.artifact.Artifact pomArtifact = new SubArtifact( aetherArtifact, "", "pom" );
+                    pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
+                    request.addArtifact( pomArtifact );
+                }
+                else if ( // metadata instanceof SnapshotArtifactRepositoryMetadata ||
+                    metadata instanceof ArtifactRepositoryMetadata )
                 {
-                    Metadata aetherMetadata = new DefaultMetadata( metadata.getGroupId(), metadata.getArtifactId(), "maven-metadata.xml", Nature.RELEASE_OR_SNAPSHOT );
-                    
-                    request.addMetadata( aetherMetadata );
+                    // eaten, handled by repo system
+                }
+                else
+                {
+                    // request.addMetadata( new MetadataBridge( metadata ) );
                 }
             }
         }
         
         RepositorySystemSession session =
             (RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" );
-
+        
         // deploy
         try
         {

Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven31ArtifactDeployer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven31ArtifactDeployer.java?rev=1679346&r1=1679345&r2=1679346&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven31ArtifactDeployer.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/deploy/internal/Maven31ArtifactDeployer.java Thu May 14 11:39:32 2015
@@ -21,7 +21,11 @@ package org.apache.maven.shared.artifact
 
 import java.util.Collection;
 
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.project.artifact.ProjectArtifactMetadata;
 import org.apache.maven.shared.artifact.deploy.ArtifactDeployer;
 import org.apache.maven.shared.artifact.deploy.ArtifactDeployerException;
 import org.codehaus.plexus.component.annotations.Component;
@@ -29,12 +33,10 @@ import org.codehaus.plexus.component.ann
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.deployment.DeployRequest;
 import org.eclipse.aether.deployment.DeploymentException;
-import org.eclipse.aether.metadata.DefaultMetadata;
-import org.eclipse.aether.metadata.Metadata;
-import org.eclipse.aether.metadata.Metadata.Nature;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.util.artifact.SubArtifact;
 
 @Component( role = ArtifactDeployer.class , hint="maven31" )
 public class Maven31ArtifactDeployer implements ArtifactDeployer
@@ -54,18 +56,32 @@ public class Maven31ArtifactDeployer imp
         for ( org.apache.maven.artifact.Artifact mavenArtifact : mavenArtifacts )
         {
             Artifact aetherArtifact =
-                new DefaultArtifact( mavenArtifact.getGroupId(), mavenArtifact.getArtifactId(),
-                                     mavenArtifact.getClassifier(), mavenArtifact.getArtifactHandler().getExtension(),
-                                     mavenArtifact.getVersion(), null, mavenArtifact.getFile() );
+                            (Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
+                                                       org.apache.maven.artifact.Artifact.class, mavenArtifact );
             request.addArtifact( aetherArtifact );
             
-            if ( mavenArtifact.getMetadataList() != null )
+            RemoteRepository aetherRepository =
+                            (RemoteRepository) Invoker.invoke( RepositoryUtils.class, "toRepo",
+                                                               org.apache.maven.artifact.repository.ArtifactRepository.class,
+                                                               mavenArtifact.getRepository() );
+            request.setRepository( aetherRepository );
+
+            for ( ArtifactMetadata metadata : mavenArtifact.getMetadataList() )
             {
-                for( org.apache.maven.artifact.metadata.ArtifactMetadata metadata : mavenArtifact.getMetadataList() )
+                if ( metadata instanceof ProjectArtifactMetadata )
+                {
+                    Artifact pomArtifact = new SubArtifact( aetherArtifact, "", "pom" );
+                    pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
+                    request.addArtifact( pomArtifact );
+                }
+                else if ( // metadata instanceof SnapshotArtifactRepositoryMetadata ||
+                    metadata instanceof ArtifactRepositoryMetadata )
+                {
+                    // eaten, handled by repo system
+                }
+                else
                 {
-                    Metadata aetherMetadata = new DefaultMetadata( metadata.getGroupId(), metadata.getArtifactId(), "maven-metadata.xml", Nature.RELEASE_OR_SNAPSHOT );
-                    
-                    request.addMetadata( aetherMetadata );
+                    // request.addMetadata( new MetadataBridge( metadata ) );
                 }
             }
         }