Versions Compared

Key

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

...

  • 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

...

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


One breaking in 5.7.0 is changing the TypeCoercer service from having an unordered configuration to a mapped one. This was done so it's very clear when a coercion is overriden. Here's a real example from Tapestry itself: 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);
}