Skip to content

GWT 2.13.0

Latest

Choose a tag to compare

@niloc132 niloc132 released this 11 Feb 19:40
· 2 commits to main since this release
b7117c1

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 -strict in 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.dumpAst system 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.ignoreXml system 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.getProperty should 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 GwtprojectOrgHelpInfo to 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

For more detail, see the commit log.