You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2014/03/19 21:15:41 UTC
svn commit: r1579380 - in /maven/enforcer/trunk/enforcer-rules/src:
main/java/org/apache/maven/plugins/enforcer/ReactorModuleConvergence.java
site/apt/reactorModuleConvergence.apt.vm
Author: khmarbaise
Date: Wed Mar 19 20:15:40 2014
New Revision: 1579380
URL: http://svn.apache.org/r1579380
Log:
[MENFORCER-188]
- Fixed missing message output.
Modified:
maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/ReactorModuleConvergence.java
maven/enforcer/trunk/enforcer-rules/src/site/apt/reactorModuleConvergence.apt.vm
Modified: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/ReactorModuleConvergence.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/ReactorModuleConvergence.java?rev=1579380&r1=1579379&r2=1579380&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/ReactorModuleConvergence.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/ReactorModuleConvergence.java Wed Mar 19 20:15:40 2014
@@ -33,6 +33,7 @@ import org.apache.maven.model.Dependency
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
+import org.codehaus.plexus.util.StringUtils;
/**
* This rule will check if a multi module build will follow the best practices.
@@ -86,6 +87,7 @@ public class ReactorModuleConvergence
if ( !parentsWhichAreNotPartOfTheReactor.isEmpty() )
{
StringBuilder sb = new StringBuilder().append( SystemUtils.LINE_SEPARATOR );
+ addMessageIfExist( sb );
for ( MavenProject mavenProject : parentsWhichAreNotPartOfTheReactor )
{
sb.append( " module: " );
@@ -110,6 +112,7 @@ public class ReactorModuleConvergence
if ( !modulesWithoutParentsInReactory.isEmpty() )
{
StringBuilder sb = new StringBuilder().append( SystemUtils.LINE_SEPARATOR );
+ addMessageIfExist( sb );
for ( MavenProject mavenProject : modulesWithoutParentsInReactory )
{
sb.append( " module: " );
@@ -123,7 +126,7 @@ public class ReactorModuleConvergence
private void checkDependenciesWithinReactor( List<MavenProject> sortedProjects )
throws EnforcerRuleException
{
- //TODO: After we are sure having consistent version we can simply use the first one?
+ // After we are sure having consistent version we can simply use the first one?
String reactorVersion = sortedProjects.get( 0 ).getVersion();
Map<MavenProject, List<Dependency>> areThereDependenciesWhichAreNotPartOfTheReactor =
@@ -131,6 +134,7 @@ public class ReactorModuleConvergence
if ( !areThereDependenciesWhichAreNotPartOfTheReactor.isEmpty() )
{
StringBuilder sb = new StringBuilder().append( SystemUtils.LINE_SEPARATOR );
+ addMessageIfExist( sb );
for ( Entry<MavenProject, List<Dependency>> item : areThereDependenciesWhichAreNotPartOfTheReactor.entrySet() )
{
sb.append( " module: " );
@@ -160,13 +164,14 @@ public class ReactorModuleConvergence
private void checkParentsInReactor( List<MavenProject> sortedProjects )
throws EnforcerRuleException
{
- //TODO: After we are sure having consistent version we can simply use the first one?
+ //After we are sure having consistent version we can simply use the first one?
String reactorVersion = sortedProjects.get( 0 ).getVersion();
List<MavenProject> areParentsFromTheReactor = areParentsFromTheReactor( reactorVersion, sortedProjects );
if ( !areParentsFromTheReactor.isEmpty() )
{
StringBuilder sb = new StringBuilder().append( SystemUtils.LINE_SEPARATOR );
+ addMessageIfExist( sb );
for ( MavenProject mavenProject : areParentsFromTheReactor )
{
sb.append( " --> " );
@@ -191,6 +196,7 @@ public class ReactorModuleConvergence
if ( !consistenceCheckResult.isEmpty() )
{
StringBuilder sb = new StringBuilder().append( SystemUtils.LINE_SEPARATOR );
+ addMessageIfExist( sb );
for ( MavenProject mavenProject : consistenceCheckResult )
{
sb.append( " --> " );
@@ -287,8 +293,8 @@ public class ReactorModuleConvergence
}
/**
- * Assume we have a module which is which is a child of a multi module build but this child does not have a parent.
- * This method will exactly search for such cases.
+ * Assume we have a module which is a child of a multi module build but this child does not have a parent. This
+ * method will exactly search for such cases.
*
* @param projectList The sorted list of the reactor modules.
* @return The resulting list will contain the modules in the reactor which do not have a parent. The list will
@@ -338,6 +344,15 @@ public class ReactorModuleConvergence
}
}
+ /**
+ * Go through the list of modules in the builds and check if we have dependencies. If yes we will check every
+ * dependency based on groupId/artifactId if it belong to the multi module build. In such a case it will be checked
+ * if the version does fit the version in the rest of build.
+ *
+ * @param reactorVersion The version of the reactor.
+ * @param sortedProjects The list of existing projects within this build.
+ * @return List of violations. Never null. If the list is empty than no violation has happened.
+ */
private Map<MavenProject, List<Dependency>> areThereDependenciesWhichAreNotPartOfTheReactor( String reactorVersion,
List<MavenProject> sortedProjects )
{
@@ -389,7 +404,6 @@ public class ReactorModuleConvergence
if ( projectList != null && !projectList.isEmpty() )
{
- //TODO: Check if this the right choice ?
String version = projectList.get( 0 ).getVersion();
logger.debug( "First version:" + version );
for ( MavenProject mavenProject : projectList )
@@ -424,4 +438,18 @@ public class ReactorModuleConvergence
this.ignoreModuleDependencies = ignoreModuleDependencies;
}
+ /**
+ * This will add the given user message to the output.
+ *
+ * @param sb The already initialized exception message part.
+ */
+ private void addMessageIfExist( StringBuilder sb )
+ {
+ if ( !StringUtils.isEmpty( getMessage() ) )
+ {
+ sb.append( getMessage() );
+ sb.append( SystemUtils.LINE_SEPARATOR );
+ }
+ }
+
}
\ No newline at end of file
Modified: maven/enforcer/trunk/enforcer-rules/src/site/apt/reactorModuleConvergence.apt.vm
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/site/apt/reactorModuleConvergence.apt.vm?rev=1579380&r1=1579379&r2=1579380&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/site/apt/reactorModuleConvergence.apt.vm (original)
+++ maven/enforcer/trunk/enforcer-rules/src/site/apt/reactorModuleConvergence.apt.vm Wed Mar 19 20:15:40 2014
@@ -32,7 +32,7 @@ Reactor Module Convergence
The following parameters are supported by this rule:
- * message - an optional message to the user if the rule fails.
+ * message - an optional supplemental message to the user if the rule fails.
* ignoreModuleDependencies - Ignore module dependencies which references modules within the
the reactor (default: false).