Change Camel component URI across all DSLs
Recipe ID
org.apache.camel.upgrade.customRecipes.ChangeComponentUriRecipeArtifactorg.openrewrite.recipe:rewrite-third-partyTransforms component URIs using regular expressions with capturing groups. Automatically handles Java, XML DSL, and YAML DSL.
Composite recipeApache 2.0
Add to your build
Get a download tokenSign in with GitHub or Google, and your token replaces YOUR_DOWNLOAD_TOKEN below. Free for open source recipes like this one.
~/.gradle/gradle.properties
codeGenomeUsername=you@example.com
codeGenomeToken=YOUR_DOWNLOAD_TOKEN
build.gradle.kts
plugins {
id("org.openrewrite.rewrite") version("latest.release")
}
rewrite {
activeRecipe("org.apache.camel.upgrade.customRecipes.ChangeComponentUriRecipe")
}
repositories {
mavenCentral()
maven {
url = uri("https://artifacts.codegenomeproject.org/maven")
credentials {
username = providers.gradleProperty("codeGenomeUsername").get()
password = providers.gradleProperty("codeGenomeToken").get()
}
}
}
dependencies {
rewrite("org.openrewrite.recipe:rewrite-third-party:0.48.0")
}
Then run
./gradlew rewriteRunThis recipe has required options, which a build sets in a rewrite.yml recipe that you activate instead.
Usage
You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.apache.camel.upgrade.customRecipes.ChangeComponentUriRecipe --recipe-option "uriPattern=^pulsar:((persistent|non-persistent)://([^/]+)/([^/]+)/([^/]+)/(.+))$" --recipe-option "replacement=pulsar:${2}://${3}/${5}/${6}"If the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-third-party:RELEASEOptions
| Name | Type | Description |
|---|---|---|
uriPatternrequired | String | Regular expression to match the component URI. Use capturing groups for parts to preserve. e.g. ^pulsar:((persistent|non-persistent)://([^/]+)/([^/]+)/([^/]+)/(.+))$ |
replacementrequired | String | Replacement string using ${1}, ${2}, etc. to reference capturing groups from the pattern. e.g. pulsar:${2}://${3}/${5}/${6} |
consumerOnly | Boolean | When true, only consumer endpoints (from) are transformed; producer endpoints (to) are left unchanged. e.g. true |
Definition
This recipe runs the following recipes in order.
- Change Camel component URI in Java
org.apache.camel.upgrade.customRecipes.internal.ChangeJavaComponentUriRecipe - Change Camel component URI in XML DSL
org.apache.camel.upgrade.customRecipes.internal.ChangeXmlComponentUriRecipe - Change Camel component URI in YAML DSL
org.apache.camel.upgrade.customRecipes.internal.ChangeYamlComponentUriRecipe
Data tables
Structured output this recipe can produce.
- Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats