You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/03/31 00:59:33 UTC

svn commit: r524303 - in /maven/plugins/trunk/maven-enforcer-plugin/src: main/java/org/apache/maven/plugin/enforcer/ site/apt/rules/ test/java/org/apache/maven/plugin/enforcer/

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:brianf@apache.org">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;