Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-7029

Add migration recipes to Wicket 10

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 10.0.0-M1
    • 10.0.0-M1
    • None

    Description

      The Migration to Wicket 10.0 guide contains a number of breaking changes, that users will have to adopt. Examples include merging `wicket-http2` into `wicket-core`, and the associated package change of `PushHeaderItem` to `org.apache.wicket.markup.head.http2`. And while understandably necessary, these nonetheless can be a hurdle for users to adopt.

      To help users adopt Wicket 10 and the associated upgrade to Java 17 and Servlet 5+ I propose to add a module containing OpenRewrite migration recipes. For those unfamiliar: OpenRewrite allows you to define migration steps either through Yaml or with Java visitors, and compose these steps to achieve larger migrations. Such migrations have been applied to Wicket before, but they can also be defined and distributed for Apache Wicket users.

      As a recent example, migration recipes have been added to Axon Framework. In practice that comes down to the following code changes, which also include instructions on their use: https://github.com/AxonFramework/AxonFramework/pull/2597/files

      Wicket 10 migration recipes can include a number of existing recipes that help modernize applications:

      1. Use lambdas where possible
      2. Migrate to Jakarta EE 9
      3. Migrate to Java 17

      The Wicket 10 specific recipes can reuse common building blocks such as ChangeType to adopt package name changes, and RemoveDependency to remove `wicket-http2`.

      Technically this wouldn't have to be very difficult initially, even more so when the goal is to assist a migration rather than to achieve a complete migration. The Axon Framework migration can serve as a template, and I'm happy to provide guidance.

      Would this be something worth adding to Apache Wicket?

      Attachments

        Activity

          People

            mgrigorov Martin Tzvetanov Grigorov
            timtebeek Tim te Beek
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: