Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Tapestry 5.7.0 is a new major version which needs a migration step for projects using previous versions. To upgrade, update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download the new JAR file. In addition, download the migration tool jar from https://repo1.maven.org/maven2/org/apache/tapestry/tapestry-version-migrator/5.7.0/tapestry-version-migrator-5.7.0.jar and run "java -jar tapestry-version-migrator-5.7.0.jar upgrade 5.7.0" (without quotes) in the command line. It will process all .java files found in the current folder and its subfolders, recursivelyPlease check the Upgrade Guide section below for details. This is a step that only needs to be done once. Please also review the How to Upgrade instructions before upgrading.

...

  • Partial Java 9+ modules (JPMS) support. It's partial because module-info.java classes are not provided yet. On the other hand, Tapestry's JARs don't have split packages anymore, making them easier to be used with Java 9+ modules. Many classes had to be moved to other packages, and sometimes even to a different JAR. The migration tool mentioned above will take care of updating your code so it uses the correct new fully-qualified class names for the ones that were moved and/or renamed.
    • Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyTAP5-2641
      Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyTAP5-2627
  • TypeCoercer now uses mapped configuration so coercion overrides are done in an explicit manner. Please check the TypeCoercion Upgrade Guide section below for details. 
    • Jira
      serverASF JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyTAP5-2650

Improvements made

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject ="Tapestry 5" and fixVersion = 5.7.0 and type != bug
serverId5aa69414-a9e9-3523-82ec-879b028fb15b

Bugs fixed

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject ="Tapestry 5" and fixVersion =5.7.0 and type =bug
serverId5aa69414-a9e9-3523-82ec-879b028fb15b

TypeCoercion Upgrade Guide

  • It's not possible to use the Tapestry request handling framework, specially the RequestFilter, Dispatcher, Request, Response and HttpServletRequestFilter classes, without the page framework. These classes were moved to a new artifact, tapestry-http, which can be used in place of tapestry-core (which depends on tapestry-http). tapestry-http Servlet filter class is org.apache.tapestry5.http.TapestryFilter. The original TapestryFilter, from org.apache.tapestry5, can be used in the same way way as in past Tapestry versions. 

5.7.0 Upgrade Guide


The first step is running the source code migration tool:
  1. Download the migration tool jar from https://repo1.maven.org/maven2/org/apache/tapestry/tapestry-version-migrator/5.7.0/tapestry-version-migrator-5.7.0.jar
  2. Run "java -jar tapestry-version-migrator-5.7.0.jar upgrade 5.7.0" (without quotes) in the command line. It will process all .java files found in the current folder and its subfolders, recursively. 

The second step is updating how contributions to the TypeCoercer service in case your projects have them.

...

Here's a real example from Tapestry itself

...

. It used to be done using Configuration, but now it's MappedConfiguration. If you had a contribution method like this:

Code Block
languagejava
@Contribute(TypeCoercer.class)
public static void provideCoercions(Configuration<CoercionTuple> configuration)
{
    configuration.add(CoercionTuple.create(String.class, JSONObject.class, new StringToJSONObject()));
}

it should be changed to this:

Code Block
public static void provideCoercions(MappedConfiguration<CoercionTuple.Key, CoercionTuple> configuration)
{
    CoercionTuple<String, JSONObject> stringToJsonObject = CoercionTuple.create(
        String.class, JSONObject.class, new StringToJSONObject());
    configuration.add(stringToJsonObject.getKey(), stringToJsonObject);
}

Improvements made

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject ="Tapestry 5" and fixVersion = 5.7.0 and type != bug
serverId5aa69414-a9e9-3523-82ec-879b028fb15b

Bugs fixed

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject ="Tapestry 5" and fixVersion =5.7.0 and type =bug
serverId5aa69414-a9e9-3523-82ec-879b028fb15b