Highlights:
- Removed more old polyfills and IE-specific workarounds
- Samples updated to use Maven, usually as multi-module projects
- 2.13 is likely to be the last release where the compiler and dev tools run on Java 11
- DevMode server defaults to only serving static files - projects that wish to use the old Jetty 9 launcher may specify
-server com.google.gwt.dev.shell.JettyLauncher, but this is due to be removed. Projects should either split their server/client classpath, or switch to a ServletContainerLauncher that runs another server (https://github.com/niloc132/gwt-devmode-server-sample is an example project that can provide this) - Support
-strictin test arguments, to more easily find compile issues in GWT libraries - JFR events added to replace SpeedTracer, support observability into compiler steps, permutation and fragment counts, and output size. Additionally, the
gwt.jjs.dumpAstsystem property has been tweaked to support filtering, and generate more readable output - jaxb and xml-apis are now optional when using GWT's javax.validation support, set the
gwt.validation.ignoreXmlsystem property to avoid needing these - Improved JRE emulation tracking, listing not only supported APIs, but also document unsupported APIs with links to issues
Known bug:
- We've had a report of errors on startup on Windows for DevMode/CodeServer, but most users haven't seemed to encounter it. We have a candidate fix, and will follow up with a point release when we gather more information and land it. See #10272 for more details
Breaking Changes:
- String.split emulation changed to support Java 8 semantics with empty entries
- Collectors.toMap throws exception when assigning a null value to a key, reflecting Java semantics (though not Javadoc)
- AccessControlException JRE emulation removed
Bug fixes:
- Correct handling for SwitchStatements without a containing Block by @niloc132 in #10027
- Ignore all annotations in all scopes if source is missing by @niloc132 in #10021
- Fix Window.onClosing() not work in GWT 2.12 by @InforBG in #10074
- update gson to latest by @vegegoku in #10079
- Allow lambdas in this()/super() to close over outer types by @niloc132 in #10078
- Exceptions thrown when building GWT's AST should include context by @niloc132 in #10080
- Unset config properties:
System.getPropertyshould return default value or null (previously reverted) by @zbynek in #10096 - Fix NPE when compiling records with static fields by @zbynek in #10134
- Improving accessability - added aria presentation role for layout tables by @Lonzak in #10108
- Switch exprs must be transformed rather than wrapped in statements by @niloc132 in #10122
- make GWT epub friendly by @evoludolab in #10148
- Disabling draft mode shouldn't force namespace=package by @niloc132 in #10164
- Allow JsUtils.uncheckedCast to be inlined away by @niloc132 in #10165
- Fix console log uses debug by @larzeni in #10139
- Faster implementation of long and int rotation by @zbynek in #10187
- Update Jetty to 9.4.58.v20250814 by @Lonzak in #10203
JRE Emulation enhancements:
- Added Java 9+ emulation to
- java.io.ByteArrayOutputStream
- java.io.OutputStream
- java.io.Writer
- java.lang.Integer
- java.lang.Long
- java.lang.Math
- java.lang.Number
- java.lang.StrictMath
- java.lang.String
- java.math.BigInteger
- java.util.BitSet
- java.util.Collection
- java.util.Map
- java.util.Objects
- java.util.stream.Collectors
- java.util.stream.DoubleStream
- java.util.stream.IntStream
- java.util.stream.LongStream
- java.util.stream.Stream
- Cloneable added to
- java.util.TreeMap
- java.util.TreeSet
Deprecations and Removals:
- The following classes have been deprecated for removal:
- com.google.gwt.dev.util.log.dashboard.DashboardNotifierFactory - these have all been replaced by the new Java FlightRecorder functionality
- com.google.gwt.dev.util.log.dashboard.NoOpDashboardNotifier
- com.google.gwt.dev.util.log.dashboard.DashboardNotifier
- com.google.gwt.junit.RunStyleSelenium - this doesn't appear to have been usable for many years, will be replaced with Selenium WebDriver support
- com.google.gwt.dev.util.arg.ArgHandlerEnableGeneratorResultCaching
- com.google.gwt.dev.util.arg.OptionEnableGeneratorResultCaching
- com.google.gwt.dev.util.InstalledHelpInfo - replaced by
GwtprojectOrgHelpInfoto link to documentation at https://gwtproject.org - com.google.gwt.dev.util.Util
- com.google.gwt.util.tools.Utility
- com.google.gwt.core.ext.debug.JsoEval
- com.google.gwt.dev.util.PerfCounter
- com.google.gwt.dev.util.PerfLogger
- The following deprecated classes in gwt-dev have been removed:
- com.google.gwt.dev.util.log.speedtracer.CompilerTypeEvent
- com.google.gwt.dev.util.log.speedtracer.DevModeEventType
- com.google.gwt.dev.util.log.speedtracer.SpeedTracerEventType
- com.google.gwt.dev.GetJreEmulation
- com.google.gwt.dev.SignatureDumper
- com.google.gwt.dev.RunWebApp
- com.google.gwt.dev.shell.log.ServletContextTreeLogger
- com.google.gwt.dev.shell.WorkDirs
- com.google.web.bindery.requestfactory.server.RequestFactoryJarExtractor
- com.google.gwt.dev.ApplicationCreator
- com.google.gwt.dev.util.arg.ArgHandlerDumpSignatures
- com.google.gwt.dev.util.arg.ArgHandlerOutDir
- com.google.gwt.dev.util.arg.ArgHandlerFragmentMerge
- com.google.gwt.util.PreventSpuriousRebuilds
- com.google.gwt.dev.codeserver.RecompileListener
New Contributors
- @FrankHossfeld made their first contribution in #10023
- @InforBG made their first contribution in #10074
- @Lonzak made their first contribution in #10108
- @evoludolab made their first contribution in #10148
- @tsschmidt made their first contribution in #10166
- @larzeni made their first contribution in #10139
For more detail, see the commit log.