--- old/src/share/classes/com/sun/tools/javac/code/Source.java 2011-06-01 23:51:28.000000000 -0700 +++ new/src/share/classes/com/sun/tools/javac/code/Source.java 2011-06-01 23:51:28.000000000 -0700 @@ -64,8 +64,11 @@ /** 1.6 reports encoding problems as errors instead of warnings. */ JDK1_6("1.6"), - /** 1.7 covers the to be determined language features that will be added in JDK 7. */ - JDK1_7("1.7"); + /** 1.7 introduced try-with-resources, multi-catch, string switch, etc. */ + JDK1_7("1.7"), + + /** 1.8 covers the to be determined language features that will be added in JDK 8. */ + JDK1_8("1.8"); private static final Context.Key sourceKey = new Context.Key(); @@ -92,19 +95,21 @@ tab.put("5", JDK1_5); // Make 5 an alias for 1.5 tab.put("6", JDK1_6); // Make 6 an alias for 1.6 tab.put("7", JDK1_7); // Make 7 an alias for 1.7 + tab.put("8", JDK1_8); // Make 8 an alias for 1.8 } private Source(String name) { this.name = name; } - public static final Source DEFAULT = JDK1_7; + public static final Source DEFAULT = JDK1_8; public static Source lookup(String name) { return tab.get(name); } public Target requiredTarget() { + if (this.compareTo(JDK1_8) >= 0) return Target.JDK1_8; if (this.compareTo(JDK1_7) >= 0) return Target.JDK1_7; if (this.compareTo(JDK1_6) >= 0) return Target.JDK1_6; if (this.compareTo(JDK1_5) >= 0) return Target.JDK1_5; @@ -203,6 +208,8 @@ return RELEASE_6; case JDK1_7: return RELEASE_7; + case JDK1_8: + return RELEASE_8; default: return null; } --- old/src/share/classes/com/sun/tools/javac/jvm/Target.java 2011-06-01 23:51:29.000000000 -0700 +++ new/src/share/classes/com/sun/tools/javac/jvm/Target.java 2011-06-01 23:51:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,7 +66,10 @@ JDK1_6("1.6", 50, 0), /** JDK 7. */ - JDK1_7("1.7", 51, 0); + JDK1_7("1.7", 51, 0), + + /** JDK 8. */ // For now, a clone of 7 + JDK1_8("1.8", 51, 0); private static final Context.Key targetKey = new Context.Key(); @@ -99,6 +102,7 @@ tab.put("5", JDK1_5); tab.put("6", JDK1_6); tab.put("7", JDK1_7); + tab.put("8", JDK1_8); } public final String name; @@ -110,7 +114,7 @@ this.minorVersion = minorVersion; } - public static final Target DEFAULT = JDK1_7; + public static final Target DEFAULT = JDK1_8; public static Target lookup(String name) { return tab.get(name); --- old/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java 2011-06-01 23:51:29.000000000 -0700 +++ new/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java 2011-06-01 23:51:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,8 +48,7 @@ * deletion without notice. */ @SupportedAnnotationTypes("*") -// TODO: Change to version 7 based visitors when available -@SupportedSourceVersion(SourceVersion.RELEASE_7) +@SupportedSourceVersion(SourceVersion.RELEASE_8) public class PrintingProcessor extends AbstractProcessor { PrintWriter writer; --- old/src/share/classes/javax/lang/model/SourceVersion.java 2011-06-01 23:51:29.000000000 -0700 +++ new/src/share/classes/javax/lang/model/SourceVersion.java 2011-06-01 23:51:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -124,7 +124,15 @@ * * @since 1.7 */ - RELEASE_7; + RELEASE_7, + + /** + * The version recognized by the Java Platform, Standard Edition + * 8. + * + * @since 1.8 + */ + RELEASE_8; // Note that when adding constants for newer releases, the // behavior of latest() and latestSupported() must be updated too. @@ -135,7 +143,7 @@ * @return the latest source version that can be modeled */ public static SourceVersion latest() { - return RELEASE_7; + return RELEASE_8; } private static final SourceVersion latestSupported = getLatestSupported(); @@ -143,9 +151,12 @@ private static SourceVersion getLatestSupported() { try { String specVersion = System.getProperty("java.specification.version"); - if ("1.7".equals(specVersion)) + + if ("1.8".equals(specVersion)) + return RELEASE_8; + else if("1.7".equals(specVersion)) return RELEASE_7; - else if ("1.6".equals(specVersion)) + else if("1.6".equals(specVersion)) return RELEASE_6; } catch (SecurityException se) {} --- old/test/tools/javac/6330997/T6330997.java 2011-06-01 23:51:30.000000000 -0700 +++ new/test/tools/javac/6330997/T6330997.java 2011-06-01 23:51:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,12 +23,12 @@ /** * @test - * @bug 6330997 + * @bug 6330997 7025789 * @summary javac should accept class files with major version of the next release * @author Wei Tao * @clean T1 T2 - * @compile -target 7 T1.java - * @compile -target 7 T2.java + * @compile -target 8 T1.java + * @compile -target 8 T2.java * @run main/othervm T6330997 */ --- old/test/tools/javac/api/T6395981.java 2011-06-01 23:51:30.000000000 -0700 +++ new/test/tools/javac/api/T6395981.java 2011-06-01 23:51:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,13 +23,13 @@ /* * @test - * @bug 6395981 6458819 + * @bug 6395981 6458819 7025784 * @summary JavaCompilerTool and Tool must specify version of JLS and JVMS * @author Peter von der Ah\u00e9 * @run main/fail T6395981 * @run main/fail T6395981 RELEASE_3 RELEASE_5 RELEASE_6 * @run main/fail T6395981 RELEASE_0 RELEASE_1 RELEASE_2 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 - * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 + * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 */ import java.util.EnumSet; --- old/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java 2011-06-01 23:51:31.000000000 -0700 +++ new/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java 2011-06-01 23:51:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 6376083 6376084 6458819 + * @bug 6376083 6376084 6458819 7025784 7025786 7025789 * @summary Test that warnings about source versions are output as expected. * @author Joseph D. Darcy * @compile TestSourceVersionWarnings.java @@ -35,7 +35,8 @@ * @compile/ref=gold_sv_warn_5_6.out -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5 -source 1.6 -Xlint:-options HelloWorld.java * @compile/ref=gold_sv_none.out -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Xlint:-options HelloWorld.java * @compile/ref=gold_unsp_warn.out -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Xlint:-options -Aunsupported HelloWorld.java - * @compile/ref=gold_sv_none.out -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_7 -source 1.7 HelloWorld.java + * @compile/ref=gold_sv_none.out -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_7 -source 1.7 -Xlint:-options HelloWorld.java + * @compile/ref=gold_sv_none.out -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_8 -source 1.8 HelloWorld.java */ import java.util.Set; @@ -51,7 +52,8 @@ /** * This processor returns the supported source level as indicated by * the "SourceLevel" option; therefore, don't use - * JavacTestingAbstractProcessor which returns the latest source level. + * JavacTestingAbstractProcessor which returns the latest source + * level. */ @SupportedAnnotationTypes("*") @SupportedOptions("SourceVersion") --- old/test/tools/javac/quid/T6999438.java 2011-06-01 23:51:31.000000000 -0700 +++ new/test/tools/javac/quid/T6999438.java 2011-06-01 23:51:31.000000000 -0700 @@ -1,7 +1,7 @@ /* @test /nodynamiccopyright/ * @bug 6999438 * @summary remove support for exotic identifiers from JDK 7 - * @compile/fail/ref=T6999438.out -XDrawDiagnostics -source 7 T6999438.java + * @compile/fail/ref=T6999438.out -XDrawDiagnostics T6999438.java */ class Test { --- old/test/tools/javac/versions/check.sh 2011-06-01 23:51:31.000000000 -0700 +++ new/test/tools/javac/versions/check.sh 2011-06-01 23:51:31.000000000 -0700 @@ -22,7 +22,7 @@ # # @test -# @bug 4981566 5028634 5094412 6304984 +# @bug 4981566 5028634 5094412 6304984 7025786 7025789 # @summary Check interpretation of -target and -source options # @build CheckClassFileVersion # @run shell check.sh @@ -65,9 +65,14 @@ check 51.0 -source 6 check 51.0 -source 1.7 check 51.0 -source 7 -check 51.0 -target 1.7 -check 51.0 -target 7 +check 51.0 -source 7 -target 1.7 +check 51.0 -source 7 -target 7 +# Update when class file version is revved +check 51.0 -source 1.8 +check 51.0 -source 8 +check 51.0 -target 1.8 +check 51.0 -target 8 # Check source versions @@ -96,6 +101,7 @@ checksrc15() { pass $* $TC/X.java; pass $* $TC/Y.java; } checksrc16() { checksrc15 $* ; } checksrc17() { checksrc15 $* ; } +checksrc18() { checksrc15 $* ; } checksrc14 -source 1.4 checksrc14 -source 1.4 -target 1.5 @@ -108,16 +114,24 @@ checksrc16 -source 1.6 -target 1.6 checksrc16 -source 6 -target 6 -checksrc17 -checksrc17 -target 1.7 -checksrc17 -target 7 checksrc17 -source 1.7 checksrc17 -source 7 checksrc17 -source 1.7 -target 1.7 checksrc17 -source 7 -target 7 +checksrc18 +checksrc18 -target 1.8 +checksrc18 -target 8 +checksrc18 -source 1.8 +checksrc18 -source 8 +checksrc18 -source 1.8 -target 1.8 +checksrc18 -source 8 -target 8 + fail -source 1.5 -target 1.4 $TC/X.java fail -source 1.6 -target 1.4 $TC/X.java fail -source 6 -target 1.4 $TC/X.java fail -source 1.6 -target 1.5 $TC/X.java fail -source 6 -target 1.5 $TC/X.java +fail -source 7 -target 1.6 $TC/X.java +fail -source 8 -target 1.6 $TC/X.java +fail -source 8 -target 1.7 $TC/X.java