You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2020/10/26 22:27:14 UTC

svn commit: r1882894 - /db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/JavaVersionHolder.java

Author: rhillegas
Date: Mon Oct 26 22:27:14 2020
New Revision: 1882894

URL: http://svn.apache.org/viewvc?rev=1882894&view=rev
Log:
DERBY-7088: Make it possible to run tests against early access releases of the Open JDK; commit derby-7088-01-aa-runTestsOnJDK16EA.diff.

Modified:
    db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/JavaVersionHolder.java

Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/JavaVersionHolder.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/JavaVersionHolder.java?rev=1882894&r1=1882893&r2=1882894&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/JavaVersionHolder.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/JavaVersionHolder.java Mon Oct 26 22:27:14 2020
@@ -29,6 +29,7 @@ import java.util.StringTokenizer;
   */
 public class JavaVersionHolder
 {
+    private static final String EARLY_ACCESS_SUFFIX = "-ea";
  
     private String majorVersion;
     private String minorVersion;
@@ -38,6 +39,11 @@ public class JavaVersionHolder
     public JavaVersionHolder(String javaVersion)
         throws java.lang.NumberFormatException
     {
+        //System.out.println("JavaVersionHolder() javaVersion = " + javaVersion);
+
+        // remove Open JDK early access indicator
+        javaVersion = stripEarlyAccessSuffix(javaVersion);
+        
         // handle early access versions of JDK 9
         if (javaVersion.startsWith( "9" ))
         {
@@ -50,7 +56,8 @@ public class JavaVersionHolder
             javaVersion = "1.11.0";
         }
 
-        // handle future java versions
+        // handle future java versions.
+        // rewrite version into the form 1.$javaVersion.0
         switch(javaVersion)
         {
         case "10":
@@ -133,6 +140,25 @@ public class JavaVersionHolder
         }
     }
 
+    /**
+     * Remove the Open JDK early access suffix from a version string so
+     * that we can run tests against early access versions of the JDK
+     * and identify JDK regressions early on.
+     *
+     * @param javaVersion The original version string
+     *
+     * @return the version string after stripping off the suffix
+     */
+    private String stripEarlyAccessSuffix(String javaVersion)
+    {
+        int suffixIndex = javaVersion.indexOf(EARLY_ACCESS_SUFFIX);
+
+        // nothing to do if this isn't an early access version
+        if (suffixIndex < 0) { return javaVersion; }
+
+        return javaVersion.substring(0, suffixIndex);
+    }
+
     public String getMajorVersion()
     {
         return majorVersion;