This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 79678fcf23ac3454d652d88230e5948c8e4341bd Author: klease <[email protected]> AuthorDate: Thu Feb 17 12:41:50 2022 +0100 CAMEL-17308: Remove "verb" as an allowed CAMEL REST YAML element. (#6962) * CAMEL-17308: Remove "verb" as an allowed CAMEL REST YAML element. This also affects the generated XML model which also will only accept the XML elements for different methods such as get, put and post. Remove test cases in RestTest.groovy using verb. * Add a note in the 3.16 update document for the removal of verb-based REST definitions in YAML and XML --- .../org/apache/camel/model/rest/jaxb.index | 1 - .../apache/camel/model/rest/VerbDefinition.java | 2 - .../java/org/apache/camel/xml/in/ModelParser.java | 1 - .../ROOT/pages/camel-3x-upgrade-guide-3_16.adoc | 4 + .../dsl/yaml/deserializers/ModelDeserializers.java | 170 +-------------------- .../deserializers/ModelDeserializersResolver.java | 2 - .../src/generated/resources/camel-yaml-dsl.json | 85 +---------- .../src/generated/resources/camelYamlDsl.json | 85 +---------- .../org/apache/camel/dsl/yaml/RestTest.groovy | 10 +- 9 files changed, 12 insertions(+), 348 deletions(-) diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index index 41cacf5..222b310 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/jaxb.index @@ -26,4 +26,3 @@ RestSecurityOAuth2 RestSecurityOpenIdConnect RestsDefinition SecurityDefinition -VerbDefinition diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/VerbDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/VerbDefinition.java index 3fc65e5..7edb7f3 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/VerbDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/VerbDefinition.java @@ -25,7 +25,6 @@ import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import org.apache.camel.model.Block; @@ -41,7 +40,6 @@ import org.apache.camel.spi.Metadata; * Rest command */ @Metadata(label = "rest") -@XmlRootElement(name = "verb") @XmlAccessorType(XmlAccessType.FIELD) public class VerbDefinition extends OptionalIdentifiedDefinition<VerbDefinition> implements Block, OutputNode { diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java index 9df72d5..9870958 100644 --- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java +++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java @@ -1087,7 +1087,6 @@ public class ModelParser extends BaseParser { }, (def, key) -> { switch (key) { case "delete": doAdd(doParseDeleteVerbDefinition(), def.getVerbs(), def::setVerbs); break; - case "verb": doAdd(doParseVerbDefinition(), def.getVerbs(), def::setVerbs); break; case "get": doAdd(doParseGetVerbDefinition(), def.getVerbs(), def::setVerbs); break; case "head": doAdd(doParseHeadVerbDefinition(), def.getVerbs(), def::setVerbs); break; case "patch": doAdd(doParsePatchVerbDefinition(), def.getVerbs(), def::setVerbs); break; diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc index 04e8366..acc9c58 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_16.adoc @@ -104,6 +104,10 @@ The option `camel.main.packageScanRouteBuilders` has been renamed to `camel.main Using configuration classes must now implement the interface `org.apache.camel.main.CamelConfiguration` and the `configure` method now takes a `CamelContext` as argument. +=== camel-yaml-dsl and camel-xml-dsl REST services +The verb-based definition is no longer supported for defining a REST service in YAML or XML. +Only the method-based definitions (get, post, etc) are supported. + === camel-any23 The option `baseURI` is renamed to `baseUri`. 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 c31e5f8..41e10db 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 @@ -221,7 +221,6 @@ import org.apache.camel.model.rest.RestSecurityOAuth2; import org.apache.camel.model.rest.RestSecurityOpenIdConnect; import org.apache.camel.model.rest.RestsDefinition; import org.apache.camel.model.rest.SecurityDefinition; -import org.apache.camel.model.rest.VerbDefinition; import org.apache.camel.model.transformer.CustomTransformerDefinition; import org.apache.camel.model.transformer.DataFormatTransformerDefinition; import org.apache.camel.model.transformer.EndpointTransformerDefinition; @@ -11880,7 +11879,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport { @YamlProperty(name = "security-requirements", type = "object:org.apache.camel.model.rest.RestSecuritiesRequirement"), @YamlProperty(name = "skip-binding-on-error-code", type = "string"), @YamlProperty(name = "tag", type = "string"), - @YamlProperty(name = "verb", type = "array:org.apache.camel.model.rest.VerbDefinition") + @YamlProperty(name = "verbs", type = "array:org.apache.camel.model.rest.VerbDefinition") } ) public static class RestDefinitionDeserializer extends YamlDeserializerBase<RestDefinition> { @@ -12012,7 +12011,7 @@ public final class ModelDeserializers extends YamlDeserializerSupport { target.setVerbs(existing); break; } - case "verb": { + case "verbs": { java.util.List<org.apache.camel.model.rest.VerbDefinition> val = asFlatList(node, org.apache.camel.model.rest.VerbDefinition.class); target.setVerbs(val); break; @@ -17486,171 +17485,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport { } @YamlType( - types = org.apache.camel.model.rest.VerbDefinition.class, - order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, - nodes = "verb", - properties = { - @YamlProperty(name = "api-docs", type = "string"), - @YamlProperty(name = "binding-mode", type = "string"), - @YamlProperty(name = "client-request-validation", type = "string"), - @YamlProperty(name = "consumes", type = "string"), - @YamlProperty(name = "deprecated", type = "boolean"), - @YamlProperty(name = "description", type = "string"), - @YamlProperty(name = "enable-cors", type = "string"), - @YamlProperty(name = "id", type = "string"), - @YamlProperty(name = "method", type = "string"), - @YamlProperty(name = "out-type", type = "string"), - @YamlProperty(name = "param", type = "array:org.apache.camel.model.rest.RestOperationParamDefinition"), - @YamlProperty(name = "produces", type = "string"), - @YamlProperty(name = "response-message", type = "array:org.apache.camel.model.rest.RestOperationResponseMsgDefinition"), - @YamlProperty(name = "route", type = "object:org.apache.camel.model.RouteDefinition"), - @YamlProperty(name = "route-id", type = "string"), - @YamlProperty(name = "security", type = "array:org.apache.camel.model.rest.SecurityDefinition"), - @YamlProperty(name = "skip-binding-on-error-code", type = "string"), - @YamlProperty(name = "steps", type = "array:org.apache.camel.model.ProcessorDefinition"), - @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") - } - ) - public static class VerbDefinitionDeserializer extends YamlDeserializerBase<VerbDefinition> { - public VerbDefinitionDeserializer() { - super(VerbDefinition.class); - } - - @Override - protected VerbDefinition newInstance() { - return new VerbDefinition(); - } - - @Override - protected boolean setProperty(VerbDefinition target, String propertyKey, - String propertyName, Node node) { - switch(propertyKey) { - case "api-docs": { - String val = asText(node); - target.setApiDocs(val); - break; - } - case "binding-mode": { - String val = asText(node); - target.setBindingMode(val); - break; - } - case "client-request-validation": { - String val = asText(node); - target.setClientRequestValidation(val); - break; - } - case "consumes": { - String val = asText(node); - target.setConsumes(val); - break; - } - case "deprecated": { - String val = asText(node); - target.setDeprecated(java.lang.Boolean.valueOf(val)); - break; - } - case "enable-cors": { - String val = asText(node); - target.setEnableCORS(val); - break; - } - case "method": { - String val = asText(node); - target.setMethod(val); - break; - } - case "out-type": { - String val = asText(node); - target.setOutType(val); - break; - } - case "param": { - java.util.List<org.apache.camel.model.rest.RestOperationParamDefinition> val = asFlatList(node, org.apache.camel.model.rest.RestOperationParamDefinition.class); - target.setParams(val); - break; - } - case "produces": { - String val = asText(node); - target.setProduces(val); - break; - } - case "response-message": { - java.util.List<org.apache.camel.model.rest.RestOperationResponseMsgDefinition> val = asFlatList(node, org.apache.camel.model.rest.RestOperationResponseMsgDefinition.class); - target.setResponseMsgs(val); - break; - } - case "route-id": { - String val = asText(node); - target.setRouteId(val); - break; - } - case "security": { - java.util.List<org.apache.camel.model.rest.SecurityDefinition> val = asFlatList(node, org.apache.camel.model.rest.SecurityDefinition.class); - target.setSecurity(val); - break; - } - case "skip-binding-on-error-code": { - String val = asText(node); - target.setSkipBindingOnErrorCode(val); - break; - } - case "to-or-route": { - MappingNode val = asMappingNode(node); - setProperties(target, val); - break; - } - case "to": { - org.apache.camel.model.ToDefinition val = asType(node, org.apache.camel.model.ToDefinition.class); - target.setToOrRoute(val); - break; - } - case "to-d": { - org.apache.camel.model.ToDynamicDefinition val = asType(node, org.apache.camel.model.ToDynamicDefinition.class); - target.setToOrRoute(val); - break; - } - case "route": { - org.apache.camel.model.RouteDefinition val = asType(node, org.apache.camel.model.RouteDefinition.class); - target.setToOrRoute(val); - break; - } - case "type": { - String val = asText(node); - target.setType(val); - break; - } - case "uri": { - String val = asText(node); - target.setUri(val); - break; - } - case "id": { - String val = asText(node); - target.setId(val); - break; - } - case "description": { - org.apache.camel.model.DescriptionDefinition val = asType(node, org.apache.camel.model.DescriptionDefinition.class); - target.setDescription(val); - break; - } - case "steps": { - setSteps(target, node); - break; - } - default: { - return false; - } - } - return true; - } - } - - @YamlType( types = org.apache.camel.model.loadbalancer.WeightedLoadBalancerDefinition.class, order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1, nodes = "weighted", diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java index 1a2ca6f..00e6a75 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java @@ -509,8 +509,6 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve case "org.apache.camel.model.ValidateDefinition": return new ModelDeserializers.ValidateDefinitionDeserializer(); case "validators": return new ModelDeserializers.ValidatorsDefinitionDeserializer(); case "org.apache.camel.model.validator.ValidatorsDefinition": return new ModelDeserializers.ValidatorsDefinitionDeserializer(); - case "verb": return new ModelDeserializers.VerbDefinitionDeserializer(); - case "org.apache.camel.model.rest.VerbDefinition": return new ModelDeserializers.VerbDefinitionDeserializer(); case "weighted": return new ModelDeserializers.WeightedLoadBalancerDefinitionDeserializer(); case "org.apache.camel.model.loadbalancer.WeightedLoadBalancerDefinition": return new ModelDeserializers.WeightedLoadBalancerDefinitionDeserializer(); case "when": return new ModelDeserializers.WhenDefinitionDeserializer(); diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json index 11ec70d..550a74b 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json @@ -7267,7 +7267,7 @@ "tag" : { "type" : "string" }, - "verb" : { + "verbs" : { "type" : "array", "items" : { "$ref" : "#/items/definitions/org.apache.camel.model.rest.VerbDefinition" @@ -7563,89 +7563,6 @@ }, "required" : [ "key" ] }, - "org.apache.camel.model.rest.VerbDefinition" : { - "type" : "object", - "properties" : { - "api-docs" : { - "type" : "string" - }, - "binding-mode" : { - "type" : "string" - }, - "client-request-validation" : { - "type" : "string" - }, - "consumes" : { - "type" : "string" - }, - "deprecated" : { - "type" : "boolean" - }, - "description" : { - "type" : "string" - }, - "enable-cors" : { - "type" : "string" - }, - "id" : { - "type" : "string" - }, - "method" : { - "type" : "string" - }, - "out-type" : { - "type" : "string" - }, - "param" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.rest.RestOperationParamDefinition" - } - }, - "produces" : { - "type" : "string" - }, - "response-message" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.rest.RestOperationResponseMsgDefinition" - } - }, - "route" : { - "$ref" : "#/items/definitions/org.apache.camel.model.RouteDefinition" - }, - "route-id" : { - "type" : "string" - }, - "security" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.rest.SecurityDefinition" - } - }, - "skip-binding-on-error-code" : { - "type" : "string" - }, - "steps" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.ProcessorDefinition" - } - }, - "to" : { - "$ref" : "#/items/definitions/org.apache.camel.model.ToDefinition" - }, - "to-d" : { - "$ref" : "#/items/definitions/org.apache.camel.model.ToDynamicDefinition" - }, - "type" : { - "type" : "string" - }, - "uri" : { - "type" : "string" - } - } - }, "org.apache.camel.model.transformer.CustomTransformerDefinition" : { "type" : "object", "properties" : { diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json index 23e16e1..735ccd4 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json @@ -7165,7 +7165,7 @@ "tag" : { "type" : "string" }, - "verb" : { + "verbs" : { "type" : "array", "items" : { "$ref" : "#/items/definitions/org.apache.camel.model.rest.VerbDefinition" @@ -7461,89 +7461,6 @@ }, "required" : [ "key" ] }, - "org.apache.camel.model.rest.VerbDefinition" : { - "type" : "object", - "properties" : { - "apiDocs" : { - "type" : "string" - }, - "bindingMode" : { - "type" : "string" - }, - "clientRequestValidation" : { - "type" : "string" - }, - "consumes" : { - "type" : "string" - }, - "deprecated" : { - "type" : "boolean" - }, - "description" : { - "type" : "string" - }, - "enableCors" : { - "type" : "string" - }, - "id" : { - "type" : "string" - }, - "method" : { - "type" : "string" - }, - "outType" : { - "type" : "string" - }, - "param" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.rest.RestOperationParamDefinition" - } - }, - "produces" : { - "type" : "string" - }, - "responseMessage" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.rest.RestOperationResponseMsgDefinition" - } - }, - "route" : { - "$ref" : "#/items/definitions/org.apache.camel.model.RouteDefinition" - }, - "routeId" : { - "type" : "string" - }, - "security" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.rest.SecurityDefinition" - } - }, - "skipBindingOnErrorCode" : { - "type" : "string" - }, - "steps" : { - "type" : "array", - "items" : { - "$ref" : "#/items/definitions/org.apache.camel.model.ProcessorDefinition" - } - }, - "to" : { - "$ref" : "#/items/definitions/org.apache.camel.model.ToDefinition" - }, - "toD" : { - "$ref" : "#/items/definitions/org.apache.camel.model.ToDynamicDefinition" - }, - "type" : { - "type" : "string" - }, - "uri" : { - "type" : "string" - } - } - }, "org.apache.camel.model.transformer.CustomTransformerDefinition" : { "type" : "object", "properties" : { diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RestTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RestTest.groovy index 737dd1a..e1837fc 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RestTest.groovy +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RestTest.groovy @@ -50,9 +50,8 @@ class RestTest extends YamlTestSupport { - name: myRestConsumerFactory type: ${MockRestConsumerFactory.name} - rest: - verb: - - method: get - uri: "/foo" + get: + - uri: "/foo" type: ${MyFooBar.name} out-type: ${MyBean.name} to: "direct:bar" @@ -86,9 +85,8 @@ class RestTest extends YamlTestSupport { - name: myRestConsumerFactory type: ${MockRestConsumerFactory.name} - rest: - verb: - - method: get - uri: "/foo" + get: + - uri: "/foo" type: ${MyFooBar.name} out-type: ${MyBean.name} steps:
