Author: jdcasey
Date: Mon Oct  3 19:54:49 2005
New Revision: 293497

URL: http://svn.apache.org/viewcvs?rev=293497&view=rev
Log:
Resolving: MNG-1021

o Added AttachedArtifact, and changed the DefaultMavenProjectHelper to create 
and attach artifacts of this type. AttachedArtifact uses a parent artifact 
(constructor parameter) for versioning and basic identity attributes, but 
requires the user to specify a type and classifier specific to the new 
artifact. We may want to add flexibility for artifactId, too...though I have 
reservations on that score.

o See it0079 for a test.


Added:
    maven/components/trunk/maven-core-it/it0079/
    maven/components/trunk/maven-core-it/it0079/expected-results.txt   (with 
props)
    maven/components/trunk/maven-core-it/it0079/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it0079/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it0079/src/
    maven/components/trunk/maven-core-it/it0079/src/main/
    maven/components/trunk/maven-core-it/it0079/src/main/java/
    maven/components/trunk/maven-core-it/it0079/src/main/java/org/
    maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/
    maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/
    
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/
    
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java
   (with props)
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
   (with props)
Removed:
    maven/components/trunk/maven-core-it/it2003/
Modified:
    maven/components/trunk/maven-core-it/README.txt
    maven/components/trunk/maven-core-it/integration-tests.txt
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
    
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml

Modified: maven/components/trunk/maven-core-it/README.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=293497&r1=293496&r2=293497&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Mon Oct  3 19:54:49 2005
@@ -214,6 +214,9 @@
         PluginManagement section even when it's not explicitly defined in the
         plugins section.
 
+it0079: Test that source attachments have the same build number as the main
+        artifact when deployed.
+
 -------------------------------------------------------------------------------
 
 - generated sources

Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=293497&r1=293496&r2=293497&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Mon Oct  3 
19:54:49 2005
@@ -1,3 +1,4 @@
+it0079
 it0078
 it0077
 it0076

Added: maven/components/trunk/maven-core-it/it0079/expected-results.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0079/expected-results.txt?rev=293497&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0079/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0079/expected-results.txt Mon Oct  3 
19:54:49 2005
@@ -0,0 +1,2 @@
+target/test-repo/org/apache/maven/it/maven-core-it0079/SNAPSHOT/maven-core-it0079-*-1.jar
+target/test-repo/org/apache/maven/it/maven-core-it0079/SNAPSHOT/maven-core-it0079-*-1-sources.jar

Propchange: maven/components/trunk/maven-core-it/it0079/expected-results.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0079/expected-results.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0079/goals.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0079/goals.txt?rev=293497&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0079/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0079/goals.txt Mon Oct  3 19:54:49 
2005
@@ -0,0 +1 @@
+deploy

Propchange: maven/components/trunk/maven-core-it/it0079/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0079/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0079/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0079/pom.xml?rev=293497&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0079/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0079/pom.xml Mon Oct  3 19:54:49 2005
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.maven.it</groupId>
+    <artifactId>maven-core-it0079</artifactId>
+
+    <version>SNAPSHOT</version>
+    <distributionManagement>
+        <snapshotRepository>
+            <id>test</id>
+            <name>Test Repo</name>
+            <url>file:target/test-repo</url>
+        </snapshotRepository>
+    </distributionManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-core-it/it0079/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0079/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java?rev=293497&view=auto
==============================================================================
--- 
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java
 (added)
+++ 
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java
 Mon Oct  3 19:54:49 2005
@@ -0,0 +1,6 @@
+package org.apache.maven.it0079;
+
+public class Person
+{
+    String name;
+}

Propchange: 
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-core-it/it0079/src/main/java/org/apache/maven/it0079/Person.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java?rev=293497&r1=293496&r2=293497&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
 Mon Oct  3 19:54:49 2005
@@ -17,8 +17,8 @@
  */
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.model.Resource;
+import org.apache.maven.project.artifact.AttachedArtifact;
 
 import java.io.File;
 import java.util.List;
