You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/02/18 10:50:41 UTC

[camel] 07/07: camel-yaml-dsl - Add deprecated information

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

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

commit 87a0c20c97f764872beabbd63d15ade774de507f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 18 11:30:28 2022 +0100

    camel-yaml-dsl - Add deprecated information
---
 .../apache/camel/spi/annotations/YamlProperty.java |  2 ++
 .../dsl/yaml/deserializers/ModelDeserializers.java | 26 +++++++++++-----------
 .../dsl/yaml/GenerateYamlDeserializersMojo.java    | 22 +++++++++---------
 .../maven/dsl/yaml/GenerateYamlSupportMojo.java    | 23 ++++++++++++++-----
 .../apache/camel/spi/annotations/YamlProperty.java |  2 ++
 5 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/YamlProperty.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/YamlProperty.java
index 484fc71..ac4682b 100644
--- a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/YamlProperty.java
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/YamlProperty.java
@@ -32,6 +32,8 @@ public @interface YamlProperty {
 
     String description() default "";
 
+    boolean deprecated() default false;
+
     boolean required() default false;
 
     String[] values() default {};
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index a850823..18fa1ef 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -909,7 +909,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
             nodes = "bean",
             properties = {
                     @YamlProperty(name = "bean-type", type = "string"),
-                    @YamlProperty(name = "cache", type = "boolean"),
+                    @YamlProperty(name = "cache", type = "boolean", deprecated = true),
                     @YamlProperty(name = "description", type = "string"),
                     @YamlProperty(name = "id", type = "string"),
                     @YamlProperty(name = "inherit-error-handler", type = "boolean"),
@@ -3999,7 +3999,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "to", type = "object:org.apache.camel.model.ToDefinition"),
                     @YamlProperty(name = "to-d", type = "object:org.apache.camel.model.ToDynamicDefinition"),
                     @YamlProperty(name = "type", type = "string"),
-                    @YamlProperty(name = "uri", type = "string")
+                    @YamlProperty(name = "uri", type = "string", deprecated = true)
             }
     )
     public static class DeleteDefinitionDeserializer extends YamlDeserializerBase<DeleteDefinition> {
@@ -5376,7 +5376,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "to", type = "object:org.apache.camel.model.ToDefinition"),
                     @YamlProperty(name = "to-d", type = "object:org.apache.camel.model.ToDynamicDefinition"),
                     @YamlProperty(name = "type", type = "string"),
-                    @YamlProperty(name = "uri", type = "string")
+                    @YamlProperty(name = "uri", type = "string", deprecated = true)
             }
     )
     public static class GetDefinitionDeserializer extends YamlDeserializerBase<GetDefinition> {
@@ -5819,7 +5819,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "to", type = "object:org.apache.camel.model.ToDefinition"),
                     @YamlProperty(name = "to-d", type = "object:org.apache.camel.model.ToDynamicDefinition"),
                     @YamlProperty(name = "type", type = "string"),
-                    @YamlProperty(name = "uri", type = "string")
+                    @YamlProperty(name = "uri", type = "string", deprecated = true)
             }
     )
     public static class HeadDefinitionDeserializer extends YamlDeserializerBase<HeadDefinition> {
@@ -8604,7 +8604,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "parallel-processing", type = "boolean"),
                     @YamlProperty(name = "share-unit-of-work", type = "boolean"),
                     @YamlProperty(name = "steps", type = "array:org.apache.camel.model.ProcessorDefinition"),
-                    @YamlProperty(name = "stop-on-aggregate-exception", type = "boolean"),
+                    @YamlProperty(name = "stop-on-aggregate-exception", type = "boolean", deprecated = true),
                     @YamlProperty(name = "stop-on-exception", type = "boolean"),
                     @YamlProperty(name = "strategy-method-allow-null", type = "boolean"),
                     @YamlProperty(name = "strategy-method-name", type = "string"),
@@ -9603,7 +9603,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "to", type = "object:org.apache.camel.model.ToDefinition"),
                     @YamlProperty(name = "to-d", type = "object:org.apache.camel.model.ToDynamicDefinition"),
                     @YamlProperty(name = "type", type = "string"),
-                    @YamlProperty(name = "uri", type = "string")
+                    @YamlProperty(name = "uri", type = "string", deprecated = true)
             }
     )
     public static class PatchDefinitionDeserializer extends YamlDeserializerBase<PatchDefinition> {
@@ -9986,7 +9986,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "to", type = "object:org.apache.camel.model.ToDefinition"),
                     @YamlProperty(name = "to-d", type = "object:org.apache.camel.model.ToDynamicDefinition"),
                     @YamlProperty(name = "type", type = "string"),
-                    @YamlProperty(name = "uri", type = "string")
+                    @YamlProperty(name = "uri", type = "string", deprecated = true)
             }
     )
     public static class PostDefinitionDeserializer extends YamlDeserializerBase<PostDefinition> {
@@ -10495,7 +10495,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "to", type = "object:org.apache.camel.model.ToDefinition"),
                     @YamlProperty(name = "to-d", type = "object:org.apache.camel.model.ToDynamicDefinition"),
                     @YamlProperty(name = "type", type = "string"),
-                    @YamlProperty(name = "uri", type = "string")
+                    @YamlProperty(name = "uri", type = "string", deprecated = true)
             }
     )
     public static class PutDefinitionDeserializer extends YamlDeserializerBase<PutDefinition> {
@@ -10688,7 +10688,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "parallel-aggregate", type = "boolean"),
                     @YamlProperty(name = "parallel-processing", type = "boolean"),
                     @YamlProperty(name = "share-unit-of-work", type = "boolean"),
-                    @YamlProperty(name = "stop-on-aggregate-exception", type = "boolean"),
+                    @YamlProperty(name = "stop-on-aggregate-exception", type = "boolean", deprecated = true),
                     @YamlProperty(name = "stop-on-exception", type = "boolean"),
                     @YamlProperty(name = "strategy-method-allow-null", type = "boolean"),
                     @YamlProperty(name = "strategy-method-name", type = "string"),
@@ -11623,8 +11623,8 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
             },
             properties = {
                     @YamlProperty(name = "api-component", type = "string"),
-                    @YamlProperty(name = "api-context-id-pattern", type = "string"),
-                    @YamlProperty(name = "api-context-listing", type = "boolean"),
+                    @YamlProperty(name = "api-context-id-pattern", type = "string", deprecated = true),
+                    @YamlProperty(name = "api-context-listing", type = "boolean", deprecated = true),
                     @YamlProperty(name = "api-context-path", type = "string"),
                     @YamlProperty(name = "api-context-route-id", type = "string"),
                     @YamlProperty(name = "api-host", type = "string"),
@@ -13552,7 +13552,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "inherit-error-handler", type = "boolean"),
                     @YamlProperty(name = "message-frequency", type = "number"),
                     @YamlProperty(name = "sample-period", type = "string"),
-                    @YamlProperty(name = "units", type = "string")
+                    @YamlProperty(name = "units", type = "string", deprecated = true)
             }
     )
     public static class SamplingDefinitionDeserializer extends YamlDeserializerBase<SamplingDefinition> {
@@ -14938,7 +14938,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "parallel-processing", type = "boolean"),
                     @YamlProperty(name = "share-unit-of-work", type = "boolean"),
                     @YamlProperty(name = "steps", type = "array:org.apache.camel.model.ProcessorDefinition"),
-                    @YamlProperty(name = "stop-on-aggregate-exception", type = "boolean"),
+                    @YamlProperty(name = "stop-on-aggregate-exception", type = "boolean", deprecated = true),
                     @YamlProperty(name = "stop-on-exception", type = "boolean"),
                     @YamlProperty(name = "strategy-method-allow-null", type = "boolean"),
                     @YamlProperty(name = "strategy-method-name", type = "string"),
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
index 010cf62..a25d526 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
@@ -952,7 +952,7 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
                     cb.addStatement("break");
 
                     annotations.add(
-                        yamlPropertyWithFormat(fieldName, "string", "binary", isRequired(field))
+                        yamlPropertyWithFormat(fieldName, "string", "binary", isRequired(field), isDeprecated(field))
                     );
                     break;
                 case "Z":
@@ -960,28 +960,28 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
                     cb.addStatement("boolean val = asBoolean(node)");
                     cb.addStatement("target.set$L(val)", StringHelper.capitalize(field.name()));
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "boolean", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "boolean", isRequired(field), isDeprecated(field)));
                     break;
                 case "I":
                 case "int":
                     cb.addStatement("int val = asInt(node)");
                     cb.addStatement("target.set$L(val)", StringHelper.capitalize(field.name()));
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "number", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "number", isRequired(field), isDeprecated(field)));
                     break;
                 case "J":
                 case "long":
                     cb.addStatement("long val = asLong(node)");
                     cb.addStatement("target.set$L(val)", StringHelper.capitalize(field.name()));
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "number", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "number", isRequired(field), isDeprecated(field)));
                     break;
                 case "D":
                 case "double":
                     cb.addStatement("double val = asDouble(node)");
                     cb.addStatement("target.set$L(val)", StringHelper.capitalize(field.name()));
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "number", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "number", isRequired(field), isDeprecated(field)));
                     break;
                 case "java.lang.String":
                     cb.addStatement("String val = asText(node)");
@@ -994,17 +994,17 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
 
                     switch (javaType) {
                         case "java.lang.Boolean":
-                            annotations.add(yamlProperty(fieldName, "boolean", isRequired(field)));
+                            annotations.add(yamlProperty(fieldName, "boolean", isRequired(field), isDeprecated(field)));
                             break;
                         case "java.lang.Integer":
                         case "java.lang.Short":
                         case "java.lang.Long":
                         case "java.lang.Float":
                         case "java.lang.Double":
-                            annotations.add(yamlProperty(fieldName, "number", isRequired(field)));
+                            annotations.add(yamlProperty(fieldName, "number", isRequired(field), isDeprecated(field)));
                             break;
                         default:
-                            annotations.add(yamlProperty(fieldName, "string", isRequired(field)));
+                            annotations.add(yamlProperty(fieldName, "string", isRequired(field), isDeprecated(field)));
                     }
 
                     break;
