Skip to content

Releases: gwtproject/gwt

GWT 2.12.1

12 Nov 17:00
6217e81
Compare
Choose a tag to compare

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

29 Oct 13:42
0056242
Compare
Choose a tag to compare

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 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.

GWT 2.10.1

09 Jan 13:20
Compare
Choose a tag to compare

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

09 Jan 18:41
7f76f0f
Compare
Choose a tag to compare

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

09 Jun 19:41
Compare
Choose a tag to compare

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 old com.google.gwt:gwt BOM or the new org.gwtproject:gwt BOM to sure that Maven or Gradle correctly handle this change. This will be the last published version using the com.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.