Author: jdcasey
Date: Mon Jul 11 21:13:40 2005
New Revision: 215919
URL: http://svn.apache.org/viewcvs?rev=215919&view=rev
Log:
Resolving:
MNG-511
MNG-513
Working on:
MNG-449
o Added code to stop the version manager from prompting the user for
unregistered plugins; it will simply register them with the resolved version.
o Added failover fourth plugin-version resolution option, which is a
plugin-specific artifact metadata called LATEST.version.txt, and will be
published with each install/deployment
o Added MavenProject.get/setArtifact(..) to handle a single artifact instance
for a project (allows injection of artifact metadata without having to handle
it all within the install/deploy mojos).
o Changed plugin-version resolution to only use MavenMetadataSource rather than
resolving the whole plugin artifact.
o Changed the install and deploy mojos to only use ${project.artifact} rather
than constructing their own, so they can take advantage of metadata added
elsewhere in the build.
o Factored the "RELEASE".equals(..) check in the DefaultRepositoryLayout to use
new metadata method storedInArtifactDirectory() instead, since RELEASE and
LATEST both share this characteristic.
NOTE: I'm not going to resolve MNG-449 yet, because I'm not sure what else
Brett had in mind related to the plugin-development-without-release use case...
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
(with props)
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
(with props)
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
(with props)
Modified:
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/ReleaseArtifactMetadata.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.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/metadata/AbstractArtifactMetadata.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml
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
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=215919&r1=215918&r2=215919&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 Jul 11 21:13:40 2005
@@ -75,6 +75,7 @@
for ( Iterator i = artifact.getMetadataList().iterator();
i.hasNext(); )
{
ArtifactMetadata metadata = (ArtifactMetadata) i.next();
+
metadata.storeInLocalRepository( localRepository );
}
}
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java?rev=215919&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
(added)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
Mon Jul 11 21:13:40 2005
@@ -0,0 +1,85 @@
+package org.apache.maven.artifact.metadata;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.transform.LatestArtifactTransformation;
+
+import java.io.File;
+
+public class LatestArtifactMetadata
+ extends AbstractVersionArtifactMetadata
+{
+
+ private String version;
+
+ public LatestArtifactMetadata( Artifact artifact )
+ {
+ super( artifact, artifact.getArtifactId() + "-" +
LatestArtifactTransformation.LATEST_VERSION + "." + SNAPSHOT_VERSION_FILE );
+ }
+
+ public String constructVersion()
+ {
+ return version;
+ }
+
+ public int compareTo( Object o )
+ {
+ LatestArtifactMetadata metadata = (LatestArtifactMetadata) o;
+
+ // TODO: we need some more complicated version comparison
+ if ( version == null )
+ {
+ if ( metadata.version == null )
+ {
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ else
+ {
+ if ( metadata.version == null )
+ {
+ return 1;
+ }
+ else
+ {
+ return version.compareTo( metadata.version );
+ }
+ }
+ }
+
+ public boolean newerThanFile( File file )
+ {
+ long fileTime = file.lastModified();
+
+ return ( lastModified > fileTime );
+ }
+
+ public String toString()
+ {
+ return "latest-version information for " + artifact.getArtifactId();
+ }
+
+ protected void setContent( String content )
+ {
+ this.version = content.trim();
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public String getBaseVersion()
+ {
+ return LatestArtifactTransformation.LATEST_VERSION;
+ }
+
+ public boolean storedInArtifactDirectory()
+ {
+ return false;
+ }
+
+}
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java
Mon Jul 11 21:13:40 2005
@@ -98,4 +98,10 @@
{
return ReleaseArtifactTransformation.RELEASE_VERSION;
}
+
+ public boolean storedInArtifactDirectory()
+ {
+ return false;
+ }
+
}
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java?rev=215919&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
(added)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
Mon Jul 11 21:13:40 2005
@@ -0,0 +1,73 @@
+package org.apache.maven.artifact.transform;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.AbstractVersionArtifactMetadata;
+import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
+import org.apache.maven.artifact.metadata.LatestArtifactMetadata;
+import org.apache.maven.artifact.metadata.VersionArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+
+import java.io.IOException;
+import java.util.List;
+
+public class LatestArtifactTransformation
+ extends AbstractVersionTransformation
+{
+ public static final String LATEST_VERSION = "LATEST";
+
+ public void transformForResolve( Artifact artifact, List
remoteRepositories, ArtifactRepository localRepository )
+ throws ArtifactMetadataRetrievalException
+ {
+ if ( LATEST_VERSION.equals( artifact.getVersion() ) )
+ {
+ String version = resolveVersion( artifact, localRepository,
remoteRepositories );
+ if ( !version.equals( artifact.getVersion() ) )
+ {
+ artifact.setBaseVersion( version );
+ artifact.updateVersion( version, localRepository );
+ }
+ }
+ }
+
+ public void transformForInstall( Artifact artifact, ArtifactRepository
localRepository )
+ throws ArtifactMetadataRetrievalException
+ {
+ // metadata is added at install time
+ }
+
+ public void transformForDeployment( Artifact artifact, ArtifactRepository
remoteRepository )
+ throws ArtifactMetadataRetrievalException
+ {
+ // metadata is added at deploy time
+ }
+
+ protected VersionArtifactMetadata retrieveFromRemoteRepository( Artifact
artifact,
+
ArtifactRepository remoteRepository,
+
VersionArtifactMetadata localMetadata )
+ throws ArtifactMetadataRetrievalException
+ {
+ AbstractVersionArtifactMetadata metadata = new LatestArtifactMetadata(
artifact );
+ try
+ {
+ metadata.retrieveFromRemoteRepository( remoteRepository,
wagonManager );
+ }
+ catch ( ResourceDoesNotExistException e )
+ {
+ if ( localMetadata.constructVersion() == null )
+ {
+ throw new ArtifactMetadataRetrievalException( "Unable to find
latest version for plugin artifact " + artifact, e );
+ }
+ // otherwise, ignore - use the local one
+ }
+ return metadata;
+ }
+
+ protected VersionArtifactMetadata readFromLocalRepository( Artifact
artifact, ArtifactRepository localRepository )
+ throws IOException
+ {
+ AbstractVersionArtifactMetadata metadata = new LatestArtifactMetadata(
artifact );
+ metadata.readFromLocalRepository( localRepository );
+ return metadata;
+ }
+}
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
Mon Jul 11 21:13:40 2005
@@ -38,15 +38,10 @@
{
public static final String RELEASE_VERSION = "RELEASE";
- private static boolean isRelease( Artifact artifact )
- {
- return artifact.getVersion().equals( RELEASE_VERSION );
- }
-
public void transformForResolve( Artifact artifact, List
remoteRepositories, ArtifactRepository localRepository )
throws ArtifactMetadataRetrievalException
{
- if ( isRelease( artifact ) )
+ if ( RELEASE_VERSION.equals( artifact.getVersion() ) )
{
String version = resolveVersion( artifact, localRepository,
remoteRepositories );
if ( !version.equals( artifact.getVersion() ) )
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=215919&r1=215918&r2=215919&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 Jul 11 21:13:40 2005
@@ -36,6 +36,17 @@
</requirement>
</requirements>
</component>
+
+ <component>
+ <role>org.apache.maven.artifact.transform.ArtifactTransformation</role>
+ <role-hint>latest</role-hint>
+
<implementation>org.apache.maven.artifact.transform.LatestArtifactTransformation</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.artifact.manager.WagonManager</role>
+ </requirement>
+ </requirements>
+ </component>
<!--
|
| Resolver
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
Mon Jul 11 21:13:40 2005
@@ -46,6 +46,11 @@
{
return filename;
}
+
+ public boolean storedInArtifactDirectory()
+ {
+ return true;
+ }
public String getGroupId()
{
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
Mon Jul 11 21:13:40 2005
@@ -58,6 +58,11 @@
* @return true or false
*/
boolean exists();
+
+ /**
+ * Whether this metadata should be stored alongside the artifact.
+ */
+ boolean storedInArtifactDirectory();
String getGroupId();
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
Mon Jul 11 21:13:40 2005
@@ -57,7 +57,7 @@
path.append( formatAsDirectory( metadata.getGroupId() ) ).append( '/'
);
path.append( metadata.getArtifactId() ).append( '/' );
- if ( !metadata.getBaseVersion().equals( "RELEASE" ) )
+ if ( metadata.storedInArtifactDirectory() )
{
path.append( metadata.getBaseVersion() ).append( '/' );
}
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
Mon Jul 11 21:13:40 2005
@@ -2,9 +2,11 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.transform.LatestArtifactTransformation;
+import org.apache.maven.artifact.transform.ReleaseArtifactTransformation;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.ReportPlugin;
import org.apache.maven.plugin.registry.MavenPluginRegistryBuilder;
@@ -13,6 +15,8 @@
import org.apache.maven.plugin.registry.TrackableBase;
import org.apache.maven.plugin.registry.io.xpp3.PluginRegistryXpp3Writer;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.artifact.MavenMetadataSource;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.components.inputhandler.InputHandler;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -58,6 +62,8 @@
private ArtifactFactory artifactFactory;
+ private MavenProjectBuilder projectBuilder;
+
private InputHandler inputHandler;
// calculated.
@@ -96,8 +102,8 @@
if ( Boolean.TRUE.equals( pluginUpdateOverride )
|| ( !Boolean.FALSE.equals( pluginUpdateOverride ) &&
shouldCheckForUpdates( groupId, artifactId ) ) )
{
- updatedVersion = resolveReleaseVersion( groupId,
artifactId, project
- .getPluginArtifactRepositories(), localRepository );
+ updatedVersion = resolveMetaVersion( groupId, artifactId,
project
+ .getPluginArtifactRepositories(), localRepository,
ReleaseArtifactTransformation.RELEASE_VERSION );
if ( StringUtils.isNotEmpty( updatedVersion ) &&
!updatedVersion.equals( version ) )
{
@@ -115,26 +121,45 @@
else
{
getLogger()
- .info( "Plugin {" + constructPluginKey(
groupId, artifactId ) + "} has updates." );
+ .info( "Plugin \'" + constructPluginKey(
groupId, artifactId ) + "\' has updates." );
}
}
}
}
}
+
+ boolean forcePersist = false;
+
+ // third pass...retrieve the version for RELEASE and also set that
resolved version as the <useVersion/>
+ // in settings.xml.
+ if ( StringUtils.isEmpty( version ) )
+ {
+ // 1. resolve the version to be used
+ version = resolveMetaVersion( groupId, artifactId,
project.getPluginArtifactRepositories(),
+ localRepository,
ReleaseArtifactTransformation.RELEASE_VERSION );
+
+ // 2. Set the updatedVersion so the user will be prompted whether
to make this version permanent.
+ updatedVersion = version;
+
+ // 3. Persist this version without prompting.
+ forcePersist = true;
+ promptToPersist = false;
+ }
- // final pass...retrieve the version for RELEASE and also set that
resolved version as the <useVersion/>
+ // final pass...retrieve the version for LATEST and also set that
resolved version as the <useVersion/>
// in settings.xml.
if ( StringUtils.isEmpty( version ) )
{
- // 1. resolve the version to be used THIS TIME
- version = resolveReleaseVersion( groupId, artifactId,
project.getPluginArtifactRepositories(),
- localRepository );
+ // 1. resolve the version to be used
+ version = resolveMetaVersion( groupId, artifactId,
project.getPluginArtifactRepositories(),
+ localRepository,
LatestArtifactTransformation.LATEST_VERSION );
// 2. Set the updatedVersion so the user will be prompted whether
to make this version permanent.
updatedVersion = version;
- // 3. Tell the system to determine whether this update can/should
be persisted.
- promptToPersist = true;
+ // 3. Persist this version without prompting.
+ forcePersist = true;
+ promptToPersist = false;
}
// if we still haven't found a version, then fail early before we get
into the update goop.
@@ -160,6 +185,11 @@
}
// We should persist by default if:
+ //
+ // 0. RELEASE or LATEST was used to resolve the plugin version (it's
not in the registry)
+ //
+ // -OR-
+ //
// 1. we detected a change in the plugin version from what was in the
registry, or
// a. the plugin is not registered
// 2. the pluginUpdateOverride flag has NOT been set to Boolean.FALSE
(suppression mode)
@@ -167,13 +197,15 @@
// a. the registry is declared to be in autoUpdate mode
//
// NOTE: This is only the default value; it may be changed as the
result of prompting the user.
- boolean persistUpdate = promptToPersist && !Boolean.FALSE.equals(
pluginUpdateOverride )
- && ( inInteractiveMode || autoUpdate );
+ boolean persistUpdate = forcePersist || ( promptToPersist &&
!Boolean.FALSE.equals( pluginUpdateOverride )
+ && ( inInteractiveMode || autoUpdate ) );
// retrieve the apply-to-all flag, if it's been set previously.
Boolean applyToAll =
settings.getRuntimeInfo().getApplyToAllPluginUpdates();
// Incorporate interactive-mode CLI overrides, and previous decisions
on apply-to-all, if appropriate.
+ //
+ // don't prompt if RELEASE or LATEST was used to resolve the plugin
version
// don't prompt if not in interactive mode.
// don't prompt if the CLI pluginUpdateOverride is set (either
suppression or force mode will stop prompting)
// don't prompt if the user has selected ALL/NONE previously in this
session
@@ -554,24 +586,28 @@
return pluginRegistry;
}
- private String resolveReleaseVersion( String groupId, String artifactId,
List remoteRepositories,
- ArtifactRepository localRepository )
+ private String resolveMetaVersion( String groupId, String artifactId, List
remoteRepositories,
+ ArtifactRepository localRepository,
String metaVersionId )
throws PluginVersionResolutionException
{
- Artifact releaseArtifact = artifactFactory.createArtifact( groupId,
artifactId, "RELEASE",
-
Artifact.SCOPE_RUNTIME, "maven-plugin" );
-
+ Artifact artifact = artifactFactory.createArtifact( groupId,
artifactId, metaVersionId,
+
Artifact.SCOPE_RUNTIME, "pom" );
+
+ MavenMetadataSource metadataSource = new MavenMetadataSource(
artifactResolver, projectBuilder, artifactFactory );
+
+ String version = null;
try
{
- artifactResolver.resolve( releaseArtifact, remoteRepositories,
localRepository );
+ metadataSource.retrieve( artifact, localRepository,
remoteRepositories );
+
+ version = artifact.getBaseVersion();
}
- catch ( ArtifactResolutionException e )
+ catch ( ArtifactMetadataRetrievalException e )
{
- throw new PluginVersionResolutionException( groupId, artifactId,
- "Cannot resolve
RELEASE version of this plugin.", e );
+ getLogger().debug( "Failed to resolve " + metaVersionId + "
version", e );
}
-
- return releaseArtifact.getBaseVersion();
+
+ return version;
}
}
Modified:
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
(original)
+++
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
Mon Jul 11 21:13:40 2005
@@ -193,7 +193,7 @@
<process-test-resources>resources:testResources</process-test-resources>
<test-compile>compiler:testCompile</test-compile>
<test>surefire:test</test>
- <package>jar:jar,plugin:generateUpdatedMapping</package>
+
<package>jar:jar,plugin:generateUpdatedMapping,plugin:addPluginArtifactMetadata</package>
<install>install:install,plugin:installMapping</install>
<deploy>deploy:deploy,plugin:deployMapping</deploy>
</phases>
@@ -285,6 +285,9 @@
<implementation>org.apache.maven.plugin.version.DefaultPluginVersionManager</implementation>
<instantiation-strategy>per-lookup</instantiation-strategy>
<requirements>
+ <requirement>
+ <role>org.apache.maven.project.MavenProjectBuilder</role>
+ </requirement>
<requirement>
<role>org.apache.maven.plugin.registry.MavenPluginRegistryBuilder</role>
</requirement>
Modified:
maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
(original)
+++
maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
Mon Jul 11 21:13:40 2005
@@ -17,8 +17,6 @@
*/
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.deployer.ArtifactDeployer;
import org.apache.maven.artifact.deployer.ArtifactDeploymentException;
import org.apache.maven.artifact.metadata.ArtifactMetadata;
@@ -45,25 +43,11 @@
{
/**
- * @parameter expression="${project.groupId}"
+ * @parameter expression="${project.artifact}"
* @required
* @readonly
*/
- private String groupId;
-
- /**
- * @parameter expression="${project.artifactId}"
- * @required
- * @readonly
- */
- private String artifactId;
-
- /**
- * @parameter expression="${project.version}"
- * @required
- * @readonly
- */
- private String version;
+ private Artifact artifact;
/**
* @parameter expression="${project.packaging}"
@@ -121,13 +105,6 @@
private List attachedArtifacts;
/**
- * @parameter
expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}"
- * @required
- * @readonly
- */
- private ArtifactFactory artifactFactory;
-
- /**
* @parameter expression="${updateReleaseInfo}"
*/
private boolean updateReleaseInfo = false;
@@ -143,9 +120,6 @@
}
// Deploy the POM
- // TODO: maybe not strictly correct, while we should enfore that
packaging has a type handler of the same id, we don't
- Artifact artifact = artifactFactory.createArtifact( groupId,
artifactId, version, null, packaging );
-
boolean isPomArtifact = "pom".equals( packaging );
File pom = new File( parentDir, "pom.xml" );
if ( !isPomArtifact )
Modified:
maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
(original)
+++
maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
Mon Jul 11 21:13:40 2005
@@ -17,8 +17,6 @@
*/
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.installer.ArtifactInstallationException;
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.metadata.ReleaseArtifactMetadata;
@@ -40,27 +38,6 @@
extends AbstractInstallMojo
{
/**
- * @parameter expression="${project.groupId}"
- * @required
- * @readonly
- */
- protected String groupId;
-
- /**
- * @parameter expression="${project.artifactId}"
- * @required
- * @readonly
- */
- protected String artifactId;
-
- /**
- * @parameter expression="${project.version}"
- * @required
- * @readonly
- */
- protected String version;
-
- /**
* @parameter expression="${project.packaging}"
* @required
* @readonly
@@ -91,28 +68,26 @@
* @parameter expression="${updateReleaseInfo}"
*/
private boolean updateReleaseInfo = false;
-
+
/**
- * @parameter expression="${project.attachedArtifacts}
+ * @parameter expression="${project.artifact}"
* @required
* @readonly
*/
- private List attachedArtifacts;
+ private Artifact artifact;
/**
- * @parameter
expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}"
+ * @parameter expression="${project.attachedArtifacts}
* @required
* @readonly
*/
- private ArtifactFactory artifactFactory;
+ private List attachedArtifacts;
public void execute()
throws MojoExecutionException
{
- // TODO: maybe not strictly correct, while we should enfore that
packaging has a type handler of the same id, we don't
- Artifact artifact = artifactFactory.createArtifact( groupId,
artifactId, version, null, packaging );
-
boolean isPomArtifact = "pom".equals( packaging );
+
File pom = new File( basedir, "pom.xml" );
if ( !isPomArtifact )
{
@@ -126,7 +101,7 @@
metadata.setVersion( artifact.getVersion() );
artifact.addMetadata( metadata );
}
-
+
try
{
if ( isPomArtifact )
Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml?rev=215919&r1=215918&r2=215919&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml Mon Jul 11
21:13:40 2005
@@ -36,6 +36,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0-beta-1-SNAPSHOT</version>
</dependency>
Added:
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java?rev=215919&view=auto
==============================================================================
---
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
(added)
+++
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
Mon Jul 11 21:13:40 2005
@@ -0,0 +1,37 @@
+package org.apache.maven.plugin.plugin.metadata;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.LatestArtifactMetadata;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+
+/** Inject any plugin-specific artifact metadata to the project's artifact,
for subsequent installation
+ * and deployment. The first use-case for this is to add the LATEST metadata
(which is plugin-specific)
+ * for shipping alongside the plugin's artifact.
+ *
+ * @phase package
+ * @goal addPluginArtifactMetadata
+ */
+public class AddPluginArtifactMetadataMojo
+ extends AbstractMojo
+{
+
+ /** The project artifact, which should have the LATEST metadata added to
it.
+ *
+ * @parameter expression="${project.artifact}"
+ * @required
+ * @readonly
+ */
+ private Artifact projectArtifact;
+
+ public void execute()
+ throws MojoExecutionException
+ {
+ LatestArtifactMetadata metadata = new LatestArtifactMetadata(
projectArtifact );
+
+ metadata.setVersion( projectArtifact.getVersion() );
+
+ projectArtifact.addMetadata( metadata );
+ }
+
+}
Propchange:
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.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=215919&r1=215918&r2=215919&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 Jul 11 21:13:40 2005
@@ -143,9 +143,8 @@
//
----------------------------------------------------------------------
// TODO: such a call in MavenMetadataSource too - packaging not really
the intention of type
- Artifact projectArtifact = artifactFactory.createArtifact(
project.getGroupId(), project.getArtifactId(),
-
project.getVersion(), null, project.getPackaging() );
-
+ Artifact projectArtifact = project.getArtifact();
+
Map managedVersions = createManagedVersionMap(
project.getDependencyManagement() );
ArtifactResolutionResult result =
artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
projectArtifact, managedVersions,
@@ -406,6 +405,12 @@
project.addProfileProperties( profileProperties );
project.setActiveProfiles( activeProfiles );
+
+ // TODO: maybe not strictly correct, while we should enfore that
packaging has a type handler of the same id, we don't
+ Artifact projectArtifact = artifactFactory.createArtifact(
project.getGroupId(), project.getArtifactId(),
+
project.getVersion(), null, project.getPackaging() );
+
+ project.setArtifact( 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=215919&r1=215918&r2=215919&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 Jul 11 21:13:40 2005
@@ -102,6 +102,8 @@
private List activeProfiles = new ArrayList();
private Set dependencyArtifacts;
+
+ private Artifact artifact;
public MavenProject( Model model )
{
@@ -143,6 +145,16 @@
// ----------------------------------------------------------------------
// Accessors
// ----------------------------------------------------------------------
+
+ public Artifact getArtifact()
+ {
+ return artifact;
+ }
+
+ public void setArtifact( Artifact artifact )
+ {
+ this.artifact = artifact;
+ }
//@todo I would like to get rid of this. jvz.
public Model getModel()
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]