@@ -1012,7 +1012,7 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
                     cb.addStatement("java.lang.Class<?> val = asClass(node)");
                     cb.addStatement("target.set$L(val)", StringHelper.capitalize(field.name()));
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "string", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "string", isRequired(field), isDeprecated(field)));
                     break;
                 case "[Ljava.lang.Class;":
                     cb.addStatement("java.lang.Class<?>[] val = asClassArray(node)");
@@ -1027,13 +1027,13 @@ public class GenerateYamlDeserializersMojo extends GenerateYamlSupportMojo {
                     cb.addStatement("String val = asText(node)");
                     cb.addStatement("target.set$L($L.valueOf(val))", StringHelper.capitalize(field.name()), field.type().name().toString());
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "number", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "number", isRequired(field), isDeprecated(field)));
                     break;
                 case "java.lang.Boolean":
                     cb.addStatement("String val = asText(node)");
                     cb.addStatement("target.set$L($L.valueOf(val))", StringHelper.capitalize(field.name()), field.type().name().toString());
                     cb.addStatement("break");
-                    annotations.add(yamlProperty(fieldName, "boolean", isRequired(field)));
+                    annotations.add(yamlProperty(fieldName, "boolean", isRequired(field), isDeprecated(field)));
                     break;
                 default:
                     if (field.type().kind() == Type.Kind.CLASS) {
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSupportMojo.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSupportMojo.java
index 78c1459..46b48dc 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSupportMojo.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSupportMojo.java
@@ -61,6 +61,9 @@ public abstract class GenerateYamlSupportMojo extends AbstractMojo {
     public static final DotName CLASS_CLASS
             = DotName.createSimple("java.lang.Class");
 
+    public static final DotName DEPRECATED_ANNOTATION_CLASS
+            = DotName.createSimple("java.lang.Deprecated");
+
     public static final DotName XML_ROOT_ELEMENT_ANNOTATION_CLASS
             = DotName.createSimple("javax.xml.bind.annotation.XmlRootElement");
     public static final DotName XML_TYPE_CLASS
@@ -261,25 +264,28 @@ public abstract class GenerateYamlSupportMojo extends AbstractMojo {
     }
 
     protected static AnnotationSpec yamlProperty(String name, String type) {
-        return yamlProperty(name, type, false);
+        return yamlProperty(name, type, false, false);
     }
 
-    protected static AnnotationSpec yamlProperty(String name, String type, boolean required) {
+    protected static AnnotationSpec yamlProperty(String name, String type, boolean required, boolean deprecated) {
         AnnotationSpec.Builder builder = AnnotationSpec.builder(CN_YAML_PROPERTY);
         builder.addMember("name", "$S", name);
         builder.addMember("type", "$S", type);
         if (required) {
             builder.addMember("required", "$L", required);
         }
+        if (deprecated) {
+            builder.addMember("deprecated", "$L", deprecated);
+        }
 
         return builder.build();
     }
 
     protected static AnnotationSpec yamlPropertyWithFormat(String name, String type, String format) {
-        return yamlPropertyWithFormat(name, type, format, false);
+        return yamlPropertyWithFormat(name, type, format, false, false);
     }
 
-    protected static AnnotationSpec yamlPropertyWithFormat(String name, String type, String format, boolean required) {
+    protected static AnnotationSpec yamlPropertyWithFormat(String name, String type, String format, boolean required, boolean deprecated) {
         AnnotationSpec.Builder builder = AnnotationSpec.builder(CN_YAML_PROPERTY);
         builder.addMember("name", "$S", name);
         builder.addMember("type", "$S", type);
@@ -288,6 +294,9 @@ public abstract class GenerateYamlSupportMojo extends AbstractMojo {
         if (required) {
             builder.addMember("required", "$L", required);
         }
+        if (deprecated) {
+            builder.addMember("deprecated", "$L", deprecated);
+        }
 
         return builder.build();
     }
@@ -303,7 +312,7 @@ public abstract class GenerateYamlSupportMojo extends AbstractMojo {
     }
 
     protected static AnnotationSpec yamlPropertyWithSubtype(String name, String type, String subType, boolean required) {
-        return yamlProperty(name, type + ":" + subType, required);
+        return yamlProperty(name, type + ":" + subType, required, false);
     }
 
     // **************************
@@ -595,6 +604,10 @@ public abstract class GenerateYamlSupportMojo extends AbstractMojo {
                                 .orElse(false);
     }
 
+    protected boolean isDeprecated(FieldInfo fi) {
+        return fi.hasAnnotation(DEPRECATED_ANNOTATION_CLASS);
+    }
+
     protected boolean extendsType(Type type, DotName superType) {
         return extendsType(
             view.getClassByName(type.name()),
diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/YamlProperty.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/YamlProperty.java
index 484fc71..ac4682b 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/YamlProperty.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/YamlProperty.java
@@ -32,6 +32,8 @@ public @interface YamlProperty {
 
     String description() default "";
 
+    boolean deprecated() default false;
+
     boolean required() default false;
 
     String[] values() default {};