Author: jdcasey
Date: Mon Aug 22 12:00:51 2005
New Revision: 239219
URL: http://svn.apache.org/viewcvs?rev=239219&view=rev
Log:
Resolving: MNG-251
o Added transformation manager
o snapshot timestamp/buildnumber is now managed from the transformation rather
than the metadata
o maven-archiver now clones the MavenProject and resolves snapshot versions for
introduction into manifest and exported pom.
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java
(with props)
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java
(with props)
Modified:
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
maven/components/trunk/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformation.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
Modified:
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
(original)
+++
maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
Mon Aug 22 12:00:51 2005
@@ -42,7 +42,7 @@
public class MavenArchiver
{
private JarArchiver archiver = new JarArchiver();
-
+
private File archiveFile;
/**
@@ -59,6 +59,14 @@
m.addConfiguredAttribute( buildAttr );
Manifest.Attribute createdAttr = new Manifest.Attribute( "Created-By",
"Apache Maven" );
m.addConfiguredAttribute( createdAttr );
+
+ Artifact projectArtifact = project.getArtifact();
+
+ if ( projectArtifact.isSnapshot() )
+ {
+ Manifest.Attribute buildNumberAttr = new Manifest.Attribute(
"Build-Number", "" + project.getSnapshotDeploymentBuildNumber() );
+ m.addConfiguredAttribute( buildNumberAttr );
+ }
if ( config.getPackageName() != null )
{
@@ -214,12 +222,21 @@
// top-level POM elements so that applications that wish to access
// POM information without the use of maven tools can do so.
//
----------------------------------------------------------------------
+
+ // we have to clone the project instance so we can write out the pom
with the deployment version,
+ // without impacting the main project instance...
+ MavenProject workingProject = new MavenProject( project );
+
+ if ( workingProject.getArtifact().isSnapshot() )
+ {
+ workingProject.setVersion(
workingProject.getSnapshotDeploymentVersion() );
+ }
+
+ String groupId = workingProject.getGroupId();
- String groupId = project.getGroupId();
-
- String artifactId = project.getArtifactId();
+ String artifactId = workingProject.getArtifactId();
- File exportReadyPom = writeExportReadyPom( project );
+ File exportReadyPom = writeExportReadyPom( workingProject );
archiver.addFile( exportReadyPom, "META-INF/maven/" + groupId + "/" +
artifactId + "/pom.xml" );
@@ -229,13 +246,13 @@
Properties p = new Properties();
- p.setProperty( "groupId", project.getGroupId() );
+ p.setProperty( "groupId", workingProject.getGroupId() );
- p.setProperty( "artifactId", project.getArtifactId() );
+ p.setProperty( "artifactId", workingProject.getArtifactId() );
- p.setProperty( "version", project.getVersion() );
+ p.setProperty( "version", workingProject.getVersion() );
- File pomPropertiesFile = new File( project.getFile().getParentFile(),
"pom.properties" );
+ File pomPropertiesFile = new File(
workingProject.getFile().getParentFile(), "pom.properties" );
OutputStream os = new FileOutputStream( pomPropertiesFile );
@@ -256,7 +273,7 @@
archiver.setManifest( manifestFile );
}
- Manifest manifest = getManifest( project,
archiveConfiguration.getManifest() );
+ Manifest manifest = getManifest( workingProject,
archiveConfiguration.getManifest() );
// Configure the jar
archiver.addConfiguredManifest( manifest );
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
Mon Aug 22 12:00:51 2005
@@ -21,7 +21,7 @@
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.transform.ArtifactTransformation;
+import org.apache.maven.artifact.transform.ArtifactTransformationManager;
import org.apache.maven.wagon.TransferFailedException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.FileUtils;
@@ -29,15 +29,14 @@
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
-import java.util.List;
public class DefaultArtifactDeployer
extends AbstractLogEnabled
implements ArtifactDeployer
{
private WagonManager wagonManager;
-
- private List artifactTransformations;
+
+ private ArtifactTransformationManager transformationManager;
/** @deprecated we want to use the artifact method only, and ensure
artifact.file is set correctly. */
public void deploy( String basedir, String finalName, Artifact artifact,
ArtifactRepository deploymentRepository,
@@ -55,12 +54,7 @@
{
try
{
- // TODO: better to have a transform manager, or reuse the handler
manager again so we don't have these requirements duplicated all over?
- for ( Iterator i = artifactTransformations.iterator();
i.hasNext(); )
- {
- ArtifactTransformation transform = (ArtifactTransformation)
i.next();
- transform.transformForDeployment( artifact,
deploymentRepository );
- }
+ transformationManager.transformForDeployment( artifact,
localRepository );
// Copy the original file to the new one if it was transformed
File artifactFile = new File( localRepository.getBasedir(),
localRepository.pathOf( artifact ) );
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
Mon Aug 22 12:00:51 2005
@@ -20,20 +20,19 @@
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.transform.ArtifactTransformation;
+import org.apache.maven.artifact.transform.ArtifactTransformationManager;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
-import java.util.List;
public class DefaultArtifactInstaller
extends AbstractLogEnabled
implements ArtifactInstaller
{
- private List artifactTransformations;
+ private ArtifactTransformationManager transformationManager;
/** @deprecated we want to use the artifact method only, and ensure
artifact.file is set correctly. */
public void install( String basedir, String finalName, Artifact artifact,
ArtifactRepository localRepository )
@@ -50,12 +49,7 @@
{
try
{
- // TODO: better to have a transform manager, or reuse the handler
manager again so we don't have these requirements duplicated all over?
- for ( Iterator i = artifactTransformations.iterator();
i.hasNext(); )
- {
- ArtifactTransformation transform = (ArtifactTransformation)
i.next();
- transform.transformForInstall( artifact, localRepository );
- }
+ transformationManager.transformForInstall( artifact,
localRepository );
String localPath = localRepository.pathOf( artifact );
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java
Mon Aug 22 12:00:51 2005
@@ -43,9 +43,6 @@
private static final String UTC_TIMESTAMP_PATTERN = "yyyyMMdd.HHmmss";
- // TODO: very quick and nasty hack to get the same timestamp across a
build - not embedder friendly
- private static String sessionTimestamp = null;
-
public SnapshotArtifactMetadata( Artifact artifact )
{
super( artifact, artifact.getArtifactId() + "-" +
artifact.getBaseVersion() + "." + SNAPSHOT_VERSION_FILE );
@@ -83,11 +80,22 @@
buildNumber = 0;
}
}
+
+ public void setVersion( String timestamp, int buildNumber )
+ {
+ this.timestamp = timestamp;
+ this.buildNumber = buildNumber;
+ }
public String getTimestamp()
{
return timestamp;
}
+
+ public int getBuildNumber()
+ {
+ return buildNumber;
+ }
public static DateFormat getUtcDateFormatter()
{
@@ -95,22 +103,6 @@
utcDateFormatter.setTimeZone( UTC_TIME_ZONE );
return utcDateFormatter;
}
-
- public void update()
- {
- this.buildNumber++;
- timestamp = getSessionTimestamp();
- }
-
- private static String getSessionTimestamp()
- {
- if ( sessionTimestamp == null )
- {
- sessionTimestamp = getUtcDateFormatter().format( new Date() );
- }
- return sessionTimestamp;
- }
-
public int compareTo( Object o )
{
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
Mon Aug 22 12:00:51 2005
@@ -24,7 +24,7 @@
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.transform.ArtifactTransformation;
+import org.apache.maven.artifact.transform.ArtifactTransformationManager;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -46,8 +46,8 @@
// ----------------------------------------------------------------------
private WagonManager wagonManager;
-
- private List artifactTransformations;
+
+ private ArtifactTransformationManager transformationManager;
protected ArtifactFactory artifactFactory;
@@ -86,18 +86,13 @@
artifact.setFile( new File( localRepository.getBasedir(),
localPath ) );
- // TODO: better to have a transform manager, or reuse the handler
manager again so we don't have these requirements duplicated all over?
- for ( Iterator i = artifactTransformations.iterator();
i.hasNext(); )
+ try
+ {
+ transformationManager.transformForResolve( artifact,
remoteRepositories, localRepository );
+ }
+ catch ( ArtifactMetadataRetrievalException e )
{
- ArtifactTransformation transform = (ArtifactTransformation)
i.next();
- try
- {
- transform.transformForResolve( artifact,
remoteRepositories, localRepository );
- }
- catch ( ArtifactMetadataRetrievalException e )
- {
- throw new ArtifactResolutionException( e.getMessage(),
artifact, remoteRepositories, e );
- }
+ throw new ArtifactResolutionException( e.getMessage(),
artifact, remoteRepositories, e );
}
File destination = artifact.getFile();
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java?rev=239219&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java
(added)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java
Mon Aug 22 12:00:51 2005
@@ -0,0 +1,63 @@
+package org.apache.maven.artifact.transform;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+import java.util.Iterator;
+import java.util.List;
+
+public class DefaultArtifactTransformationManager
+ implements ArtifactTransformationManager
+{
+
+ private List artifactTransformations;
+
+ private SnapshotTransformation snapshotTransformation;
+
+ public void transformForResolve( Artifact artifact, List
remoteRepositories, ArtifactRepository localRepository )
+ throws ArtifactMetadataRetrievalException
+ {
+ for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); )
+ {
+ ArtifactTransformation transform = (ArtifactTransformation)
i.next();
+ transform.transformForResolve( artifact, remoteRepositories,
localRepository );
+ }
+ }
+
+ public void transformForInstall( Artifact artifact, ArtifactRepository
localRepository )
+ throws ArtifactMetadataRetrievalException
+ {
+ for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); )
+ {
+ ArtifactTransformation transform = (ArtifactTransformation)
i.next();
+ transform.transformForInstall( artifact, localRepository );
+ }
+ }
+
+ public void transformForDeployment( Artifact artifact, ArtifactRepository
remoteRepository )
+ throws ArtifactMetadataRetrievalException
+ {
+ for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); )
+ {
+ ArtifactTransformation transform = (ArtifactTransformation)
i.next();
+ transform.transformForDeployment( artifact, remoteRepository );
+ }
+ }
+
+ public String getSnapshotDeploymentTimestamp()
+ {
+ return snapshotTransformation.getDeploymentTimestamp();
+ }
+
+ public int getSnapshotDeploymentBuildNumber( Artifact artifact )
+ {
+ return snapshotTransformation.getDeploymentBuildNumber( artifact);
+ }
+
+ public String getSnapshotDeploymentVersion( Artifact snapshotArtifact )
+ {
+ return snapshotTransformation.getDeploymentVersion( snapshotArtifact );
+ }
+
+}
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/DefaultArtifactTransformationManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
Mon Aug 22 12:00:51 2005
@@ -17,6 +17,7 @@
*/
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.metadata.AbstractVersionArtifactMetadata;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.metadata.SnapshotArtifactMetadata;
@@ -24,7 +25,10 @@
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.wagon.ResourceDoesNotExistException;
+import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
@@ -35,6 +39,12 @@
public class SnapshotTransformation
extends AbstractVersionTransformation
{
+ private String deploymentTimestamp;
+
+ private int deploymentBuildNumber = 1;
+
+ private Map buildNumbers = new HashMap();
+
public void transformForResolve( Artifact artifact, List
remoteRepositories, ArtifactRepository localRepository )
throws ArtifactMetadataRetrievalException
{
@@ -66,6 +76,8 @@
{
metadata = (SnapshotArtifactMetadata)
retrieveFromRemoteRepository( artifact, remoteRepository, null,
ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE );
+
+ updateDeploymentBuildNumber( artifact,
metadata.getTimestamp(), metadata.getBuildNumber() );
}
catch ( ResourceDoesNotExistException e )
{
@@ -77,7 +89,7 @@
metadata = (SnapshotArtifactMetadata) createMetadata( artifact
);
}
- metadata.update();
+ metadata.setVersion( getDeploymentTimestamp(),
deploymentBuildNumber );
artifact.setResolvedVersion( metadata.constructVersion() );
@@ -85,9 +97,62 @@
}
}
+ private void updateDeploymentBuildNumber( Artifact artifact, String
timestamp, int buildNumberFromMetadata )
+ {
+ // we only have to handle bumping the build number if we're on the
same timestamp, somehow...miraculously
+ if ( deploymentTimestamp.equals( timestamp ) )
+ {
+ String artifactKey = ArtifactUtils.versionlessKey( artifact );
+
+ Integer buildNum = (Integer) buildNumbers.get( artifactKey );
+
+ if ( buildNum == null || buildNum.intValue() <=
buildNumberFromMetadata )
+ {
+ buildNum = new Integer( buildNumberFromMetadata + 1 );
+
+ buildNumbers.put( artifactKey, buildNum );
+ }
+ }
+ }
+
+ public String getDeploymentTimestamp()
+ {
+ if ( deploymentTimestamp == null )
+ {
+ deploymentTimestamp =
SnapshotArtifactMetadata.getUtcDateFormatter().format( new Date() );
+ }
+ return deploymentTimestamp;
+ }
+
+ public int getDeploymentBuildNumber( Artifact artifact )
+ {
+ String artifactKey = ArtifactUtils.versionlessKey( artifact );
+
+ Integer buildNum = (Integer) buildNumbers.get( artifactKey );
+
+ if ( buildNum == null )
+ {
+ buildNum = new Integer( 1 );
+ buildNumbers.put( artifactKey, buildNum );
+ }
+
+ return buildNum.intValue();
+ }
+
protected AbstractVersionArtifactMetadata createMetadata( Artifact
artifact )
{
return new SnapshotArtifactMetadata( artifact );
+ }
+
+ public String getDeploymentVersion( Artifact artifact )
+ {
+ int buildnum = getDeploymentBuildNumber( artifact );
+
+ SnapshotArtifactMetadata metadata = (SnapshotArtifactMetadata)
createMetadata( artifact );
+
+ metadata.setVersion( getDeploymentTimestamp(), buildnum );
+
+ return metadata.constructVersion();
}
}
Modified:
maven/components/trunk/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml
Mon Aug 22 12:00:51 2005
@@ -47,6 +47,28 @@
</requirement>
</requirements>
</component>
+
+ <!--
+ |
+ | ArtifactTransformationManager
+ |
+ -->
+ <component>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformationManager</role>
+
<implementation>org.apache.maven.artifact.transform.DefaultArtifactTransformationManager</implementation>
+ <requirements>
+ <requirement>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformation</role>
+ <field-name>artifactTransformations</field-name>
+ </requirement>
+ <requirement>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformation</role>
+ <role-hint>snapshot</role-hint>
+ <field-name>snapshotTransformation</field-name>
+ </requirement>
+ </requirements>
+ </component>
+
<!--
|
| Resolver
@@ -60,8 +82,7 @@
<role>org.apache.maven.artifact.manager.WagonManager</role>
</requirement>
<requirement>
-
<role>org.apache.maven.artifact.transform.ArtifactTransformation</role>
- <field-name>artifactTransformations</field-name>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformationManager</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
@@ -82,8 +103,7 @@
<implementation>org.apache.maven.artifact.installer.DefaultArtifactInstaller</implementation>
<requirements>
<requirement>
-
<role>org.apache.maven.artifact.transform.ArtifactTransformation</role>
- <field-name>artifactTransformations</field-name>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformationManager</role>
</requirement>
</requirements>
</component>
@@ -101,8 +121,7 @@
<role>org.apache.maven.artifact.manager.WagonManager</role>
</requirement>
<requirement>
-
<role>org.apache.maven.artifact.transform.ArtifactTransformation</role>
- <field-name>artifactTransformations</field-name>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformationManager</role>
</requirement>
</requirements>
</component>
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformation.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformation.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformation.java
Mon Aug 22 12:00:51 2005
@@ -61,4 +61,5 @@
*/
void transformForDeployment( Artifact artifact, ArtifactRepository
remoteRepository )
throws ArtifactMetadataRetrievalException;
+
}
Added:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java?rev=239219&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java
(added)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java
Mon Aug 22 12:00:51 2005
@@ -0,0 +1,62 @@
+package org.apache.maven.artifact.transform;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+import java.util.List;
+
+/**
+ * Manages multiple ArtifactTransformation instances and applies them in
succession.
+ */
+public interface ArtifactTransformationManager
+{
+ String ROLE = ArtifactTransformationManager.class.getName();
+
+ /**
+ * Take in a artifact and return the transformed artifact for locating in
the remote repository. If no
+ * transformation has occured the original artifact is returned.
+ *
+ * @param artifact Artifact to be transformed.
+ * @param remoteRepositories the repositories to check
+ * @param localRepository the local repository
+ */
+ void transformForResolve( Artifact artifact, List remoteRepositories,
ArtifactRepository localRepository )
+ throws ArtifactMetadataRetrievalException;
+
+ /**
+ * Take in a artifact and return the transformed artifact for locating in
the local repository. If no
+ * transformation has occured the original artifact is returned.
+ *
+ * @param artifact Artifact to be transformed.
+ * @param localRepository the local repository it will be stored in
+ */
+ void transformForInstall( Artifact artifact, ArtifactRepository
localRepository )
+ throws ArtifactMetadataRetrievalException;
+
+ /**
+ * Take in a artifact and return the transformed artifact for distributing
toa remote repository. If no
+ * transformation has occured the original artifact is returned.
+ *
+ * @param artifact Artifact to be transformed.
+ * @param remoteRepository the repository to deploy to
+ */
+ void transformForDeployment( Artifact artifact, ArtifactRepository
remoteRepository )
+ throws ArtifactMetadataRetrievalException;
+
+ /**
+ * Return the timestamp which will be used to deploy artifacts from this
build.
+ */
+ String getSnapshotDeploymentTimestamp();
+
+ /**
+ * Return the buildnumber which will be used to deploy artifacts from this
build.
+ */
+ int getSnapshotDeploymentBuildNumber( Artifact snapshotArtifact );
+
+ /**
+ * Return the artifact-version which will be used to deploy artifacts from
this build.
+ */
+ String getSnapshotDeploymentVersion( Artifact snapshotArtifact );
+
+}
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ArtifactTransformationManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Mon Aug 22 12:00:51 2005
@@ -26,6 +26,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.transform.ArtifactTransformationManager;
import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Build;
@@ -120,6 +121,8 @@
private ArtifactRepositoryFactory artifactRepositoryFactory;
+ private ArtifactTransformationManager transformationManager;
+
private final Map modelCache = new HashMap();
public static final String MAVEN_MODEL_VERSION = "4.0.0";
@@ -576,6 +579,13 @@
Artifact projectArtifact = artifactFactory.createBuildArtifact(
project.getGroupId(), project.getArtifactId(),
project.getVersion(), project.getPackaging() );
project.setArtifact( projectArtifact );
+
+ if ( projectArtifact.isSnapshot() )
+ {
+ project.setSnapshotDeploymentVersion(
transformationManager.getSnapshotDeploymentVersion( projectArtifact ) );
+
+ project.setSnapshotDeploymentBuildNumber(
transformationManager.getSnapshotDeploymentBuildNumber( projectArtifact ) );
+ }
project.setPluginArtifactRepositories(
ProjectUtils.buildArtifactRepositories( model.getPluginRepositories(),
artifactRepositoryFactory,
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=239219&r1=239218&r2=239219&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
Mon Aug 22 12:00:51 2005
@@ -137,6 +137,10 @@
private Build buildOverlay;
+ private String snapshotDeploymentVersion;
+
+ private int snapshotDeploymentBuildNumber = -1;
+
public MavenProject( Model model )
{
this.model = model;
@@ -182,6 +186,9 @@
{
this.originalModel = ModelUtils.cloneModel( project.originalModel
);
}
+
+ this.snapshotDeploymentVersion = project.snapshotDeploymentVersion;
+ this.snapshotDeploymentBuildNumber =
project.snapshotDeploymentBuildNumber;
// TODO: need to clone this too?
this.artifact = project.artifact;
@@ -1340,6 +1347,33 @@
public void attachArtifact( String type, String classifier, File file )
{
+ }
+
+ public void setSnapshotDeploymentVersion( String deploymentVersion )
+ {
+ this.snapshotDeploymentVersion = deploymentVersion;
+ }
+
+ public String getSnapshotDeploymentVersion()
+ {
+ if ( snapshotDeploymentVersion == null )
+ {
+ return getVersion();
+ }
+ else
+ {
+ return snapshotDeploymentVersion;
+ }
+ }
+
+ public void setSnapshotDeploymentBuildNumber( int deploymentBuildNumber )
+ {
+ this.snapshotDeploymentBuildNumber = deploymentBuildNumber;
+ }
+
+ public int getSnapshotDeploymentBuildNumber()
+ {
+ return snapshotDeploymentBuildNumber;
}
}
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=239219&r1=239218&r2=239219&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 Aug 22 12:00:51 2005
@@ -51,6 +51,9 @@
<implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
<requirements>
<requirement>
+
<role>org.apache.maven.artifact.transform.ArtifactTransformationManager</role>
+ </requirement>
+ <requirement>
<role>org.apache.maven.profiles.MavenProfilesBuilder</role>
</requirement>
<requirement>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]