@@ -26,16 +26,10 @@
 public class DefaultMavenProjectHelper
     implements MavenProjectHelper
 {
-    // requirement.
-    private ArtifactFactory artifactFactory;
 
     public void attachArtifact( MavenProject project, String artifactType, 
String artifactClassifier, File artifactFile )
     {
-        Artifact artifact = artifactFactory.createArtifactWithClassifier( 
project.getGroupId(),
-                                                                          
project.getArtifactId(),
-                                                                          
project.getVersion(), 
-                                                                          
artifactType,
-                                                                          
artifactClassifier );
+        Artifact artifact = new AttachedArtifact( project.getArtifact(), 
artifactType, artifactClassifier );
         
         artifact.setFile( artifactFile );
         artifact.setResolved( true );

Added: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java?rev=293497&view=auto
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
 (added)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
 Mon Oct  3 19:54:49 2005
@@ -0,0 +1,115 @@
+package org.apache.maven.project.artifact;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.InvalidArtifactRTException;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.versioning.VersionRange;
+
+import java.util.List;
+
+public class AttachedArtifact
+    extends DefaultArtifact
+{
+
+    private final Artifact parent;
+
+    public AttachedArtifact ( Artifact parent, String type, String classifier )
+    {
+        super( parent.getGroupId(), parent.getArtifactId(), 
parent.getVersionRange(), parent.getScope(), type, classifier, 
parent.getArtifactHandler(), parent.isOptional() );
+        this.parent = parent;
+        
+        if ( type == null || type.trim().length() < 1 )
+        {
+            throw new InvalidArtifactRTException( getGroupId(), 
getArtifactId(), getVersion(), type, "Attached artifacts must specify a type." 
);
+        }
+        
+        if ( classifier == null || classifier.trim().length() < 1 )
+        {
+            throw new InvalidArtifactRTException( getGroupId(), 
getArtifactId(), getVersion(), type, "Attached artifacts must specify a 
classifier." );
+        }
+    }
+
+    public ArtifactHandler getArtifactHandler()
+    {
+        return parent.getArtifactHandler();
+    }
+
+    public String getArtifactId()
+    {
+        return parent.getArtifactId();
+    }
+
+    public List getAvailableVersions()
+    {
+        return parent.getAvailableVersions();
+    }
+
+    public String getBaseVersion()
+    {
+        return parent.getBaseVersion();
+    }
+
+    public ArtifactFilter getDependencyFilter()
+    {
+        return parent.getDependencyFilter();
+    }
+
+    public List getDependencyTrail()
+    {
+        return parent.getDependencyTrail();
+    }
+
+    public String getDownloadUrl()
+    {
+        return parent.getDownloadUrl();
+    }
+
+    public String getGroupId()
+    {
+        return parent.getGroupId();
+    }
+
+    public ArtifactRepository getRepository()
+    {
+        return parent.getRepository();
+    }
+
+    public String getScope()
+    {
+        return parent.getScope();
+    }
+
+    public String getType()
+    {
+        return parent.getType();
+    }
+
+    public String getVersion()
+    {
+        return parent.getVersion();
+    }
+
+    public VersionRange getVersionRange()
+    {
+        return parent.getVersionRange();
+    }
+
+    public boolean isOptional()
+    {
+        return parent.isOptional();
+    }
+
+    public boolean isRelease()
+    {
+        return parent.isRelease();
+    }
+
+    public boolean isSnapshot()
+    {
+        return parent.isSnapshot();
+    }
+
+}

Propchange: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: 
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=293497&r1=293496&r2=293497&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
 (original)
+++ 
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
 Mon Oct  3 19:54:49 2005
@@ -8,11 +8,6 @@
     <component>
       <role>org.apache.maven.project.MavenProjectHelper</role>
       
<implementation>org.apache.maven.project.DefaultMavenProjectHelper</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
-        </requirement>
-      </requirements>
     </component>
 <!--
      |



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to