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;


Reply via email to