You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2009/11/04 09:22:51 UTC
svn commit: r832677 -
/maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java
Author: stephenc
Date: Wed Nov 4 08:22:50 2009
New Revision: 832677
URL: http://svn.apache.org/viewvc?rev=832677&view=rev
Log:
functional
Modified:
maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java
Modified: maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java?rev=832677&r1=832676&r2=832677&view=diff
==============================================================================
--- maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java (original)
+++ maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java Wed Nov 4 08:22:50 2009
@@ -20,10 +20,15 @@
import org.apache.maven.AbstractMavenLifecycleParticipant;
import org.apache.maven.MavenExecutionException;
+import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.StringUtils;
/**
* Enforces that a specific version of a plugin is used throughout a build.
@@ -38,10 +43,98 @@
@Requirement
private Logger logger;
-
- public void afterProjectsRead( MavenSession mavenSession )
+
+ public void afterProjectsRead( MavenSession session )
throws MavenExecutionException
{
- logger.info( "Hello " + mavenSession.getUserProperties().getProperty("name", "world!!!" ));
+ String config = session.getUserProperties().getProperty( "force.plugins" );
+ if ( StringUtils.isEmpty( config ) )
+ {
+ logger.info( "Plugin Enforcer: Nothing to do (i.e. -Dforce.plugins undefined)" );
+ return;
+ }
+ logger.info( StringUtils.repeat( "-", 72 ) );
+ logger.info( "Plugin Enforcer" );
+ logger.info( StringUtils.repeat( "-", 72 ) );
+ for ( String forcePlugin : config.split( "," ) )
+ {
+ if ( forcePlugin.isEmpty() )
+ {
+ continue;
+ }
+ String[] parts = forcePlugin.split( ":" );
+ if ( parts.length < 2 || parts.length > 3 )
+ {
+ logger.warn( "\"" + forcePlugin + "\" does not match the format [groupId:]artifactId:version" );
+ continue;
+ }
+ String groupId = parts.length == 3 ? parts[0] : "org.apache.maven.plugins";
+ String artifactId = parts[parts.length - 2];
+ String version = parts[parts.length - 1];
+ logger.info( "Forcing " + ArtifactUtils.versionlessKey( groupId, artifactId ) + " to " + version );
+ logger.info( "" );
+ for ( MavenProject project : session.getProjects() )
+ {
+ String name = StringUtils.isEmpty( project.getName() ) ?
+ ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ) + ":"
+ + project.getVersion() : project.getName();
+ boolean projectIdentified = false;
+ for ( Plugin plugin : project.getPluginManagement().getPlugins() )
+ {
+ if ( StringUtils.equals( groupId, plugin.getGroupId() ) && StringUtils.equals( artifactId,
+ plugin.getArtifactId() ) )
+ {
+ if ( !projectIdentified )
+ {
+ logger.info( "Project: " + name );
+ projectIdentified = true;
+ }
+ logger.info(
+ "Plugin Management: replacing version " + plugin.getVersion() + " with " + version );
+ plugin.setVersion( version );
+ }
+ }
+ for ( Plugin plugin : project.getBuildPlugins() )
+ {
+ if ( StringUtils.equals( groupId, plugin.getGroupId() ) && StringUtils.equals( artifactId,
+ plugin.getArtifactId() ) )
+ {
+ if ( !projectIdentified )
+ {
+ logger.info( "Project: " + name );
+ projectIdentified = true;
+ }
+ logger.info( "Build Plugins: replacing version " + plugin.getVersion() + " with " + version );
+ plugin.setVersion( version );
+ }
+ }
+ // AFAIK this should be unnecessary, but just to be safe
+ for ( ReportPlugin plugin : project.getReportPlugins() )
+ {
+ if ( StringUtils.equals( groupId, plugin.getGroupId() ) && StringUtils.equals( artifactId,
+ plugin.getArtifactId() ) )
+ {
+ if ( !projectIdentified )
+ {
+ logger.info( "Project: " + name );
+ projectIdentified = true;
+ }
+ logger.info( "Report Plugins: replacing version " + plugin.getVersion() + " with " + version );
+ plugin.setVersion( version );
+ }
+ }
+ if ( projectIdentified )
+ {
+ logger.info( "" );
+ }
+ else
+ {
+ logger.warn( "No replacements Project: " + name );
+
+ logger.info( "" );
+ }
+ }
+ }
+
}
}
Re: svn commit: r832677 - /maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java
Posted by Jason van Zyl <ja...@sonatype.com>.
Sweet.
On 2009-11-04, at 9:22 AM, stephenc@apache.org wrote:
> Author: stephenc
> Date: Wed Nov 4 08:22:50 2009
> New Revision: 832677
>
> URL: http://svn.apache.org/viewvc?rev=832677&view=rev
> Log:
> functional
>
> Modified:
> maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/
> apache/maven/util/pluginenforcer/
> PluginEnforcingMavenLifecycleParticipant.java
>
> Modified: maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/
> java/org/apache/maven/util/pluginenforcer/
> PluginEnforcingMavenLifecycleParticipant.java
> URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/org/apache/maven/util/pluginenforcer/PluginEnforcingMavenLifecycleParticipant.java?rev=832677&r1=832676&r2=832677&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/
> org/apache/maven/util/pluginenforcer/
> PluginEnforcingMavenLifecycleParticipant.java (original)
> +++ maven/sandbox/trunk/maven/maven-plugin-enforcer/src/main/java/
> org/apache/maven/util/pluginenforcer/
> PluginEnforcingMavenLifecycleParticipant.java Wed Nov 4 08:22:50 2009
> @@ -20,10 +20,15 @@
>
> import org.apache.maven.AbstractMavenLifecycleParticipant;
> import org.apache.maven.MavenExecutionException;
> +import org.apache.maven.artifact.ArtifactUtils;
> import org.apache.maven.execution.MavenSession;
> +import org.apache.maven.model.Plugin;
> +import org.apache.maven.model.ReportPlugin;
> +import org.apache.maven.project.MavenProject;
> import org.codehaus.plexus.component.annotations.Component;
> import org.codehaus.plexus.component.annotations.Requirement;
> import org.codehaus.plexus.logging.Logger;
> +import org.codehaus.plexus.util.StringUtils;
>
> /**
> * Enforces that a specific version of a plugin is used throughout a
> build.
> @@ -38,10 +43,98 @@
>
> @Requirement
> private Logger logger;
> -
> - public void afterProjectsRead( MavenSession mavenSession )
> +
> + public void afterProjectsRead( MavenSession session )
> throws MavenExecutionException
> {
> - logger.info( "Hello " + mavenSession.getUserProperties
> ().getProperty("name", "world!!!" ));
> + String config = session.getUserProperties().getProperty
> ( "force.plugins" );
> + if ( StringUtils.isEmpty( config ) )
> + {
> + logger.info( "Plugin Enforcer: Nothing to do (i.e. -
> Dforce.plugins undefined)" );
> + return;
> + }
> + logger.info( StringUtils.repeat( "-", 72 ) );
> + logger.info( "Plugin Enforcer" );
> + logger.info( StringUtils.repeat( "-", 72 ) );
> + for ( String forcePlugin : config.split( "," ) )
> + {
> + if ( forcePlugin.isEmpty() )
> + {
> + continue;
> + }
> + String[] parts = forcePlugin.split( ":" );
> + if ( parts.length < 2 || parts.length > 3 )
> + {
> + logger.warn( "\"" + forcePlugin + "\" does not
> match the format [groupId:]artifactId:version" );
> + continue;
> + }
> + String groupId = parts.length == 3 ? parts[0] :
> "org.apache.maven.plugins";
> + String artifactId = parts[parts.length - 2];
> + String version = parts[parts.length - 1];
> + logger.info( "Forcing " + ArtifactUtils.versionlessKey
> ( groupId, artifactId ) + " to " + version );
> + logger.info( "" );
> + for ( MavenProject project : session.getProjects() )
> + {
> + String name = StringUtils.isEmpty( project.getName
> () ) ?
> + ArtifactUtils.versionlessKey( project.getGroupId
> (), project.getArtifactId() ) + ":"
> + + project.getVersion() : project.getName();
> + boolean projectIdentified = false;
> + for ( Plugin plugin : project.getPluginManagement
> ().getPlugins() )
> + {
> + if ( StringUtils.equals( groupId,
> plugin.getGroupId() ) && StringUtils.equals( artifactId,
> +
> plugin.getArtifactId
> () ) )
> + {
> + if ( !projectIdentified )
> + {
> + logger.info( "Project: " + name );
> + projectIdentified = true;
> + }
> + logger.info(
> + "Plugin Management: replacing version "
> + plugin.getVersion() + " with " + version );
> + plugin.setVersion( version );
> + }
> + }
> + for ( Plugin plugin : project.getBuildPlugins() )
> + {
> + if ( StringUtils.equals( groupId,
> plugin.getGroupId() ) && StringUtils.equals( artifactId,
> +
> plugin.getArtifactId
> () ) )
> + {
> + if ( !projectIdentified )
> + {
> + logger.info( "Project: " + name );
> + projectIdentified = true;
> + }
> + logger.info( "Build Plugins: replacing
> version " + plugin.getVersion() + " with " + version );
> + plugin.setVersion( version );
> + }
> + }
> + // AFAIK this should be unnecessary, but just to be
> safe
> + for ( ReportPlugin plugin : project.getReportPlugins
> () )
> + {
> + if ( StringUtils.equals( groupId,
> plugin.getGroupId() ) && StringUtils.equals( artifactId,
> +
> plugin.getArtifactId
> () ) )
> + {
> + if ( !projectIdentified )
> + {
> + logger.info( "Project: " + name );
> + projectIdentified = true;
> + }
> + logger.info( "Report Plugins: replacing
> version " + plugin.getVersion() + " with " + version );
> + plugin.setVersion( version );
> + }
> + }
> + if ( projectIdentified )
> + {
> + logger.info( "" );
> + }
> + else
> + {
> + logger.warn( "No replacements Project: " +
> name );
> +
> + logger.info( "" );
> + }
> + }
> + }
> +
> }
> }
>
>
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Apache Maven
http://twitter.com/jvanzyl
----------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org