You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/02/03 05:19:45 UTC

svn commit: r617944 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/ main/java/org/apache/maven/artifact/deployer/ main/java/org/apache/maven/artifact/factory/ main/java/org/apache/maven/artifact/installer/ main/java/org/apache/mave...

Author: jvanzyl
Date: Sat Feb  2 20:19:44 2008
New Revision: 617944

URL: http://svn.apache.org/viewvc?rev=617944&view=rev
Log:
o The Artifact should serve as datum, or representation of resource in a Maven repository. It currently has way too much information, and
  also has references to components. In a first pass I have decoupled the ArtifactHandler from Artifact so that it is no longer required.
  This means that the primary requirement of the ArtifactFactory is gone and you can now use a simple constructor to create an 
  Artifact. 

Modified:
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
    maven/artifact/trunk/src/test/java/org/apache/maven/artifact/DefaultArtifactTest.java
    maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java Sat Feb  2 20:19:44 2008
@@ -119,8 +119,6 @@
 
     void setDependencyFilter( ArtifactFilter artifactFilter );
 
-    ArtifactHandler getArtifactHandler();
-
     List getDependencyTrail();
 
     void setDependencyTrail( List dependencyTrail );
@@ -144,9 +142,6 @@
     boolean isResolved();
 
     void setResolvedVersion( String version );
-
-    /** @todo remove, a quick hack for the lifecycle executor */
-    void setArtifactHandler( ArtifactHandler handler );
 
     boolean isRelease();
 

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ArtifactUtils.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ArtifactUtils.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ArtifactUtils.java Sat Feb  2 20:19:44 2008
@@ -150,10 +150,10 @@
         {
             range = VersionRange.createFromVersion( artifact.getVersion() );
         }
-
+        
         DefaultArtifact clone = new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), range.cloneOf(),
-            artifact.getScope(), artifact.getType(), artifact.getClassifier(),
-            artifact.getArtifactHandler(), artifact.isOptional() );
+            artifact.getScope(), artifact.getType(), artifact.getClassifier(), artifact.isOptional() );
+
         clone.setRelease( artifact.isRelease() );
         clone.setResolvedVersion( artifact.getVersion() );
         clone.setResolved( artifact.isResolved() );

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/DefaultArtifact.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/DefaultArtifact.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/DefaultArtifact.java Sat Feb  2 20:19:44 2008
@@ -37,7 +37,7 @@
 import java.util.regex.Matcher;
 
 /**
- * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
+ * @author Jason van Zyl
  * @version $Id$
  * @todo this should possibly be replaced by type handler
  */
@@ -48,13 +48,6 @@
 
     private String artifactId;
 
-    /**
-     * The resolved version for the artifact after conflict resolution, that has not been transformed.
-     *
-     * @todo should be final
-     */
-    private String baseVersion;
-
     private final String type;
 
     private final String classifier;
@@ -63,28 +56,40 @@
 
     private File file;
 
+    // Why is this here? What repository is determined at runtime and is therefore a
+    // runtime charactistic. This needs to go. jvz.
     private ArtifactRepository repository;
 
     private String downloadUrl;
 
+    // Why is this here? jvz.
     private ArtifactFilter dependencyFilter;
 
-    private ArtifactHandler artifactHandler;
-
+    // Why is this here? jvz?
     private List dependencyTrail;
 
+    /**
+     * The resolved version for the artifact after conflict resolution, that has not been transformed.
+     *
+     * @todo should be final
+     */
+    private String baseVersion;
+
     private String version;
 
     private VersionRange versionRange;
 
     private boolean resolved;
 
+    // This is specific to maven. jvz.
     private boolean release;
 
+    // If the version is stored here (above), why on earth do we store the available versions here? jvz.
     private List availableVersions;
 
     private Map metadataMap;
 
