You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2023/10/20 07:37:01 UTC

[camel] branch main updated (5f36146846e -> 73faf80b629)

This is an automated email from the ASF dual-hosted git repository.

fmariani pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 5f36146846e Remove outdated walk-throughs in documentation (#11778)
     new 65ef40c3055 auto generate META-INF content for DataTypeTransformer
     new 73faf80b629 Align generated folder structure to Camel one

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../transformer/aws2-s3-application-cloudevents    |  2 ++
 .../transformer/aws2-s3-application-cloudevents    | 18 ------------------
 .../camel/transformer/application-cloudevents-json |  2 ++
 .../camel/transformer/http-application-cloudevents |  2 ++
 .../transformer/application-cloudevents-json       | 18 ------------------
 .../transformer/http-application-cloudevents       | 18 ------------------
 .../org/apache/camel/spi/DataTypeTransformer.java  |  3 +++
 .../impl/engine/DefaultTransformerResolver.java    |  4 ++--
 .../camel/transformer/application-octet-stream     |  2 ++
 .../org/apache/camel/transformer/text-plain        |  2 ++
 .../datatype/transformer/application-octet-stream  | 18 ------------------
 .../apache/camel/datatype/transformer/plain-text   | 18 ------------------
 .../engine/DefaultTransformerRegistryTest.java     |  2 +-
 .../engine/DefaultTransformerResolverTest.java     |  2 +-
 .../transformer/StringDataTypeTransformerTest.java |  2 +-
 .../camel/{datatype => }/transformer/foo-json      |  0
 .../camel/{datatype => }/transformer/lowercase     |  0
 .../camel/{datatype => }/transformer/uppercase     |  0
 .../camel/maven/packaging/SpiGeneratorMojo.java    | 22 ++++++++++++++++++----
 19 files changed, 36 insertions(+), 99 deletions(-)
 create mode 100644 components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/transformer/aws2-s3-application-cloudevents
 delete mode 100644 components/camel-aws/camel-aws2-s3/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents
 create mode 100644 components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/transformer/application-cloudevents-json
 create mode 100644 components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/transformer/http-application-cloudevents
 delete mode 100644 components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json
 delete mode 100644 components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents
 create mode 100644 core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/application-octet-stream
 create mode 100644 core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/text-plain
 delete mode 100644 core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream
 delete mode 100644 core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/plain-text
 rename core/camel-core/src/test/resources/META-INF/services/org/apache/camel/{datatype => }/transformer/foo-json (100%)
 rename core/camel-core/src/test/resources/META-INF/services/org/apache/camel/{datatype => }/transformer/lowercase (100%)
 rename core/camel-core/src/test/resources/META-INF/services/org/apache/camel/{datatype => }/transformer/uppercase (100%)


[camel] 02/02: Align generated folder structure to Camel one

Posted by fm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 73faf80b629697d05dc3b08e28c6631ca14ee271
Author: Croway <fe...@gmail.com>
AuthorDate: Thu Oct 19 17:47:28 2023 +0200

    Align generated folder structure to Camel one
---
 .../transformer/aws2-s3-application-cloudevents              |  0
 .../{datatype => }/transformer/application-cloudevents-json  |  0
 .../{datatype => }/transformer/http-application-cloudevents  |  0
 .../apache/camel/impl/engine/DefaultTransformerResolver.java |  4 ++--
 .../{datatype => }/transformer/application-octet-stream      |  0
 .../org/apache/camel/{datatype => }/transformer/text-plain   |  0
 .../camel/impl/engine/DefaultTransformerRegistryTest.java    |  2 +-
 .../camel/impl/engine/DefaultTransformerResolverTest.java    |  2 +-
 .../processor/transformer/StringDataTypeTransformerTest.java |  2 +-
 .../org/apache/camel/{datatype => }/transformer/foo-json     |  0
 .../org/apache/camel/{datatype => }/transformer/lowercase    |  0
 .../org/apache/camel/{datatype => }/transformer/uppercase    |  0
 .../org/apache/camel/maven/packaging/SpiGeneratorMojo.java   | 12 +++---------
 13 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/transformer/aws2-s3-application-cloudevents
similarity index 100%
rename from components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents
rename to components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/transformer/aws2-s3-application-cloudevents
diff --git a/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json b/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/transformer/application-cloudevents-json
similarity index 100%
rename from components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json
rename to components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/transformer/application-cloudevents-json
diff --git a/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents b/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/transformer/http-application-cloudevents
similarity index 100%
rename from components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents
rename to components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/transformer/http-application-cloudevents
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
index 6099e79ca31..28939133adf 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
@@ -30,11 +30,11 @@ import org.slf4j.LoggerFactory;
 /**
  * The default implementation of {@link org.apache.camel.spi.TransformerResolver} which tries to find components by
  * using the URI scheme prefix and searching for a file of the URI scheme name in the
- * <b>META-INF/services/org/apache/camel/datatype/transformer/</b> directory on the classpath.
+ * <b>META-INF/services/org/apache/camel/transformer/</b> directory on the classpath.
  */
 public class DefaultTransformerResolver implements TransformerResolver<TransformerKey> {
 
-    public static final String DATA_TYPE_TRANSFORMER_RESOURCE_PATH = "META-INF/services/org/apache/camel/datatype/transformer/";
+    public static final String DATA_TYPE_TRANSFORMER_RESOURCE_PATH = "META-INF/services/org/apache/camel/transformer/";
 
     private static final Logger LOG = LoggerFactory.getLogger(DefaultTransformerResolver.class);
 
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/application-octet-stream
similarity index 100%
rename from core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream
rename to core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/application-octet-stream
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/text-plain b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/text-plain
similarity index 100%
rename from core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/text-plain
rename to core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/transformer/text-plain
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerRegistryTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerRegistryTest.java
index a7de0a24a40..7cdecd343cc 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerRegistryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerRegistryTest.java
@@ -30,7 +30,7 @@ class DefaultTransformerRegistryTest {
 
     @Test
     public void shouldLookupDefaultDataTypeConverters() throws Exception {
-        Transformer transformer = dataTypeRegistry.resolveTransformer(new TransformerKey("plain-text"));
+        Transformer transformer = dataTypeRegistry.resolveTransformer(new TransformerKey("text-plain"));
         Assertions.assertNotNull(transformer);
         Assertions.assertEquals(StringDataTypeTransformer.class, transformer.getClass());
         transformer = dataTypeRegistry.resolveTransformer(new TransformerKey("application-octet-stream"));
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerResolverTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerResolverTest.java
index b7b17d9d354..1f62d78b2d1 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerResolverTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultTransformerResolverTest.java
@@ -51,7 +51,7 @@ class DefaultTransformerResolverTest {
 
     @Test
     public void shouldResolveDataTypeTransformers() throws Exception {
-        Transformer transformer = resolver.resolve(new TransformerKey("plain-text"), camelContext);
+        Transformer transformer = resolver.resolve(new TransformerKey("text-plain"), camelContext);
         Assertions.assertNotNull(transformer);
         Assertions.assertEquals(StringDataTypeTransformer.class, transformer.getClass());
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/transformer/StringDataTypeTransformerTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/transformer/StringDataTypeTransformerTest.java
index 25b70416c06..76f44f16681 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/transformer/StringDataTypeTransformerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/transformer/StringDataTypeTransformerTest.java
@@ -76,7 +76,7 @@ public class StringDataTypeTransformerTest {
     @Test
     public void shouldLookupDataType() throws Exception {
         DefaultTransformerRegistry dataTypeRegistry = new DefaultTransformerRegistry(camelContext);
-        Transformer transformer = dataTypeRegistry.resolveTransformer(new TransformerKey("plain-text"));
+        Transformer transformer = dataTypeRegistry.resolveTransformer(new TransformerKey("text-plain"));
         Assertions.assertNotNull(transformer);
     }
 
diff --git a/core/camel-core/src/test/resources/META-INF/services/org/apache/camel/datatype/transformer/foo-json b/core/camel-core/src/test/resources/META-INF/services/org/apache/camel/transformer/foo-json
similarity index 100%
rename from core/camel-core/src/test/resources/META-INF/services/org/apache/camel/datatype/transformer/foo-json
rename to core/camel-core/src/test/resources/META-INF/services/org/apache/camel/transformer/foo-json
diff --git a/core/camel-core/src/test/resources/META-INF/services/org/apache/camel/datatype/transformer/lowercase b/core/camel-core/src/test/resources/META-INF/services/org/apache/camel/transformer/lowercase
similarity index 100%
rename from core/camel-core/src/test/resources/META-INF/services/org/apache/camel/datatype/transformer/lowercase
rename to core/camel-core/src/test/resources/META-INF/services/org/apache/camel/transformer/lowercase
diff --git a/core/camel-core/src/test/resources/META-INF/services/org/apache/camel/datatype/transformer/uppercase b/core/camel-core/src/test/resources/META-INF/services/org/apache/camel/transformer/uppercase
similarity index 100%
rename from core/camel-core/src/test/resources/META-INF/services/org/apache/camel/datatype/transformer/uppercase
rename to core/camel-core/src/test/resources/META-INF/services/org/apache/camel/transformer/uppercase
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
index 085f09204b4..75be1f2a493 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
@@ -145,17 +145,13 @@ public class SpiGeneratorMojo extends AbstractGeneratorMojo {
                     pvals = annotation.value().asString();
                 }
                 for (String pval : pvals.split(",")) {
+                    pval = sanitizeFileName(pval);
                     StringBuilder sb = new StringBuilder();
                     sb.append("# ").append(GENERATED_MSG).append(NL).append("class=").append(className).append(NL);
                     if (ServiceFactory.JDK_SERVICE.equals(sfa.value().asString())) {
                         updateResource(resourcesOutputDir.toPath(),
                                 "META-INF/services/org/apache/camel/" + pval,
                                 sb.toString());
-                    } else if ("transformer".equals(sfa.value().asString())) {
-                        pval = cleanUpValue(pval);
-                        updateResource(resourcesOutputDir.toPath(),
-                                "META-INF/services/org/apache/camel/datatype/" + sfa.value().asString() + "/" + pval,
-                                sb.toString());
                     } else {
                         updateResource(resourcesOutputDir.toPath(),
                                 "META-INF/services/org/apache/camel/" + sfa.value().asString() + "/" + pval,
@@ -166,10 +162,8 @@ public class SpiGeneratorMojo extends AbstractGeneratorMojo {
         }
     }
 
-    private String cleanUpValue(String pval) {
-        return pval
-                .replace(":", "-")
-                .replace("+", "-");
+    private String sanitizeFileName(String fileName) {
+        return fileName.replaceAll("[^A-Za-z0-9-]", "-");
     }
 
     private boolean isLocal(String className) {


[camel] 01/02: auto generate META-INF content for DataTypeTransformer

Posted by fm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 65ef40c3055aaae0d0a08442e6050c99e6f25327
Author: Croway <fe...@gmail.com>
AuthorDate: Thu Oct 19 15:57:07 2023 +0200

    auto generate META-INF content for DataTypeTransformer
---
 .../transformer/aws2-s3-application-cloudevents    |  2 ++
 .../transformer/aws2-s3-application-cloudevents    | 18 --------------
 .../transformer/application-cloudevents-json       |  2 ++
 .../transformer/http-application-cloudevents       |  2 ++
 .../transformer/application-cloudevents-json       | 18 --------------
 .../transformer/http-application-cloudevents       | 18 --------------
 .../org/apache/camel/spi/DataTypeTransformer.java  |  3 +++
 .../datatype/transformer/application-octet-stream  |  2 ++
 .../apache/camel/datatype/transformer/text-plain   |  2 ++
 .../datatype/transformer/application-octet-stream  | 18 --------------
 .../apache/camel/datatype/transformer/plain-text   | 18 --------------
 .../camel/maven/packaging/SpiGeneratorMojo.java    | 28 ++++++++++++++++++----
 12 files changed, 37 insertions(+), 94 deletions(-)

diff --git a/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents
new file mode 100644
index 00000000000..78f1be83b8c
--- /dev/null
+++ b/components/camel-aws/camel-aws2-s3/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.s3.transform.AWS2S3CloudEventDataTypeTransformer
diff --git a/components/camel-aws/camel-aws2-s3/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents b/components/camel-aws/camel-aws2-s3/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents
deleted file mode 100644
index ec5793a97f6..00000000000
--- a/components/camel-aws/camel-aws2-s3/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/aws2-s3-application-cloudevents
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-class=org.apache.camel.component.aws2.s3.transform.AWS2S3CloudEventDataTypeTransformer
diff --git a/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json b/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json
new file mode 100644
index 00000000000..ce4e00dc859
--- /dev/null
+++ b/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.cloudevents.transformer.CloudEventJsonDataTypeTransformer
diff --git a/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents b/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents
new file mode 100644
index 00000000000..29210d5ee0b
--- /dev/null
+++ b/components/camel-cloudevents/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.cloudevents.transformer.CloudEventHttpDataTypeTransformer
diff --git a/components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json b/components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json
deleted file mode 100644
index d380ef770b9..00000000000
--- a/components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-cloudevents-json
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-class=org.apache.camel.component.cloudevents.transformer.CloudEventJsonDataTypeTransformer
diff --git a/components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents b/components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents
deleted file mode 100644
index ca4580b0f73..00000000000
--- a/components/camel-cloudevents/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/http-application-cloudevents
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-class=org.apache.camel.component.cloudevents.transformer.CloudEventHttpDataTypeTransformer
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 b047ed367bd..062e6754543 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
@@ -23,6 +23,8 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import org.apache.camel.spi.annotations.ServiceFactory;
+
 /**
  * Annotation to configure a data type transformer with either specifying its name or from/to data types.
  * <p/>
@@ -32,6 +34,7 @@ import java.lang.annotation.Target;
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
 @Target({ ElementType.TYPE })
+@ServiceFactory("transformer")
 public @interface DataTypeTransformer {
 
     /**
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream
new file mode 100644
index 00000000000..6fa92135ded
--- /dev/null
+++ b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.processor.transformer.ByteArrayDataTypeTransformer
diff --git a/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/text-plain b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/text-plain
new file mode 100644
index 00000000000..6cb700e9c21
--- /dev/null
+++ b/core/camel-core-processor/src/generated/resources/META-INF/services/org/apache/camel/datatype/transformer/text-plain
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.processor.transformer.StringDataTypeTransformer
diff --git a/core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream b/core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream
deleted file mode 100644
index 6d209870e44..00000000000
--- a/core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/application-octet-stream
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-class=org.apache.camel.processor.transformer.ByteArrayDataTypeTransformer
diff --git a/core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/plain-text b/core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/plain-text
deleted file mode 100644
index a2347583375..00000000000
--- a/core/camel-core-processor/src/main/resources/META-INF/services/org/apache/camel/datatype/transformer/plain-text
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-class=org.apache.camel.processor.transformer.StringDataTypeTransformer
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
index b53ce2b3cd0..085f09204b4 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpiGeneratorMojo.java
@@ -134,15 +134,29 @@ public class SpiGeneratorMojo extends AbstractGeneratorMojo {
                 if (!isLocal(className)) {
                     continue;
                 }
-                String pvals = annotation.value().asString();
+                String pvals;
+                // @DataTypeTransformer uses name instead of value
+                if (annotation.value() == null) {
+                    pvals = annotation.values().stream()
+                            .filter(annotationValue -> "name".equals(annotationValue.name()))
+                            .map(name -> name.value().toString())
+                            .findFirst().get();
+                } else {
+                    pvals = annotation.value().asString();
+                }
                 for (String pval : pvals.split(",")) {
+                    StringBuilder sb = new StringBuilder();
+                    sb.append("# ").append(GENERATED_MSG).append(NL).append("class=").append(className).append(NL);
                     if (ServiceFactory.JDK_SERVICE.equals(sfa.value().asString())) {
                         updateResource(resourcesOutputDir.toPath(),
                                 "META-INF/services/org/apache/camel/" + pval,
-                                "# " + GENERATED_MSG + NL + "class=" + className + NL);
+                                sb.toString());
+                    } else if ("transformer".equals(sfa.value().asString())) {
+                        pval = cleanUpValue(pval);
+                        updateResource(resourcesOutputDir.toPath(),
+                                "META-INF/services/org/apache/camel/datatype/" + sfa.value().asString() + "/" + pval,
+                                sb.toString());
                     } else {
-                        StringBuilder sb = new StringBuilder();
-                        sb.append("# ").append(GENERATED_MSG).append(NL).append("class=").append(className).append(NL);
                         updateResource(resourcesOutputDir.toPath(),
                                 "META-INF/services/org/apache/camel/" + sfa.value().asString() + "/" + pval,
                                 sb.toString());
@@ -152,6 +166,12 @@ public class SpiGeneratorMojo extends AbstractGeneratorMojo {
         }
     }
 
+    private String cleanUpValue(String pval) {
+        return pval
+                .replace(":", "-")
+                .replace("+", "-");
+    }
+
     private boolean isLocal(String className) {
         Path output = Paths.get(project.getBuild().getOutputDirectory());
         Path file = output.resolve(className.replace('.', '/') + ".class");