apupier commented on code in PR #7993: URL: https://github.com/apache/camel-quarkus/pull/7993#discussion_r2546499523
########## docs/modules/ROOT/pages/migration-guide/camel-spring-boot-to-camel-quarkus.adoc: ########## @@ -0,0 +1,105 @@ += Camel Spring Boot to Camel Quarkus Migration Guide + +This guide helps to migrate from Camel on Spring Boot to Camel on Quarkus. + +== Spring Boot to Quarkus non-specific to Camel migration + +This part should be relatively minimal for Camel applications. Most of it is automated by an https://docs.openrewrite.org/recipes/quarkus/spring/springboottoquarkus[OpenRewrite recipe]. + +The command to apply it is + +[source,shell] +--- +mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring-to-quarkus:RELEASE -Drewrite.activeRecipes=org.openrewrite.quarkus.spring.SpringBootToQuarkus -Drewrite.exportDatatables=true +--- + +== Maven dependencies + +=== Bom dependencies + +The `org.apache.camel.springboot:camel-spring-boot-bom` must be replaced by `org.apache.camel.quarkus:camel-quarkus-bom`. + +The `org.springframework.boot:spring-boot-dependencies` should have been replaced by `io.quarkus.platform:quarkus-bom` by the OpenRewrite recipe. + +Take care of the versions, in Spring Boot the camel bom version is aligned to Camel version, the bom for Camel Quarkus is aligned with Quarkus version. + +=== Core dependencies + +* Remove parent `spring-boot-starter-parent` +* Remove `spring-boot-starter-actuator` dependency +* Replace `org.apache.camel.springboot:camel-spring-boot-starter` by `org.apache.camel.quarkus:camel-quarkus-core` + +=== Camel component dependency + +* Replace `org.apache.camel.springboot:camel-xxx-starter` by `org.apache.camel.quarkus:camel-quarkus-xxx` +* Some dependencies must be added if component is used as they were provided by default with Camel Spring Boot, for instance camel-quarkus-timer +* Note that few components are not available in Camel Quarkus (mainly the Spring specific ones) + +== Remove "Main" annotated class + +If OpenRewirte recipe used, it will have the @QuarkusMain annotation, otherwise the @SpringBootApplication. This class can be completely removed. if not removed, the application will start but won't discover and start the Camel routes. + +== Configure Quarkus Maven Plugin + +The OpenRewrite recipe should have added the quarkus-maven-plugin but we need to add some configuration like this: + +[source,xml] +--- +<plugin> + <groupId>${quarkus.platform.group-id}</groupId> + <artifactId>quarkus-maven-plugin</artifactId> + <version>${quarkus.platform.version}</version> + <extensions>true</extensions> + <executions> + <execution> + <goals> + <goal>build</goal> + <goal>generate-code</goal> + <goal>generate-code-tests</goal> + </goals> + </execution> + </executions> +</plugin> +--- + +== Camel route DSLs + +There are no change for Java, Yaml and XML IO DSL. + +In case, the Camel Spring XML DSL was used, it needs to be migrated. Please see https://camel.apache.org/components/next/others/java-xml-io-dsl.html[Camel XML IO DSL documentation] + +== Automated tests + +Tests annotated with `@CamelSpringBootTest`, `@CamelSpringTest` and `@SpringBootTest` must used `@QuarkusTest` instead. + +In case of tests which extends `CamelSpringBootTestSupport`, it must be replaced by `CamelQuarkusTestsSupport` from `camel-quarkus-junit5` dependency (to add to the pom). Note that this solution is working only for JVM mode. + +As a reminder and in case of specific cases, see https://camel.apache.org/camel-quarkus/next/user-guide/testing.html[Camel Quarkus Testing User guide]. Review Comment: iI think I need to use an xref here -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
