[ 
https://issues.apache.org/jira/browse/WICKET-7029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17704084#comment-17704084
 ] 

ASF subversion and git services commented on WICKET-7029:
---------------------------------------------------------

Commit 16e63762f435ef85e5df2ebb913a792e6ee67f95 in wicket's branch 
refs/heads/master from Tim te Beek
[ https://gitbox.apache.org/repos/asf?p=wicket.git;h=16e63762f4 ]

WICKET-7029 Add wicket-migration module (#556)

* WICKET-7029 Add wicket-migration module

Makes it easier for users to adopt Apache Wicket 10.
https://issues.apache.org/jira/browse/WICKET-7029

Migration then comes down to executing a single command:
```shell
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
  -Drewrite.recipeArtifactCoordinates=org.apache.wicket:wicket-migration:LATEST 
\
  -DactiveRecipes=org.apache.wicket.BestPractices
```

* Delete Main.java

* Drop wicket-core dependency as it's not needed for current migrations or tests

* rewrite-recipe-bom 1.17.0

* Manage jakarata.activation-api version to appease maven-enforcer-plugin

* Adopt ExpectedToFail instead of Disabled for 10.x test

* Satisfy DEPENDENCY_ORDER

* Dependency versions have to be declared in <dependencyManagement>

> Add migration recipes to Wicket 10
> ----------------------------------
>
>                 Key: WICKET-7029
>                 URL: https://issues.apache.org/jira/browse/WICKET-7029
>             Project: Wicket
>          Issue Type: New Feature
>    Affects Versions: 10.0.0
>            Reporter: Tim te Beek
>            Priority: Minor
>              Labels: migration
>
> The [Migration to Wicket 
> 10.0|https://cwiki.apache.org/confluence/display/WICKET/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|https://docs.openrewrite.org/]. 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,|https://github.com/apache/wicket/pull/546] but they can also be 
> defined and distributed for Apache Wicket users.
> As a recent example, migration recipes have been [added to Axon 
> Framework|https://developer.axoniq.io/w/upgrading-to-axon-framework-4.7-automated].
>  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:
>  # [Use lambdas where 
> possible|https://docs.openrewrite.org/reference/recipes/java/cleanup/uselambdaforfunctionalinterface]
>  # [Migrate to Jakarta EE 
> 9|https://docs.openrewrite.org/reference/recipes/java/migrate/jakarta/javaxmigrationtojakarta]
>  # [Migrate to Java 
> 17|https://docs.openrewrite.org/reference/recipes/java/migrate/upgradetojava17]
> 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?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to