[
https://issues.apache.org/jira/browse/WICKET-7029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17699399#comment-17699399
]
ASF GitHub Bot commented on WICKET-7029:
----------------------------------------
timtebeek commented on code in PR #556:
URL: https://github.com/apache/wicket/pull/556#discussion_r1133324315
##########
wicket-migration/src/test/java/org/apache/wicket/migration/MigrateToWicket10Test.java:
##########
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2010-2023. wicket Framework
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wicket.migration;
+
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.openrewrite.config.Environment;
+import org.openrewrite.java.JavaParser;
+import org.openrewrite.test.RecipeSpec;
+import org.openrewrite.test.RewriteTest;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.openrewrite.java.Assertions.java;
+import static org.openrewrite.java.Assertions.mavenProject;
+import static org.openrewrite.maven.Assertions.pomXml;
+
+class MigrateToWicket10Test implements RewriteTest {
+
+ @Override
+ public void defaults(RecipeSpec spec) {
+ spec
+ .parser(JavaParser.fromJavaVersion()
+ .logCompilationWarningsAndErrors(true)
+ .classpath("rewrite-migrate-java"))
+ .recipe(Environment.builder()
+ .scanRuntimeClasspath()
+ .build()
+
.activateRecipes("org.apache.wicket.MigrateToWicket10"));
+ }
+
+ @Test
+ void migrateImports() {
+ //language=java
+ rewriteRun(
+ java("""
+ package org.apache.wicket.http2.markup.head;
+
+ public class PushHeaderItem { }"""),
+ java(
+ """
+ package sample.wicket;
+
+ import
org.apache.wicket.http2.markup.head.PushHeaderItem;
+
+ class ATest {
+ PushHeaderItem item;
+ }""",
+ """
+ package sample.wicket;
+
+ import
org.apache.wicket.markup.head.http2.PushHeaderItem;
+
+ class ATest {
+ PushHeaderItem item;
+ }"""
+ ));
+ }
+
+ @Test
+ @Disabled("Required a first release of 10.x")
Review Comment:
This test resolves against Maven Central, and can be enabled as soon as a
first 10.x is available there.
> 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)