Author: brianf Date: Fri Mar 30 15:59:32 2007 New Revision: 524303 URL: http://svn.apache.org/viewvc?view=rev&rev=524303 Log: fixed bug handling jdkversions.
Added: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayInfoMojo.java - copied, changed from r523925, maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayOsMojo.java Removed: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayOsMojo.java Modified: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireJavaVersion.java maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireMavenVersion.java maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireOS.java maven/plugins/trunk/maven-enforcer-plugin/src/site/apt/rules/requireJavaVersion.apt maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestAbstractVersionEnforcer.java maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireJavaVersion.java maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireOS.java Copied: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayInfoMojo.java (from r523925, maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayOsMojo.java) URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayInfoMojo.java?view=diff&rev=524303&p1=maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayOsMojo.java&r1=523925&p2=maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayInfoMojo.java&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayOsMojo.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/DisplayInfoMojo.java Fri Mar 30 15:59:32 2007 @@ -33,7 +33,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Brian Fox</a> * @version $Id: EnforceMojo.java 523156 2007-03-28 03:53:54Z brianf $ */ -public class DisplayOsMojo +public class DisplayInfoMojo extends AbstractMojo { /** @@ -59,9 +59,9 @@ RequireJavaVersion java = new RequireJavaVersion(); getLog().info( "JDK Version: " + SystemUtils.JAVA_VERSION + " normalized as: " - + java.fixJDKVersion( SystemUtils.JAVA_VERSION_TRIMMED ) ); + + java.normalizeJDKVersion( SystemUtils.JAVA_VERSION_TRIMMED ) ); RequireOS os = new RequireOS(); - os.displayOSInfo( getLog() ); + os.displayOSInfo( getLog(), true ); } catch ( ComponentLookupException e ) Modified: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireJavaVersion.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireJavaVersion.java?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireJavaVersion.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireJavaVersion.java Fri Mar 30 15:59:32 2007 @@ -26,6 +26,7 @@ import org.apache.commons.lang.SystemUtils; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; +import org.apache.maven.plugin.logging.Log; import org.apache.maven.shared.enforcer.rule.api.EnforcerRule; import org.apache.maven.shared.enforcer.rule.api.EnforcerRuleException; import org.apache.maven.shared.enforcer.rule.api.EnforcerRuleHelper; @@ -45,9 +46,19 @@ public void execute( EnforcerRuleHelper helper ) throws EnforcerRuleException { + String java_version = SystemUtils.JAVA_VERSION_TRIMMED; + Log log = helper.getLog(); - ArtifactVersion detectedJdkVersion = new DefaultArtifactVersion( - fixJDKVersion( SystemUtils.JAVA_VERSION_TRIMMED ) ); + log.debug( "Detected Java String: " + java_version ); + java_version = normalizeJDKVersion( java_version ); + log.debug( "Normalized Java String: " + java_version ); + + ArtifactVersion detectedJdkVersion = new DefaultArtifactVersion( java_version ); + + log.debug( "Parsed Version: Major: " + detectedJdkVersion.getMajorVersion() + " Minor: " + + detectedJdkVersion.getMinorVersion() + " Incremental: " + detectedJdkVersion.getIncrementalVersion() + + " Build: " + detectedJdkVersion.getBuildNumber() + " Qualifier: " + detectedJdkVersion.getQualifier() ); + enforceVersion( helper.getLog(), "JDK", version, detectedJdkVersion ); } @@ -59,8 +70,9 @@ * to be converted. * @return the converted string. */ - public static String fixJDKVersion( String theJdkVersion ) + public static String normalizeJDKVersion( String theJdkVersion ) { + theJdkVersion = theJdkVersion.replaceAll( "_|-", "." ); String tokenArray[] = StringUtils.split( theJdkVersion, "." ); List tokens = Arrays.asList( tokenArray ); @@ -69,7 +81,11 @@ Iterator iter = tokens.iterator(); for ( int i = 0; i < tokens.size() && i < 4; i++ ) { - buffer.append( iter.next() ); + String section = (String) iter.next(); + section = section.replaceAll( "[^0-9]", "" ); + + buffer.append( Integer.parseInt( section ) ); + if ( i != 2 ) { buffer.append( '.' ); Modified: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireMavenVersion.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireMavenVersion.java?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireMavenVersion.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireMavenVersion.java Fri Mar 30 15:59:32 2007 @@ -44,6 +44,7 @@ { RuntimeInformation rti = helper.getRuntimeInformation(); ArtifactVersion detectedMavenVersion = rti.getApplicationVersion(); + helper.getLog().debug( "Detected Maven Version: " + detectedMavenVersion ); enforceVersion( helper.getLog(), "Maven", this.version, detectedMavenVersion ); } catch ( ComponentLookupException e ) Modified: maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireOS.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireOS.java?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireOS.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugin/enforcer/RequireOS.java Fri Mar 30 15:59:32 2007 @@ -111,10 +111,8 @@ public void execute( EnforcerRuleHelper helper ) throws EnforcerRuleException { - if ( display ) - { - displayOSInfo( helper.getLog() ); - } + + displayOSInfo( helper.getLog(), display ); if ( allParamsEmpty() ) { @@ -153,10 +151,19 @@ * * @param log */ - public void displayOSInfo( Log log ) + public void displayOSInfo( Log log, boolean info ) { - log.info( "OS Info: Arch: " + RequireOS.OS_ARCH + " Family: " + determineOsFamily() + " Name: " - + RequireOS.OS_NAME + " Version: " + RequireOS.OS_VERSION ); + String string = "OS Info: Arch: " + RequireOS.OS_ARCH + " Family: " + determineOsFamily() + " Name: " + + RequireOS.OS_NAME + " Version: " + RequireOS.OS_VERSION; + + if ( !info ) + { + log.debug( string ); + } + else + { + log.info( string ); + } } /** Modified: maven/plugins/trunk/maven-enforcer-plugin/src/site/apt/rules/requireJavaVersion.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/site/apt/rules/requireJavaVersion.apt?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/site/apt/rules/requireJavaVersion.apt (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/site/apt/rules/requireJavaVersion.apt Fri Mar 30 15:59:32 2007 @@ -35,11 +35,13 @@ The JDK version is retrieved and the following processing occurs before being checked: - [[1]] Drop all non-numeric characters preceeding the first number. (build 1.5.0_11-b03 becomes 1.5.0_11-b03) + [[1]] Drop all non-numeric characters preceeding the first number. (build 1.5.0_07-b03 becomes 1.5.0_07-b03) - [[2]] Replace all '_' and '-' with '.' (1.5.0_11-b03 becomes 1.5.0.11.b03) + [[2]] Replace all '_' and '-' with '.' (1.5.0_07-b03 becomes 1.5.0.07.b03) - [[3]] Split the string on '.' and take the first 3 sections, separated by '.' and add '-' followed by the forth section (1.5.0.11.b03 becomes 1.5.0-11) + [[3]] Remove all non digit characters "[^0-9] and convert each section using Integer.parseInt() (1.5.0_07-b03 becomes 1.5.0.7.3) + + [[3]] Split the string on '.' and take the first 3 sections, separated by '.' and add '-' followed by the forth section (1.5.0.7.3 becomes 1.5.0-7) [] Modified: maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestAbstractVersionEnforcer.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestAbstractVersionEnforcer.java?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestAbstractVersionEnforcer.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestAbstractVersionEnforcer.java Fri Mar 30 15:59:32 2007 @@ -60,6 +60,15 @@ assertTrue( rule.containsVersion( VersionRange.createFromVersionSpec( "2.0.5" ), version ) ); assertFalse( rule.containsVersion( VersionRange.createFromVersionSpec( "2.0.6" ), version ) ); + + version = new DefaultArtifactVersion("1.5.0-7"); + assertTrue( rule.containsVersion( VersionRange.createFromVersionSpec( "[1.5.0,)" ), version ) ); + assertTrue( rule.containsVersion( VersionRange.createFromVersionSpec( "[1.5,1.6)" ), version ) ); + + version = new DefaultArtifactVersion(RequireJavaVersion.normalizeJDKVersion( "1.5.0-07" )); + assertTrue( rule.containsVersion( VersionRange.createFromVersionSpec( "[1.5.0,)" ), version ) ); + assertTrue( rule.containsVersion( VersionRange.createFromVersionSpec( "[1.5,1.6)" ), version ) ); + } private void enforceFalse( AbstractVersionEnforcer rule, Log log, String var, String range, ArtifactVersion version ) Modified: maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireJavaVersion.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireJavaVersion.java?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireJavaVersion.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireJavaVersion.java Fri Mar 30 15:59:32 2007 @@ -36,23 +36,26 @@ public void testFixJDKVersion() { // test that we only take the first 3 versions for comparision - assertEquals( "1.5.0-11", RequireJavaVersion.fixJDKVersion( "1.5.0_11" ) ); - assertEquals( "1.5.1", RequireJavaVersion.fixJDKVersion( "1.5.1" ) ); - assertEquals( "1.5.2-1", RequireJavaVersion.fixJDKVersion( "1.5.2-1.b11" ) ); - assertEquals( "1.5.3-11", RequireJavaVersion.fixJDKVersion( "1.5.3_11" ) ); - assertEquals( "1.5.4-5", RequireJavaVersion.fixJDKVersion( "1.5.4.5_11" ) ); - assertEquals( "1.5.5-6", RequireJavaVersion.fixJDKVersion( "1.5.5.6_11.2" ) ); + assertEquals( "1.5.0-11", RequireJavaVersion.normalizeJDKVersion( "1.5.0_11" ) ); + assertEquals( "1.5.1", RequireJavaVersion.normalizeJDKVersion( "1.5.1" ) ); + assertEquals( "1.5.2-1", RequireJavaVersion.normalizeJDKVersion( "1.5.2-1.b11" ) ); + assertEquals( "1.5.3-11", RequireJavaVersion.normalizeJDKVersion( "1.5.3_11" ) ); + assertEquals( "1.5.4-5", RequireJavaVersion.normalizeJDKVersion( "1.5.4.5_11" ) ); + assertEquals( "1.5.5-6", RequireJavaVersion.normalizeJDKVersion( "1.5.5.6_11.2" ) ); // test for non-standard versions - assertEquals( "1.5.0-11", RequireJavaVersion.fixJDKVersion( "1-5-0-11" ) ); - assertEquals( "1.5.0-11", RequireJavaVersion.fixJDKVersion( "1-_5-_0-_11" ) ); - assertEquals( "1.5.0-11", RequireJavaVersion.fixJDKVersion( "1_5_0_11" ) ); + assertEquals( "1.5.0-11", RequireJavaVersion.normalizeJDKVersion( "1-5-0-11" ) ); + assertEquals( "1.5.0-11", RequireJavaVersion.normalizeJDKVersion( "1-_5-_0-_11" ) ); + assertEquals( "1.5.0-11", RequireJavaVersion.normalizeJDKVersion( "1_5_0_11" ) ); + assertEquals( "1.5.0-7", RequireJavaVersion.normalizeJDKVersion( "1.5.0-07" ) ); + assertEquals( "1.5.0-7", RequireJavaVersion.normalizeJDKVersion( "1.5.0-b7" ) ); + assertEquals( "1.5.0-7", RequireJavaVersion.normalizeJDKVersion( "1.5.0-;7" ) ); } public void testRule() throws EnforcerRuleException { - String thisVersion = RequireJavaVersion.fixJDKVersion( SystemUtils.JAVA_VERSION_TRIMMED ); + String thisVersion = RequireJavaVersion.normalizeJDKVersion( SystemUtils.JAVA_VERSION_TRIMMED ); RequireJavaVersion rule = new RequireJavaVersion(); rule.setVersion( thisVersion ); @@ -62,7 +65,7 @@ // test the singular version rule.execute( helper ); - + // exclude this version rule.setVersion( "(" + thisVersion ); Modified: maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireOS.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireOS.java?view=diff&rev=524303&r1=524302&r2=524303 ============================================================================== --- maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireOS.java (original) +++ maven/plugins/trunk/maven-enforcer-plugin/src/test/java/org/apache/maven/plugin/enforcer/TestRequireOS.java Fri Mar 30 15:59:32 2007 @@ -40,8 +40,9 @@ public void testOS() { Log log = new SystemStreamLog(); + RequireOS rule = new RequireOS(); - rule.displayOSInfo( log ); + rule.displayOSInfo( log, true ); Iterator iter = rule.getValidFamilies().iterator(); String validFamily = null;