+    // This is Maven specific. jvz/
     private boolean optional;
 
     public DefaultArtifact( String groupId,
@@ -92,10 +97,9 @@
                             VersionRange versionRange,
                             String scope,
                             String type,
-                            String classifier,
-                            ArtifactHandler artifactHandler )
+                            String classifier )
     {
-        this( groupId, artifactId, versionRange, scope, type, classifier, artifactHandler, false );
+        this( groupId, artifactId, versionRange, scope, type, classifier, false );
     }
 
     public DefaultArtifact( String groupId,
@@ -104,7 +108,6 @@
                             String scope,
                             String type,
                             String classifier,
-                            ArtifactHandler artifactHandler,
                             boolean optional )
     {
         this.groupId = groupId;
@@ -115,17 +118,10 @@
 
         selectVersionFromNewRangeIfAvailable();
 
-        this.artifactHandler = artifactHandler;
-
         this.scope = scope;
 
         this.type = type;
 
-        if ( classifier == null )
-        {
-            classifier = artifactHandler.getClassifier();
-        }
-
         this.classifier = classifier;
 
         this.optional = optional;
@@ -474,11 +470,6 @@
         dependencyFilter = artifactFilter;
     }
 
-    public ArtifactHandler getArtifactHandler()
-    {
-        return artifactHandler;
-    }
-
     public List getDependencyTrail()
     {
         return dependencyTrail;
@@ -561,11 +552,6 @@
     {
         this.version = version;
         // retain baseVersion
-    }
-
-    public void setArtifactHandler( ArtifactHandler artifactHandler )
-    {
-        this.artifactHandler = artifactHandler;
     }
 
     public void setRelease( boolean release )

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java Sat Feb  2 20:19:44 2008
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
@@ -63,6 +64,9 @@
     /** @plexus.requirement role-hint="default" */
     private ArtifactRepositoryLayout defaultLayout;
 
+    /** @plexus.requirement */
+    private ArtifactHandlerManager artifactHandlerManager;
+
     /** @deprecated we want to use the artifact method only, and ensure artifact.file is set correctly. */
     public void deploy( String basedir,
                         String finalName,
@@ -71,7 +75,8 @@
                         ArtifactRepository localRepository )
         throws ArtifactDeploymentException
     {
-        String extension = artifact.getArtifactHandler().getExtension();
+        String extension = artifactHandlerManager.getArtifactHandler( artifact.getType() ).getExtension();
+
         File source = new File( basedir, finalName + "." + extension );
         deploy( source, artifact, deploymentRepository, localRepository );
     }

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java Sat Feb  2 20:19:44 2008
@@ -211,9 +211,6 @@
             desiredScope = Artifact.SCOPE_SYSTEM;
         }
 
-        ArtifactHandler handler = artifactHandlerManager.getArtifactHandler( type );
-
-        return new DefaultArtifact( groupId, artifactId, versionRange, desiredScope, type, classifier, handler,
-            optional );
+        return new DefaultArtifact( groupId, artifactId, versionRange, desiredScope, type, classifier, optional );
     }
 }

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java Sat Feb  2 20:19:44 2008
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataInstallationException;
@@ -46,6 +47,9 @@
     /** @plexus.requirement */
     private RepositoryMetadataManager repositoryMetadataManager;
 
