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]