This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch gen-trans in repository https://gitbox.apache.org/repos/asf/camel.git
commit f6ddbc1e4616adc30b9675b27a359c57768734cd Author: Claus Ibsen <[email protected]> AuthorDate: Wed Feb 14 16:52:59 2024 +0100 CAMEL-20419: Generate json metadata for @DataTypeTransformer --- .../org/apache/camel/transformer/transformers.json | 12 ++++++++++++ .../AzureStorageBlobCloudEventDataTypeTransformer.java | 3 ++- .../java/org/apache/camel/spi/DataTypeTransformer.java | 5 +++++ .../org/apache/camel/transformer/transformers.json | 16 ++++++++++++++++ .../maven/packaging/GenerateDataTypeTransformerMojo.java | 15 +++++++++++---- 5 files changed, 46 insertions(+), 5 deletions(-) diff --git a/components/camel-azure/camel-azure-storage-blob/src/generated/resources/META-INF/services/org/apache/camel/transformer/transformers.json b/components/camel-azure/camel-azure-storage-blob/src/generated/resources/META-INF/services/org/apache/camel/transformer/transformers.json new file mode 100644 index 00000000000..effb6a941e7 --- /dev/null +++ b/components/camel-azure/camel-azure-storage-blob/src/generated/resources/META-INF/services/org/apache/camel/transformer/transformers.json @@ -0,0 +1,12 @@ +{ + "groupId": "org.apache.camel", + "artifactId": "camel-azure-storage-blob", + "version": "4.4.0-SNAPSHOT", + "transformers": [ + { + "className": "org.apache.camel.component.azure.storage.blob.transform.AzureStorageBlobCloudEventDataTypeTransformer", + "name": "azure-storage-blob:application-cloudevents" + } + ] +} + diff --git a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/transform/AzureStorageBlobCloudEventDataTypeTransformer.java b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/transform/AzureStorageBlobCloudEventDataTypeTransformer.java index 021f7c84cfa..3c35ffb8f9c 100644 --- a/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/transform/AzureStorageBlobCloudEventDataTypeTransformer.java +++ b/components/camel-azure/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/transform/AzureStorageBlobCloudEventDataTypeTransformer.java @@ -31,7 +31,8 @@ import org.apache.camel.spi.Transformer; * Output data type represents Azure Storage Blob get blob response as CloudEvent V1. The data type sets Camel specific * CloudEvent headers on the exchange. */ -@DataTypeTransformer(name = "azure-storage-blob:application-cloudevents") +@DataTypeTransformer(name = "azure-storage-blob:application-cloudevents", + description = "Adds CloudEvent headers to the Camel message with Azure Store Blob information") public class AzureStorageBlobCloudEventDataTypeTransformer extends Transformer { @Override diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/DataTypeTransformer.java b/core/camel-api/src/main/java/org/apache/camel/spi/DataTypeTransformer.java index 9d3de679f6a..24a6a757501 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/DataTypeTransformer.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/DataTypeTransformer.java @@ -53,4 +53,9 @@ public @interface DataTypeTransformer { */ String toType() default ""; + /** + * A human-readable description of what this transformer can do. + */ + String description() default ""; + } diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/transformers.json b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/transformers.json new file mode 100644 index 00000000000..9fea52e4022 --- /dev/null +++ b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/transformers.json @@ -0,0 +1,16 @@ +{ + "groupId": "org.apache.camel", + "artifactId": "camel-core-processor", + "version": "4.4.0-SNAPSHOT", + "transformers": [ + { + "className": "org.apache.camel.processor.transformer.ByteArrayDataTypeTransformer", + "name": "application-octet-stream" + }, + { + "className": "org.apache.camel.processor.transformer.StringDataTypeTransformer", + "name": "text-plain" + } + ] +} + diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java index 3c11ac2bc82..75f047dae3c 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateDataTypeTransformerMojo.java @@ -140,6 +140,10 @@ public class GenerateDataTypeTransformerMojo extends AbstractGeneratorMojo { if (to != null) { model.setFrom(to.value().toString()); } + var desc = a.value("description"); + if (desc != null) { + model.setDescription(desc.value().toString()); + } models.add(model); }); models.sort(Comparator.comparing(DataTypeTransformerModel::getName)); @@ -166,6 +170,10 @@ public class GenerateDataTypeTransformerMojo extends AbstractGeneratorMojo { private JsonObject asJsonObject(DataTypeTransformerModel model) { JsonObject jo = new JsonObject(); + // we need to know the maven GAV also + jo.put("groupId", project.getGroupId()); + jo.put("artifactId", project.getArtifactId()); + jo.put("version", project.getVersion()); jo.put("className", model.getClassName()); jo.put("name", model.getName()); if (model.getFrom() != null) { @@ -174,11 +182,10 @@ public class GenerateDataTypeTransformerMojo extends AbstractGeneratorMojo { if (model.getTo() != null) { jo.put("to", model.getTo()); } + if (model.getDescription() != null) { + jo.put("description", model.getDescription()); + } return jo; } - private String sanitizeFileName(String fileName) { - return fileName.replaceAll("[^A-Za-z0-9-]", "-"); - } - }