+    /** @plexus.requirement */
+    private ArtifactHandlerManager artifactHandlerManager;
+    
     /** @deprecated we want to use the artifact method only, and ensure artifact.file is set correctly. */
     public void install( String basedir,
                          String finalName,
@@ -53,7 +57,8 @@
                          ArtifactRepository localRepository )
         throws ArtifactInstallationException
     {
-        String extension = artifact.getArtifactHandler().getExtension();
+        String extension = artifactHandlerManager.getArtifactHandler( artifact.getType() ).getExtension();
+
         File source = new File( basedir, finalName + "." + extension );
 
         install( source, artifact, localRepository );

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java Sat Feb  2 20:19:44 2008
@@ -21,6 +21,7 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 
@@ -37,9 +38,12 @@
 
     private static final char ARTIFACT_SEPARATOR = '-';
 
+    /** @plexus.requirement */
+    private ArtifactHandlerManager artifactHandlerManager;
+
     public String pathOf( Artifact artifact )
     {
-        ArtifactHandler artifactHandler = artifact.getArtifactHandler();
+        ArtifactHandler artifactHandler = artifactHandlerManager.getArtifactHandler( artifact.getType() );
 
         StringBuffer path = new StringBuffer();
 

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java Sat Feb  2 20:19:44 2008
@@ -2,9 +2,9 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 
 /**
  * The code in this class is taken from DefaultRepositorylayout, located at:
@@ -20,9 +20,12 @@
 
     private static final char GROUP_SEPARATOR = '.';
 
+    /** @plexus.requirement */
+    private ArtifactHandlerManager artifactHandlerManager;
+
     public String pathOf( Artifact artifact )
     {
-        ArtifactHandler artifactHandler = artifact.getArtifactHandler();
+        ArtifactHandler artifactHandler = artifactHandlerManager.getArtifactHandler( artifact.getType() );
 
         StringBuffer path = new StringBuffer();
 

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java Sat Feb  2 20:19:44 2008
@@ -21,6 +21,7 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 
@@ -33,9 +34,12 @@
 {
     private static final String PATH_SEPARATOR = "/";
 
+    /** @plexus.requirement */
+    private ArtifactHandlerManager artifactHandlerManager;
+
     public String pathOf( Artifact artifact )
     {
-        ArtifactHandler artifactHandler = artifact.getArtifactHandler();
+        ArtifactHandler artifactHandler = artifactHandlerManager.getArtifactHandler( artifact.getType() );
 
         StringBuffer path = new StringBuffer();
 

Modified: maven/artifact/trunk/src/test/java/org/apache/maven/artifact/DefaultArtifactTest.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/DefaultArtifactTest.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/DefaultArtifactTest.java (original)
+++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/DefaultArtifactTest.java Sat Feb  2 20:19:44 2008
@@ -47,12 +47,11 @@
         throws Exception
     {
         super.setUp();
-        artifactHandler = new ArtifactHandlerMock();
         versionRange = VersionRange.createFromVersion( version );
-        artifact = new DefaultArtifact( groupId, artifactId, versionRange, scope, type, classifier, artifactHandler );
+        artifact = new DefaultArtifact( groupId, artifactId, versionRange, scope, type, classifier );
 
         snapshotVersionRange = VersionRange.createFromVersion( snapshotResolvedVersion );
-        snapshotArtifact = new DefaultArtifact( groupId, artifactId, snapshotVersionRange, scope, type, classifier, artifactHandler );
+        snapshotArtifact = new DefaultArtifact( groupId, artifactId, snapshotVersionRange, scope, type, classifier );
     }
 
     public void testGetVersionReturnsResolvedVersionOnSnapshot()
@@ -78,7 +77,7 @@
 
     public void testGetDependencyConflictIdNullClassifier()
     {
-        artifact = new DefaultArtifact( groupId, artifactId, versionRange, scope, type, null, artifactHandler );
+        artifact = new DefaultArtifact( groupId, artifactId, versionRange, scope, type, null );
         assertEquals( groupId + ":" + artifactId + ":" + type, artifact.getDependencyConflictId() );
     }
 
@@ -102,7 +101,7 @@
 
     public void testToStringNullClassifier()
     {
-        artifact = new DefaultArtifact( groupId, artifactId, versionRange, scope, type, null, artifactHandler );
+        artifact = new DefaultArtifact( groupId, artifactId, versionRange, scope, type, null );
         assertEquals( groupId + ":" + artifactId + ":" + type + ":" + version + ":" + scope, artifact.toString() );
     }
 

Modified: maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=617944&r1=617943&r2=617944&view=diff
==============================================================================
--- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java (original)
+++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Sat Feb  2 20:19:44 2008
@@ -138,7 +138,7 @@
         {
             tmpFile.deleteOnExit();
             Artifact artifact = new DefaultArtifact( "sample.group", "sample-art", VersionRange
-                .createFromVersion( "1.0" ), "artifactScope", "type", "classifier", null );
+                .createFromVersion( "1.0" ), "artifactScope", "type", "classifier" );
             artifact.setFile( tmpFile );
             ArtifactRepository repo = new DefaultArtifactRepository( "id", "noop://url",
                                                                      new ArtifactRepositoryLayoutStub() );