diff --git a/src/main/markdown/articles/superdevmode.md b/src/main/markdown/articles/superdevmode.md
index fc9e79365..2fb24a522 100644
--- a/src/main/markdown/articles/superdevmode.md
+++ b/src/main/markdown/articles/superdevmode.md
@@ -71,10 +71,10 @@ needed to compile your GWT app (most likely gwt-user.jar).
* The main method is in com.google.gwt.dev.codeserver.CodeServer
If you run CodeServer without any arguments, it will print out its
-command line arguments. For 2.11.0, here is the output:
+command line arguments. For 2.12.0, here is the output:
```
-Google Web Toolkit 2.11.0
-CodeServer [-[no]allowMissingSrc] [-[no]compileTest] [-compileTestRecompiles count] [-[no]failOnError] [-[no]precompile] [-port port] [-src dir] [-workDir dir] [-launcherDir] [-bindAddress host-name-or-address] [-style (DETAILED|OBFUSCATED|PRETTY)] [-setProperty name=value,value...] [-[no]incremental] [-sourceLevel [auto, 1.8, 9, 10, 11]] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-[no]generateJsInteropExports] [-includeJsInteropExports/excludeJsInteropExports regex] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-X[no]closureFormattedOutput] [module]
+Google Web Toolkit 2.12.0
+CodeServer [-[no]allowMissingSrc] [-[no]compileTest] [-compileTestRecompiles count] [-[no]failOnError] [-[no]precompile] [-port port] [-src dir] [-workDir dir] [-launcherDir] [-bindAddress host-name-or-address] [-style (DETAILED|OBFUSCATED|PRETTY)] [-setProperty name=value,value...] [-[no]incremental] [-sourceLevel [auto, 1.8, 9, 10, 11, 17]] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-[no]generateJsInteropExports] [-includeJsInteropExports/excludeJsInteropExports regex] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-X[no]closureFormattedOutput] [module]
where
-[no]allowMissingSrc Allows -src flags to reference missing directories. (defaults to OFF)
diff --git a/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md b/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md
index b7d252e75..300103a6f 100644
--- a/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md
+++ b/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md
@@ -314,8 +314,8 @@ There are many options you can pass to the development mode process to control h
```
$ java -cp gwt-dev.jar com.google.gwt.dev.DevMode
Missing required argument 'module[s]'
-Google Web Toolkit 2.11.0
-DevMode [-[no]startServer] [-port port-number | "auto"] [-logdir directory] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-gen dir] [-bindAddress host-name-or-address] [-codeServerPort port-number | "auto"] [-[no]superDevMode] [-server servletContainerLauncher[:args]] [-startupUrl url] [-war dir] [-deploy dir] [-extra dir] [-modulePathPrefix ] [-workDir dir] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-sourceLevel [auto, 1.8, 9, 10, 11]] [-[no]generateJsInteropExports] [-includeJsInteropExports/excludeJsInteropExports regex] [-[no]incremental] [-style (DETAILED|OBFUSCATED|PRETTY)] [-[no]failOnError] [-setProperty name=value,value...] module[s]
+Google Web Toolkit 2.12.0
+DevMode [-[no]startServer] [-port port-number | "auto"] [-logdir directory] [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-gen dir] [-bindAddress host-name-or-address] [-codeServerPort port-number | "auto"] [-[no]superDevMode] [-server servletContainerLauncher[:args]] [-startupUrl url] [-war dir] [-deploy dir] [-extra dir] [-modulePathPrefix ] [-workDir dir] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-sourceLevel [auto, 1.8, 9, 10, 11, 17]] [-[no]generateJsInteropExports] [-includeJsInteropExports/excludeJsInteropExports regex] [-[no]incremental] [-style (DETAILED|OBFUSCATED|PRETTY)] [-[no]failOnError] [-setProperty name=value,value...] module[s]
where
-[no]startServer Starts a servlet container serving the directory specified by the -war flag. (defaults to ON)
@@ -541,8 +541,9 @@ There are many options you can pass to the GWT compiler process to control how y
```
> java -cp gwt-dev.jar com.google.gwt.dev.Compiler
-Google Web Toolkit 2.11.0
-Compiler [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-workDir dir] [-X[no]closureFormattedOutput] [-[no]compileReport] [-X[no]checkCasts] [-X[no]classMetadata] [-[no]draftCompile] [-[no]checkAssertions] [-XfragmentCount numFragments] [-XfragmentMerge numFragments] [-gen dir] [-[no]generateJsInteropExports] [-includeJsInteropExports/excludeJsInteropExports regex] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-Xnamespace (NONE|PACKAGE)] [-optimize level] [-[no]saveSource] [-setProperty name=value,value...] [-style (DETAILED|OBFUSCATED|PRETTY)] [-[no]failOnError] [-[no]validateOnly] [-sourceLevel [auto, 1.8, 9, 10, 11]] [-localWorkers count] [-[no]incremental] [-war dir] [-deploy dir] [-extra dir] [-saveSourceOutput dir] module[s]
+Missing required argument 'module[s]'
+Google Web Toolkit 2.12.0
+Compiler [-logLevel (ERROR|WARN|INFO|TRACE|DEBUG|SPAM|ALL)] [-workDir dir] [-X[no]closureFormattedOutput] [-[no]compileReport] [-X[no]checkCasts] [-X[no]classMetadata] [-[no]draftCompile] [-[no]checkAssertions] [-XfragmentCount numFragments] [-gen dir] [-[no]generateJsInteropExports] [-includeJsInteropExports/excludeJsInteropExports regex] [-XmethodNameDisplayMode (NONE|ONLY_METHOD_NAME|ABBREVIATED|FULL)] [-Xnamespace (NONE|PACKAGE)] [-optimize level] [-[no]saveSource] [-setProperty name=value,value...] [-style (DETAILED|OBFUSCATED|PRETTY)] [-[no]failOnError] [-[no]validateOnly] [-sourceLevel [auto, 1.8, 9, 10, 11, 17]] [-localWorkers count] [-[no]incremental] [-war dir] [-deploy dir] [-extra dir] [-saveSourceOutput dir] module[s]
where
-logLevel The level of logging detail: ERROR, WARN, INFO, TRACE, DEBUG, SPAM or ALL (defaults to INFO)
@@ -554,7 +555,6 @@ where
-[no]draftCompile Compile quickly with minimal optimizations. (defaults to OFF)
-[no]checkAssertions Include assert statements in compiled output. (defaults to OFF)
-XfragmentCount EXPERIMENTAL: Limits of number of fragments using a code splitter that merges split points.
- -XfragmentMerge DEPRECATED (use -XfragmentCount instead): Enables Fragment merging code splitter.
-gen Debugging: causes normally-transient generated types to be saved in the specified directory
-[no]generateJsInteropExports Generate exports for JsInterop purposes. If no -includeJsInteropExport/-excludeJsInteropExport provided, generates all exports. (defaults to OFF)
-includeJsInteropExports/excludeJsInteropExports Include/exclude members and classes while generating JsInterop exports. Flag could be set multiple times to expand the pattern. (The flag has only effect if exporting is enabled via -generateJsInteropExports)
diff --git a/src/main/markdown/doc/latest/RefJreEmulation.md b/src/main/markdown/doc/latest/RefJreEmulation.md
index d1e745403..13b31c665 100644
--- a/src/main/markdown/doc/latest/RefJreEmulation.md
+++ b/src/main/markdown/doc/latest/RefJreEmulation.md
@@ -185,7 +185,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
Math
E, PI
- Math(), abs(double), abs(float), abs(int), abs(long), acos(double), asin(double), addExact(int, int), addExact(long, long), atan(double), atan2(double, double), cbrt(double), ceil(double), copySign(double, double), copySign(float, float), cos(double), cosh(double), decrementExact(int), decrementExact(long), exp(double), expm1(double), floor(double), floorDiv(int, int), floorDiv(long, long), floorMod(int, int), floorMod(long, long), hypot(double, double), incrementExact(int), incrementExact(long), log(double), log10(double), log1p(double), max(double, double), max(float, float), max(int, int), max(long, long), min(double, double), min(float, float), min(int, int), min(long, long), multiplyExact(int, int), multiplyExact(long, long), negateExact(int), negateExact(long), pow(double, double), random(), rint(double), round(double), round(float), subtractExact(int, int), subtractExact(long, long), scalb(double, int), scalb(float, int), signum(double), signum(float), sin(double), sinh(double), sqrt(double), tan(double), tanh(double), toDegrees(double), toIntExact(long), toRadians(double)
+ Math(), abs(double), abs(float), abs(int), abs(long), acos(double), asin(double), addExact(int, int), addExact(long, long), atan(double), atan2(double, double), cbrt(double), ceil(double), copySign(double, double), copySign(float, float), cos(double), cosh(double), decrementExact(int), decrementExact(long), exp(double), expm1(double), floor(double), floorDiv(int, int), floorDiv(long, long), floorMod(int, int), floorMod(long, long), hypot(double, double), incrementExact(int), incrementExact(long), log(double), log10(double), log1p(double), max(double, double), max(float, float), max(int, int), max(long, long), min(double, double), min(float, float), min(int, int), min(long, long), multiplyExact(int, int), multiplyExact(long, long), negateExact(int), negateExact(long), pow(double, double), random(), rint(double), round(double), round(float), subtractExact(int, int), subtractExact(long, long), scalb(double, int), scalb(float, int), signum(double), signum(float), sin(double), sinh(double), sqrt(double), tan(double), tanh(double), toDegrees(double), toIntExact(long), toRadians(double), nextAfter(double, double), nextAfter(float, double), nextUp(double), nextUp(float), nextDown(double), nextDown(float)
NegativeArraySizeException
NegativeArraySizeException(), NegativeArraySizeException(String)
@@ -204,6 +204,9 @@ Note that in some cases, only a subset of methods is supported for a given type.
Override
+ Record
+ hashCode(), equals(Object), toString()
+
Runnable
run()
@@ -227,7 +230,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
String
CASE_INSENSITIVE_ORDER
- String(), String(byte[]), String(byte[], int, int), String(byte[], int, int, String), String(byte[], int, int, Charset), String(byte[], String), String(byte[], Charset), String(char[]), String(char[], int, int), String(int[], int, int), String(String), String(StringBuffer), String(StringBuilder), copyValueOf(char[]), copyValueOf(char[], int, int), join(CharSequence, CharSequence[]), join(CharSequence, Iterable), valueOf(boolean), valueOf(char), valueOf(char[], int, int), valueOf(char[]), valueOf(double), valueOf(float), valueOf(int), valueOf(long), valueOf(Object), charAt(int), codePointAt(int), codePointBefore(int), codePointCount(int, int), compareTo(String), compareToIgnoreCase(String), concat(String), contains(CharSequence), contentEquals(CharSequence), contentEquals(StringBuffer), endsWith(String), equals(Object), equalsIgnoreCase(String), getBytes(), getBytes(String), getBytes(Charset), getChars(int, int, char[], int), hashCode(), indexOf(int), indexOf(int, int), indexOf(String), indexOf(String, int), intern(), isEmpty(), lastIndexOf(int), lastIndexOf(int, int), lastIndexOf(String), lastIndexOf(String, int), length(), matches(String), offsetByCodePoints(int, int), regionMatches(boolean, int, String, int, int), regionMatches(int, String, int, int), replace(char, char), replace(CharSequence, CharSequence), replaceAll(String, String), replaceFirst(String, String), split(String), split(String, int), startsWith(String), startsWith(String, int), subSequence(int, int), substring(int), substring(int, int), toCharArray(), toLowerCase(), toLowerCase(Locale), toUpperCase(), toUpperCase(Locale), toString(), trim()
+ String(), String(byte[]), String(byte[], int, int), String(byte[], int, int, String), String(byte[], int, int, Charset), String(byte[], String), String(byte[], Charset), String(char[]), String(char[], int, int), String(int[], int, int), String(String), String(StringBuffer), String(StringBuilder), copyValueOf(char[]), copyValueOf(char[], int, int), join(CharSequence, CharSequence[]), join(CharSequence, Iterable), valueOf(boolean), valueOf(char), valueOf(char[], int, int), valueOf(char[]), valueOf(double), valueOf(float), valueOf(int), valueOf(long), valueOf(Object), charAt(int), codePointAt(int), codePointBefore(int), codePointCount(int, int), compareTo(String), compareToIgnoreCase(String), concat(String), contains(CharSequence), contentEquals(CharSequence), contentEquals(StringBuffer), endsWith(String), equals(Object), equalsIgnoreCase(String), getBytes(), getBytes(String), getBytes(Charset), getChars(int, int, char[], int), hashCode(), indexOf(int), indexOf(int, int), indexOf(String), indexOf(String, int), intern(), isEmpty(), lastIndexOf(int), lastIndexOf(int, int), lastIndexOf(String), lastIndexOf(String, int), length(), matches(String), offsetByCodePoints(int, int), regionMatches(boolean, int, String, int, int), regionMatches(int, String, int, int), replace(char, char), replace(CharSequence, CharSequence), replaceAll(String, String), replaceFirst(String, String), split(String), split(String, int), startsWith(String), startsWith(String, int), subSequence(int, int), substring(int), substring(int, int), toCharArray(), toLowerCase(), toLowerCase(Locale), toUpperCase(), toUpperCase(Locale), toString(), trim(), strip(), stripLeading(), stripTrailing(), isBlank(), lines(), repeat(int)
StringBuffer
StringBuffer(), StringBuffer(CharSequence), StringBuffer(int), StringBuffer(String), append(boolean), append(char), append(char[]), append(char[], int, int), append(CharSequence), append(CharSequence, int, int), append(double), append(float), append(int), append(long), append(Object), append(String), append(StringBuffer), appendCodePoint(int), delete(int, int), deleteCharAt(int), insert(int, boolean), insert(int, char), insert(int, char[]), insert(int, char[], int, int), insert(int, CharSequence), insert(int, CharSequence, int, int), insert(int, double), insert(int, float), insert(int, int), insert(int, long), insert(int, Object), insert(int, String), replace(int, int, String), reverse()
@@ -272,7 +275,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
Documented
ElementType
- ANNOTATION_TYPE, CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE, TYPE_PARAMETER, TYPE_USE
+ ANNOTATION_TYPE, CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, MODULE, PACKAGE, PARAMETER, RECORD_COMPONENT, TYPE, TYPE_PARAMETER, TYPE_USE
values(), valueOf(String)
IncompleteAnnotationException
@@ -313,7 +316,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
BigInteger
ONE, TEN, ZERO
- BigInteger(byte[]), BigInteger(int, byte[]), BigInteger(int, int, Random), BigInteger(int, Random), BigInteger(String), BigInteger(String, int), probablePrime(int, Random), valueOf(long), abs(), add(BigInteger), and(BigInteger), andNot(BigInteger), bitCount(), bitLength(), byteValueExact(), clearBit(int), compareTo(BigInteger), divide(BigInteger), divideAndRemainder(BigInteger), doubleValue(), equals(Object), flipBit(int), floatValue(), gcd(BigInteger), getLowestSetBit(), hashCode(), intValue(), intValueExact(), isProbablePrime(int), longValue(), longValueExact(), max(BigInteger), min(BigInteger), mod(BigInteger), modInverse(BigInteger), modPow(BigInteger, BigInteger), multiply(BigInteger), negate(), nextProbablePrime(), not(), or(BigInteger), pow(int), remainder(BigInteger), setBit(int), shiftLeft(int), shiftRight(int), shortValueExact(), signum(), subtract(BigInteger), testBit(int), toByteArray(), toString(), toString(int), xor(BigInteger)
+ BigInteger(byte[]), BigInteger(byte[], int, int), BigInteger(int, byte[]), BigInteger(int, byte[], int, int), BigInteger(int, int, Random), BigInteger(int, Random), BigInteger(String), BigInteger(String, int), probablePrime(int, Random), valueOf(long), abs(), add(BigInteger), and(BigInteger), andNot(BigInteger), bitCount(), bitLength(), byteValueExact(), clearBit(int), compareTo(BigInteger), divide(BigInteger), divideAndRemainder(BigInteger), doubleValue(), equals(Object), flipBit(int), floatValue(), gcd(BigInteger), getLowestSetBit(), hashCode(), intValue(), intValueExact(), isProbablePrime(int), longValue(), longValueExact(), max(BigInteger), min(BigInteger), mod(BigInteger), modInverse(BigInteger), modPow(BigInteger, BigInteger), multiply(BigInteger), negate(), nextProbablePrime(), not(), or(BigInteger), pow(int), remainder(BigInteger), setBit(int), shiftLeft(int), shiftRight(int), shortValueExact(), signum(), subtract(BigInteger), testBit(int), toByteArray(), toString(), toString(int), xor(BigInteger)
MathContext
DECIMAL128, DECIMAL32, DECIMAL64, UNLIMITED
@@ -373,6 +376,13 @@ Note that in some cases, only a subset of methods is supported for a given type.
Package java.text
+ - Normalizer
+ - Normalizer(), normalize(CharSequence, Normalizer.Form), isNormalized(CharSequence, Normalizer.Form)
+
+ - Normalizer.Form
+ - NFD, NFC, NFKD, NFKC
+ - values(), valueOf(String)
+
- ParseException
- ParseException(String, int), getErrorOffset()
@@ -479,7 +489,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
LinkedList(), LinkedList(Collection), add(E), addFirst(E), addLast(E), clear(), clone(), descendingIterator(), element(), getFirst(), getLast(), listIterator(int), offer(E), offerFirst(E), offerLast(E), peek(), peekFirst(), peekLast(), poll(), pollFirst(), pollLast(), pop(), push(E), remove(), removeFirst(), removeFirstOccurrence(Object), removeLast(), removeLastOccurrence(Object), size()
List
- of(), of(E), of(E, E), of(E, E, E), of(E, E, E, E), of(E, E, E, E, E), of(E, E, E, E, E, E), of(E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E, E), __ofInternal(E[]), of(E[]), add(int, E), addAll(int, Collection), get(int), indexOf(Object), lastIndexOf(Object), listIterator(), listIterator(int), remove(int), replaceAll(UnaryOperator), set(int, E), sort(Comparator), spliterator(), subList(int, int)
+ of(), of(E), of(E, E), of(E, E, E), of(E, E, E, E), of(E, E, E, E, E), of(E, E, E, E, E, E), of(E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E, E), __ofInternal(E[]), of(E[]), add(int, E), addAll(int, Collection), get(int), indexOf(Object), lastIndexOf(Object), listIterator(), listIterator(int), remove(int), replaceAll(UnaryOperator), set(int, E), sort(Comparator), spliterator(), subList(int, int), copyOf(Collection)
ListIterator
add(E), hasPrevious(), nextIndex(), previous(), previousIndex(), remove(), set(E)
@@ -492,7 +502,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
LongSummaryStatistics(), accept(int), accept(long), combine(LongSummaryStatistics), getAverage(), getCount(), getMin(), getMax(), getSum(), toString()
Map
- of(), of(K, V), of(K, V, K, V), of(K, V, K, V, K, V), of(K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V), entry(K, V), ofEntries(Map.Entry[]), clear(), compute(K, BiFunction), computeIfAbsent(K, Function), computeIfPresent(K, BiFunction), containsKey(Object), containsValue(Object), entrySet(), forEach(BiConsumer), get(Object), getOrDefault(Object, V), isEmpty(), keySet(), merge(K, V, BiFunction), put(K, V), putIfAbsent(K, V), putAll(Map), remove(Object), remove(Object, Object), replace(K, V), replace(K, V, V), replaceAll(BiFunction), size(), values()
+ of(), of(K, V), of(K, V, K, V), of(K, V, K, V, K, V), of(K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V), of(K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V, K, V), entry(K, V), ofEntries(Map.Entry[]), clear(), compute(K, BiFunction), computeIfAbsent(K, Function), computeIfPresent(K, BiFunction), containsKey(Object), containsValue(Object), entrySet(), forEach(BiConsumer), get(Object), getOrDefault(Object, V), isEmpty(), keySet(), merge(K, V, BiFunction), put(K, V), putIfAbsent(K, V), putAll(Map), remove(Object), remove(Object, Object), replace(K, V), replace(K, V, V), replaceAll(BiFunction), size(), values(), copyOf(Map)
Map.Entry
equals(Object), getKey(), getValue(), hashCode(), setValue(V), comparingByKey(), comparingByKey(Comparator), comparingByValue(), comparingByValue(Comparator)
@@ -548,7 +558,7 @@ Note that in some cases, only a subset of methods is supported for a given type.
RandomAccess
Set
- of(), of(E), of(E, E), of(E, E, E), of(E, E, E, E), of(E, E, E, E, E), of(E, E, E, E, E, E), of(E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E, E), of(E[]), spliterator()
+ of(), of(E), of(E, E), of(E, E, E), of(E, E, E, E), of(E, E, E, E, E), of(E, E, E, E, E, E), of(E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E), of(E, E, E, E, E, E, E, E, E, E), of(E[]), spliterator(), copyOf(Collection)
SortedMap
comparator(), firstKey(), headMap(K), lastKey(), subMap(K, K), tailMap(K)
diff --git a/src/main/markdown/download.md b/src/main/markdown/download.md
index a84e518dc..e41c3dd0d 100644
--- a/src/main/markdown/download.md
+++ b/src/main/markdown/download.md
@@ -42,7 +42,7 @@ Download
Note - This download contains the standalone GWT SDK and tools only. If you're using Eclipse, we suggest that you download and install the GWT Eclipse Plugin instead.
-
Download GWT SDK
+
Download GWT SDK
[Old versions]
diff --git a/src/main/markdown/gettingstarted-v2.md b/src/main/markdown/gettingstarted-v2.md
index bca99bf24..b58c0f4d1 100644
--- a/src/main/markdown/gettingstarted-v2.md
+++ b/src/main/markdown/gettingstarted-v2.md
@@ -23,10 +23,9 @@ the plugin generates a Maven project with separate modules for
## Prerequisites
-1. GWT 2.11.0 still supports Java 8 (running and building). We suggest to use at least Java 11 or 17. If necessary, download and
- install the Java SE Development Kit (JDK)
from Eclipse Temurin for your platform. Install the JDK by following the
- installation instructions.
+1. GWT 2.12.0 runs on Java 11+. If necessary, download and install the Java SE Development Kit (JDK)
+
from Eclipse Temurin for
+ your platform. Install the JDK by following the installation instructions.
2. Apache Maven is also necessary to run the gwt-maven-archetype. In this sample the Maven CLI is used. If
you don't already have it, install
Apache Maven.
diff --git a/src/main/markdown/overview.md b/src/main/markdown/overview.md
index c5c0bb583..161cb3e51 100644
--- a/src/main/markdown/overview.md
+++ b/src/main/markdown/overview.md
@@ -3,7 +3,7 @@ Overview
GWT is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript. It's open source, completely free, and used by thousands of developers around the world.
-[What's New in GWT 2.11.0](release-notes.html#Release_Notes_2_11_0)
+[What's New in GWT 2.12.0](release-notes.html#Release_Notes_2_12_0)
## What's inside the toolbox?
diff --git a/src/main/markdown/release-notes.md b/src/main/markdown/release-notes.md
index 3680326ef..ba418a55d 100644
--- a/src/main/markdown/release-notes.md
+++ b/src/main/markdown/release-notes.md
@@ -1,5 +1,6 @@
The GWT Release Notes
=====================
+* [2.12.0](#Release_Notes_2_12_0) October 29, 2024
* [2.11.0](#Release_Notes_2_11_0) January 9, 2024
* [2.10.1](#Release_Notes_2_10_1) January 9, 2024
* [2.10.0](#Release_Notes_2_10_0) June 9, 2022
@@ -66,6 +67,56 @@ The GWT Release Notes
* * *
+##
Release Notes for 2.12.0
+### Highlights:
+- Added support for Java 12-17 language features, including text blocks, instanceof pattern matching, records, and switch expressions.
+- Minimum Java version 11 is required to run any dev tools, though the server code should continue to function with Java 8 for this release. Later versions may no longer support Java 8.
+- Added support for sourcemaps to include the contents of the sources files.
+- Enabled sourcemaps by default in all browsers
+- Fix CSP issues in linkers and dev mode, provide CSP workarounds for GWT-RPC payloads
+
+### Bug fixes:
+- Remove first character for delegating args to CodeServer
+- Fix error initializeEnumMap() is exceeding the 65535 bytes limit
+- Relax naming rules to allow valid java bean properties as jsproperties
+- Allow SDM's web server to reuse a socket without waiting
+- Each mapped stream must be closed after its contents have been placed downstream
+- Fix native JsMethods with varargs called from Java varargs methods
+
+
+### JRE Emulation:
+- Add Java 10 Collections APIs
+- Add Java 9 BigInteger constructors
+- Normalizer emulation
+- String method emulation for Java 11, align Character.isWhitespace with Java 11
+- Implement java.lang.Math.nextAfter, nextUp, nextDown
+- Added missing IOException to Reader.read(...) methods
+- Support ElementType MODULE and RECORD_COMPONENT on annotations
+
+
+### Deprecations and Removals:
+- The `unload` event has been deprecated in browsers, deprecated calls that require it, and rewrite calls that shouldn't need it. Deprecated methods have notes describing how to replace them with more modern strategies.
+- The `mousewheel` event has been deprecated in browsers, its usage in GWT has been replaced with the `wheel` event. This should be transparent to applications.
+- The `com.google.gwt.dev.GetJreEmulation` main class has been deprecated, and is planned to be removed in a future release.
+- The `com.google.gwt.dev.RunWebApp` main class has been deprecated, and is planned to be removed in a future release.
+- The `SpeedTracer` classes have been deprecated, and are planned to be removed/replaced in a future release.
+- The deprecated `-XfragmentMerge` flag no longer has any effect, to be removed in a future release.
+- The following deprecated, unused flags have been removed:
+ - `-XdisableUpdateCheck`/`-XcheckForUpdates`
+ - `-incrementalCompileWarnings`
+ - `-Xlibraries`
+ - `-XoutLibrary`, `-Xlibrary`
+ - `-Xlink`
+ - `-missingDepsFile`
+ - `-overlappingSourceWarnings`
+ - `XstrictResources`, `enforceStrictResources`
+- The following deprecated, noop `main()` classes in gwt-user have been removed
+ - `com.google.gwt.user.tools.ApplicationCreator`
+ - `com.google.gwt.user.tools.ProjectCreator`
+- The `com.google.web.bindery.requestfactory.server.RequestFactoryJarExtractor` class is no longer included in any release jars.
+
+For more detail, see the [commit log](https://github.com/gwtproject/gwt/compare/2.11.0...2.12.0).
+
##
Release Notes for 2.11.0
### Highlights:
- Transitioned to GitHub pull requests for new contributions, with nightly
diff --git a/src/main/markdown/versions.md b/src/main/markdown/versions.md
index 64a58f4f5..ffcc9c453 100644
--- a/src/main/markdown/versions.md
+++ b/src/main/markdown/versions.md
@@ -3,6 +3,27 @@ Versions
GWT is licensed under the [Apache 2.0 open source license](terms.html) (since version 1.3).
+### Version 2.12.0
+
+Build 2.12.0 - October 29, 2024 - [Release notes](release-notes.html#Release_Notes_2_12_0)
+
+
+
+
+ Platform |
+ Package |
+ Size |
+ SHA1 Sum |
+
+
+ Windows, Mac OS X, and Linux |
+ [gwt-2.12.0.zip](https://github.com/gwtproject/gwt/releases/download/2.12.0/gwt-2.12.0.zip) |
+ 82310d7e612b21c052e05514e82a56196687bc36 |
+ 109 MB |
+
+
+
+
### Version 2.11.0
Build 2.11.0 - January 9, 2024 - [Release notes](release-notes.html#Release_Notes_2_11_0)
@@ -24,6 +45,8 @@ Build 2.11.0 - January 9, 2024 - [Release notes](release-notes.html#Release_Note
+### Version 2.10.1
+
Build 2.10.1 - January 9, 2024 - [Release notes](release-notes.html#Release_Notes_2_10_1)
diff --git a/src/main/site/doctype/2.12.0/gwt-module.dtd b/src/main/site/doctype/2.12.0/gwt-module.dtd
new file mode 100644
index 000000000..3db5150d3
--- /dev/null
+++ b/src/main/site/doctype/2.12.0/gwt-module.dtd
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+