Releases: gwtproject/gwt
GWT 2.12.1
Hotfix release to fix two issues, one regression and one impacting latest jsinterop-base versions.
What's Changed
- Correct handling for SwitchStatements without a containing Block by @niloc132 in #10034
- Ignore all annotations in all scopes if source is missing by @niloc132 in #10035
For more detail, see the commit log.
GWT 2.12
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 (#9940)
- Fix error initializeEnumMap() is exceeding the 65535 bytes limit (#9954)
- Relax naming rules to allow valid java bean properties as jsproperties (#9875)
- Allow SDM's web server to reuse a socket without waiting (#9946)
- Each mapped stream must be closed after its contents have been placed⦠(#9949)
- Fix native JsMethods with varargs called from Java varargs methods (#9957)
JRE Emulation:
- Add Java 10 Collections APIs (#9904)
- Add Java 9 BigInteger constructors (#9953)
- Normalizer emulation (#9970)
- String method emulation for Java 11, align Character.isWhitespace with Java 11 (#9975)
- Implement java.lang.Math.nextAfter, nextUp, nextDown (#9978)
- Added missing IOException to Reader.read(...) methods (#9933)
- Support ElementType MODULE and RECORD_COMPONENT on annotations (#10002)
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 thewheel
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 removedcom.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.
GWT 2.10.1
Backported a fix from 2.11 to disable JPA/JDO "enhanced classes" serializable
by default for GWT-RPC, and added a warning when it is in use. For more
information, see #9709.
GWT 2.11
Highlights:
- Transitioned to GitHub pull requests for new contributions, with nightly builds running on GitHub Actions.
- Added release artifacts for
jakarta.servlet
packages for both RequestFactory and GWT-RPC. - Tested support for running on Java 21. This is likely to be the final minor release series to support running on Java 8.
- Disabled JPA/JDO "enhanced classes" serializable by default for GWT-RPC, and added a warning when it is in use.
- Updated JRE emulation to support Java 11 for Collections, streams, and more.
Bug fixes:
- Make custom field serializers ready for Java 17 (#9791)
- Correctly write Long.toBinaryString as an unsigned value (#9769)
- Fix gzip encoding of responses in the CodeServer (#9766)
- Avoid EmptyStackException in SOYC (#9808)
- Fix error reporting for System.getProperty magic method nodes (#9812)
- Fix ClassNotFoundException when running JettyLauncher with Java 9+ (#9822)
- Avoid StackOverflowError in TypeUtils#resolveGenerics (#9858)
- Avoid document.write in Chrome with iframe linker (#9836)
- Avoid document write in single script linker loading (#9847)
- Handle ternary intersection types (#9799)
- Fix for namespace="" names that clash with variable names (#9867)
JRE Emulation:
- Added new Optional methods: or(), stream(), ifPresentOrElse(), empty(), and orElseThrow()
- Added List/Set/Map of() methods
- Added Predicate not() method
- Added Collectors methods: flatMapping(), filtering(), toUnmodifiableList(), toUnmodifiableSet(), and toUnmodifiableMap()
- Added Stream methods: dropWhile, takeWhile, and iterate(seed, hasNext, next)
- Added Enumeration.asIterator()
Deprecations:
- Using DevMode as an application server is deprecated, and may be removed or changed in a future release. Please migrate local development workflows to using a general purpose server, or a custom ServletContainerLauncher.
- The webAppCreator tool is deprecated, please refer to https://www.gwtproject.org/gettingstarted.html.
Miscellaneous:
- Update chrome/firefox globals to latest
- Updated Javadoc to run on Java 9+, support search
- Removed unused scripts from old build wiring
For more detail, see the commit log.
GWT 2.10.0
Highlights
-
Updated to HtmlUnit 2.55.0 and Jetty 9.4.44. With this newer HtmlUnit build comes support for Promise in unit tests, and the browser strings that can be specified when running tests are "FF", "Chrome", "IE" (for IE11), "Edge", and "Safari".
-
Tested support for running on Java 17, dropped remaining support for running on Java 7.
-
Maven groupId is formally changed to
org.gwtproject
, projects should take care to ensure they are using either the oldcom.google.gwt:gwt
BOM or the neworg.gwtproject:gwt
BOM to sure that Maven or Gradle correctly handle this change. This will be the last published version using thecom.google.gwt
groupId. -
Dropped support for IE 8, 9, and 10.
Bug fixes
- Correct Long.hashCode semantics
- Support CLASSPATH environment variable when creating child processes, fixing a bug where Windows could fail with a long list of arguments.
- Use Function.name instead of displayName to support visible method names in Chrome 93+.
- Allow stack traces to be available in Chrome when loading scripts from a remote origin.
JRE Emulation
- Added OutputStreamWriter emulation.
- Support StringReader mark() and reset() methods.
- Added StrictMath emulation.
- Added BufferedWriter emulation.
- Added incomplete PrintStream emulation.
- Add Charset.defaultCharset() emulation.
- Improve BigInteger emulated performance.
- System.nanoTime() emulation with performance.now().
- Added Optional.isEmpty emulation.
- JRE Emulation improvements/simplifications to facilitate J2CL's WASM support. Note that these do not always offer specific improvements to GWT itself, but helps to keep the codebases consistent.
Miscellaneous
- Add support to compile GWT itself in Java 9+.
- Improve compiled code size for applications that never use streams, by avoiding referencing streams from Throwable.
For more detail, see the commit log.