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 4ac0c311785d585ddebe6658ca111cb7d8fedcac Author: Claus Ibsen <[email protected]> AuthorDate: Sun Feb 20 11:31:56 2022 +0100 CAMEL-17673: camel-core-model - Cleanup Rest DSL --- .../apache/camel/openapi/RestOpenApiReader.java | 7 ++-- .../org/apache/camel/openapi/ComplexTypesTest.java | 2 +- ...RestOpenApiReaderEnableVendorExtensionTest.java | 4 --- .../openapi/V2SchemaForComplexTypesRequest.json | 3 +- .../openapi/V2SchemaForComplexTypesResponse.json | 3 +- .../openapi/V3SchemaForComplexTypesRequest.json | 3 +- .../openapi/V3SchemaForComplexTypesResponse.json | 3 +- .../camel/component/rest/DefaultRestRegistry.java | 12 ++----- .../apache/camel/swagger/RestSwaggerReader.java | 17 +++++---- .../apache/camel/swagger/RestSwaggerSupport.java | 4 +-- .../camel/swagger/RestSwaggerArrayEnumTest.java | 5 +-- .../RestSwaggerReaderApiDocsOverrideTest.java | 2 +- .../swagger/RestSwaggerReaderApiDocsTest.java | 2 +- .../swagger/RestSwaggerReaderDayOfWeekTest.java | 2 +- .../RestSwaggerReaderEmptyAllowableValuesTest.java | 2 +- ...RestSwaggerReaderEnableVendorExtensionTest.java | 4 +-- .../RestSwaggerReaderFileResponseModelTest.java | 2 +- .../RestSwaggerReaderModelApiSecurityTest.java | 2 +- .../RestSwaggerReaderModelBookOrderTest.java | 2 +- .../camel/swagger/RestSwaggerReaderModelTest.java | 2 +- .../RestSwaggerReaderOverrideHostApiDocsTest.java | 2 +- .../camel/swagger/RestSwaggerReaderTest.java | 2 +- ...pringRestSwaggerReaderModelApiSecurityTest.java | 2 +- .../java/org/apache/camel/spi/RestRegistry.java | 5 --- .../org/apache/camel/model/rest/delete.json | 1 - .../resources/org/apache/camel/model/rest/get.json | 1 - .../org/apache/camel/model/rest/head.json | 1 - .../org/apache/camel/model/rest/patch.json | 1 - .../org/apache/camel/model/rest/post.json | 1 - .../resources/org/apache/camel/model/rest/put.json | 1 - .../apache/camel/model/RouteDefinitionHelper.java | 6 ---- .../apache/camel/model/rest/VerbDefinition.java | 13 ------- .../management/mbean/ManagedRestRegistry.java | 8 ++--- .../java/org/apache/camel/xml/in/ModelParser.java | 1 - .../generator/openapi/RestDslYamlGenerator.java | 2 +- .../OpenApiPetstoreWithRestComponentXml.txt | 40 +++++++++++----------- .../src/test/resources/OpenApiPetstoreXml.txt | 40 +++++++++++----------- .../test/resources/OpenApiV3PetstoreSimpleXml.txt | 2 +- .../test/resources/OpenApiV3PetstoreSimpleYaml.txt | 2 +- .../OpenApiV3PetstoreWithRestComponentXml.txt | 40 +++++++++++----------- .../OpenApiV3PetstoreWithRestComponentYaml.txt | 40 +++++++++++----------- .../src/test/resources/OpenApiV3PetstoreXml.txt | 40 +++++++++++----------- .../src/test/resources/OpenApiV3PetstoreYaml.txt | 40 +++++++++++----------- 43 files changed, 163 insertions(+), 211 deletions(-) diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java index d9e0597..2c72993 100644 --- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java +++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java @@ -81,6 +81,7 @@ import io.swagger.v3.oas.models.media.DateSchema; import io.swagger.v3.oas.models.media.DateTimeSchema; import io.swagger.v3.oas.models.media.PasswordSchema; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestOperationParamDefinition; import org.apache.camel.model.rest.RestOperationResponseHeaderDefinition; @@ -522,7 +523,6 @@ public class RestOpenApiReader { op.tags.add(pathAsTag); } - final String routeId = getValue(camelContext, verb.getRouteId()); // favour ids from verb, rest, route final String operationId; if (verb.getId() != null) { @@ -530,7 +530,8 @@ public class RestOpenApiReader { } else if (rest.getId() != null) { operationId = getValue(camelContext, rest.getId()); } else { - operationId = routeId; + verb.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); + operationId = verb.getId(); } op.operationId = operationId; @@ -540,8 +541,6 @@ public class RestOpenApiReader { extension.value = camelContextId; op.addExtension(extension.name, extension); extension = op.createExtension(); - extension.name = "x-routeId"; - extension.value = routeId; op.addExtension(extension.name, extension); path = setPathOperation(path, op, method); diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/ComplexTypesTest.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/ComplexTypesTest.java index e12f79f..29d4d4d 100644 --- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/ComplexTypesTest.java +++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/ComplexTypesTest.java @@ -163,7 +163,7 @@ public class ComplexTypesTest extends CamelTestSupport { input = input.replaceAll("\"openapi\" : \"3\\..*\",", "\"openapi\" : \"3.x\","); input = input.replaceAll("\"swagger\" : \"2\\..*\",", "\"swagger\" : \"2.x\","); input = input.replaceAll("\"operationId\" : \"verb.*\",", "\"operationId\" : \"verb\","); - input = input.replaceAll("\"x-camelContextId\" : \"camel.*\",", "\"x-camelContextId\" : \"camel\","); + input = input.replaceAll("\"x-camelContextId\" : \"camel.*\"", "\"x-camelContextId\" : \"camel\""); return input; } } diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderEnableVendorExtensionTest.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderEnableVendorExtensionTest.java index e6d4449..b40d553 100644 --- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderEnableVendorExtensionTest.java +++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderEnableVendorExtensionTest.java @@ -97,14 +97,12 @@ public class RestOpenApiReaderEnableVendorExtensionTest extends CamelTestSupport log.info(json); String camelId = context.getName(); - String routeId = context.getRouteDefinitions().get(0).getId(); assertTrue(json.contains("\"host\" : \"localhost:8080\"")); assertTrue(json.contains("\"description\" : \"The user returned\"")); assertTrue(json.contains("\"$ref\" : \"#/definitions/User\"")); assertFalse(json.contains("\"enum\"")); assertTrue(json.contains("\"x-camelContextId\" : \"" + camelId + "\"")); - assertTrue(json.contains("\"x-routeId\" : \"" + routeId + "\"")); context.stop(); } @@ -133,14 +131,12 @@ public class RestOpenApiReaderEnableVendorExtensionTest extends CamelTestSupport log.info(json); String camelId = context.getName(); - String routeId = context.getRouteDefinitions().get(0).getId(); assertTrue(json.contains("\"url\" : \"http://localhost:8080/api\"")); assertTrue(json.contains("\"description\" : \"The user returned\"")); assertTrue(json.contains("\"$ref\" : \"#/components/schemas/User\"")); assertFalse(json.contains("\"enum\"")); assertTrue(json.contains("\"x-camelContextId\" : \"" + camelId + "\"")); - assertTrue(json.contains("\"x-routeId\" : \"" + routeId + "\"")); context.stop(); } } diff --git a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesRequest.json b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesRequest.json index 92d0fa7..99276fa 100644 --- a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesRequest.json +++ b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesRequest.json @@ -26,8 +26,7 @@ }, "operationId" : "verb", "summary" : "Demo complex request type", - "x-camelContextId" : "camel", - "x-routeId" : "complex request type" + "x-camelContextId" : "camel" } } }, diff --git a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesResponse.json b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesResponse.json index 752686d..4193eab 100644 --- a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesResponse.json +++ b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V2SchemaForComplexTypesResponse.json @@ -26,8 +26,7 @@ }, "operationId" : "verb", "summary" : "Demo complex response type", - "x-camelContextId" : "camel", - "x-routeId" : "complex response type" + "x-camelContextId" : "camel" } } }, diff --git a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesRequest.json b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesRequest.json index 873d791..7abf174 100644 --- a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesRequest.json +++ b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesRequest.json @@ -31,8 +31,7 @@ }, "operationId" : "verb", "summary" : "Demo complex request type", - "x-camelContextId" : "camel", - "x-routeId" : "complex request type" + "x-camelContextId" : "camel" } } }, diff --git a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesResponse.json b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesResponse.json index c4c691e..88c81eb 100644 --- a/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesResponse.json +++ b/components/camel-openapi-java/src/test/resources/org/apache/camel/openapi/V3SchemaForComplexTypesResponse.json @@ -31,8 +31,7 @@ }, "operationId" : "verb", "summary" : "Demo complex response type", - "x-camelContextId" : "camel", - "x-routeId" : "complex response type" + "x-camelContextId" : "camel" } } }, diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java index d564872..5efa6ef 100644 --- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java +++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java @@ -51,8 +51,7 @@ public class DefaultRestRegistry extends ServiceSupport implements StaticService Consumer consumer, String url, String baseUrl, String basePath, String uriTemplate, String method, String consumes, String produces, String inType, String outType, String routeId, String description) { RestServiceEntry entry = new RestServiceEntry( - consumer, url, baseUrl, basePath, uriTemplate, method, consumes, produces, inType, outType, routeId, - description); + consumer, url, baseUrl, basePath, uriTemplate, method, consumes, produces, inType, outType, description); registry.put(consumer, entry); } @@ -168,12 +167,11 @@ public class DefaultRestRegistry extends ServiceSupport implements StaticService private final String produces; private final String inType; private final String outType; - private final String routeId; private final String description; private RestServiceEntry(Consumer consumer, String url, String baseUrl, String basePath, String uriTemplate, String method, - String consumes, String produces, String inType, String outType, String routeId, + String consumes, String produces, String inType, String outType, String description) { this.consumer = consumer; this.url = url; @@ -185,7 +183,6 @@ public class DefaultRestRegistry extends ServiceSupport implements StaticService this.produces = produces; this.inType = inType; this.outType = outType; - this.routeId = routeId; this.description = description; } @@ -254,11 +251,6 @@ public class DefaultRestRegistry extends ServiceSupport implements StaticService } @Override - public String getRouteId() { - return routeId; - } - - @Override public String getDescription() { return description; } diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java index bbea58a..56f455d 100644 --- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java +++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java @@ -60,6 +60,8 @@ import io.swagger.models.properties.LongProperty; import io.swagger.models.properties.Property; import io.swagger.models.properties.RefProperty; import io.swagger.models.properties.StringProperty; +import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestOperationParamDefinition; import org.apache.camel.model.rest.RestOperationResponseHeaderDefinition; @@ -89,6 +91,7 @@ public class RestSwaggerReader { /** * Read the REST-DSL definition's and parse that as a Swagger model representation * + * @param camelContext the camel context * @param rests the rest-dsl * @param config the swagger configuration * @param classResolver class resolver to use @@ -96,12 +99,13 @@ public class RestSwaggerReader { * @throws ClassNotFoundException */ public Swagger read( + CamelContext camelContext, List<RestDefinition> rests, BeanConfig config, String camelContextId, ClassResolver classResolver) throws ClassNotFoundException { Swagger swagger = new Swagger(); for (RestDefinition rest : rests) { - parse(swagger, rest, camelContextId, classResolver); + parse(camelContext, swagger, rest, camelContextId, classResolver); } // configure before returning @@ -109,7 +113,8 @@ public class RestSwaggerReader { return swagger; } - private void parse(Swagger swagger, RestDefinition rest, String camelContextId, ClassResolver classResolver) + private void parse( + CamelContext camelContext, Swagger swagger, RestDefinition rest, String camelContextId, ClassResolver classResolver) throws ClassNotFoundException { List<VerbDefinition> verbs = new ArrayList<>(rest.getVerbs()); // must sort the verbs by uri so we group them together when an uri has multiple operations @@ -219,10 +224,11 @@ public class RestSwaggerReader { appendModels(clazz, swagger); } - doParseVerbs(swagger, rest, camelContextId, verbs, pathAsTag); + doParseVerbs(camelContext, swagger, rest, camelContextId, verbs, pathAsTag); } private void doParseVerbs( + CamelContext camelContext, Swagger swagger, RestDefinition rest, String camelContextId, List<VerbDefinition> verbs, String pathAsTag) { String basePath = rest.getPath(); @@ -249,7 +255,6 @@ public class RestSwaggerReader { op.addTag(pathAsTag); } - final String routeId = verb.getRouteId(); // favour ids from verb, rest, route final String operationId; if (verb.getId() != null) { @@ -257,13 +262,13 @@ public class RestSwaggerReader { } else if (rest.getId() != null) { operationId = rest.getId(); } else { - operationId = routeId; + verb.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); + operationId = verb.getId(); } op.operationId(operationId); // add id as vendor extensions op.getVendorExtensions().put("x-camelContextId", camelContextId); - op.getVendorExtensions().put("x-routeId", routeId); Path path = swagger.getPath(opPath); if (path == null) { diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java index aac452d..50e5506 100644 --- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java +++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java @@ -181,7 +181,7 @@ public class RestSwaggerSupport { (String) apiProperties.getOrDefault("api.specification.contentType.json", "application/json")); // read the rest-dsl into swagger model - Swagger swagger = reader.read(rests, swaggerConfig, camelContext.getName(), classResolver); + Swagger swagger = reader.read(camelContext, rests, swaggerConfig, camelContext.getName(), classResolver); if (configuration.isUseXForwardHeaders()) { setupXForwardedHeaders(swagger, headers); } @@ -201,7 +201,7 @@ public class RestSwaggerSupport { (String) apiProperties.getOrDefault("api.specification.contentType.yaml", "text/yaml")); // read the rest-dsl into swagger model - Swagger swagger = reader.read(rests, swaggerConfig, camelContext.getName(), classResolver); + Swagger swagger = reader.read(camelContext, rests, swaggerConfig, camelContext.getName(), classResolver); if (configuration.isUseXForwardHeaders()) { setupXForwardedHeaders(swagger, headers); } diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerArrayEnumTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerArrayEnumTest.java index 15fc2fc..094dc2a 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerArrayEnumTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerArrayEnumTest.java @@ -28,11 +28,12 @@ import io.swagger.models.parameters.Parameter; import org.apache.camel.impl.engine.DefaultClassResolver; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestParamType; +import org.apache.camel.test.junit5.CamelTestSupport; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; -public class RestSwaggerArrayEnumTest { +public class RestSwaggerArrayEnumTest extends CamelTestSupport { @Test public void shouldGenerateEnumValuesForArraysAndNonArrays() throws Exception { @@ -57,7 +58,7 @@ public class RestSwaggerArrayEnumTest { .param().name("headerArrayParam").type(RestParamType.header).dataType("array").arrayType("float") .allowableValues("1.1", "2.2", "3.3").endParam(); - final Swagger swagger = reader.read(Collections.singletonList(restDefinition), new BeanConfig(), + final Swagger swagger = reader.read(context, Collections.singletonList(restDefinition), new BeanConfig(), "camel-1", new DefaultClassResolver()); assertThat(swagger).isNotNull(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsOverrideTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsOverrideTest.java index 28a1fd7..cfd121f 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsOverrideTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsOverrideTest.java @@ -69,7 +69,7 @@ public class RestSwaggerReaderApiDocsOverrideTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsTest.java index f851378..75c88be 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderApiDocsTest.java @@ -70,7 +70,7 @@ public class RestSwaggerReaderApiDocsTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderDayOfWeekTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderDayOfWeekTest.java index 755fae7..d0dcf87 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderDayOfWeekTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderDayOfWeekTest.java @@ -71,7 +71,7 @@ public class RestSwaggerReaderDayOfWeekTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEmptyAllowableValuesTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEmptyAllowableValuesTest.java index 97dd58c..3527f0b 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEmptyAllowableValuesTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEmptyAllowableValuesTest.java @@ -70,7 +70,7 @@ public class RestSwaggerReaderEmptyAllowableValuesTest extends CamelTestSupport RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEnableVendorExtensionTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEnableVendorExtensionTest.java index 2dba21a..fa19520 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEnableVendorExtensionTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderEnableVendorExtensionTest.java @@ -84,7 +84,7 @@ public class RestSwaggerReaderEnableVendorExtensionTest extends CamelTestSupport RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); @@ -95,14 +95,12 @@ public class RestSwaggerReaderEnableVendorExtensionTest extends CamelTestSupport LOG.info(json); String camelId = context.getName(); - String routeId = context.getRouteDefinitions().get(0).getId(); assertTrue(json.contains("\"host\" : \"localhost:8080\"")); assertTrue(json.contains("\"description\" : \"The user returned\"")); assertTrue(json.contains("\"$ref\" : \"#/definitions/User\"")); assertFalse(json.contains("\"enum\"")); assertTrue(json.contains("\"x-camelContextId\" : \"" + camelId + "\"")); - assertTrue(json.contains("\"x-routeId\" : \"" + routeId + "\"")); context.stop(); } diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderFileResponseModelTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderFileResponseModelTest.java index c9c8bbd..33dab27 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderFileResponseModelTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderFileResponseModelTest.java @@ -63,7 +63,7 @@ public class RestSwaggerReaderFileResponseModelTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelApiSecurityTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelApiSecurityTest.java index 6ce82d3..606c669 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelApiSecurityTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelApiSecurityTest.java @@ -89,7 +89,7 @@ public class RestSwaggerReaderModelApiSecurityTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelBookOrderTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelBookOrderTest.java index 7c6bab9..4b86377 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelBookOrderTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelBookOrderTest.java @@ -74,7 +74,7 @@ public class RestSwaggerReaderModelBookOrderTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java index 159ea15..8f06af3 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java @@ -82,7 +82,7 @@ public class RestSwaggerReaderModelTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderOverrideHostApiDocsTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderOverrideHostApiDocsTest.java index 5a8ae11..06ad10b 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderOverrideHostApiDocsTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderOverrideHostApiDocsTest.java @@ -45,7 +45,7 @@ public class RestSwaggerReaderOverrideHostApiDocsTest extends RestSwaggerReaderA RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java index 79977c3..36c6a1b 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java @@ -72,7 +72,7 @@ public class RestSwaggerReaderTest extends CamelTestSupport { RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/SpringRestSwaggerReaderModelApiSecurityTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/SpringRestSwaggerReaderModelApiSecurityTest.java index 3b7c62f..97a4c5a 100644 --- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/SpringRestSwaggerReaderModelApiSecurityTest.java +++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/SpringRestSwaggerReaderModelApiSecurityTest.java @@ -54,7 +54,7 @@ public class SpringRestSwaggerReaderModelApiSecurityTest extends CamelSpringTest RestSwaggerReader reader = new RestSwaggerReader(); Swagger swagger - = reader.read(context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); + = reader.read(context, context.getRestDefinitions(), config, context.getName(), new DefaultClassResolver()); assertNotNull(swagger); ObjectMapper mapper = new ObjectMapper(); diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java b/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java index 068076d..74a54b9 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java @@ -92,11 +92,6 @@ public interface RestRegistry extends Service { String getOutType(); /** - * Gets the id of the route this rest service will be using. - */ - String getRouteId(); - - /** * Optional description about this rest service. */ String getDescription(); diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/delete.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/delete.json index 7e752a7..bafa802 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/delete.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/delete.json @@ -19,7 +19,6 @@ "skipBindingOnErrorCode": { "kind": "attribute", "displayName": "Skip Binding On Error Code", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do. This option will override wh [...] "clientRequestValidation": { "kind": "attribute", "displayName": "Client Request Validation", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns [...] "enableCORS": { "kind": "attribute", "displayName": "Enable CORS", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false." }, - "routeId": { "kind": "attribute", "displayName": "Route Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The route id this rest-dsl is using (read-only)" }, "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include or exclude this rest operation in API documentation. The default value is true." }, "deprecated": { "kind": "attribute", "displayName": "Deprecated", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Marks this rest operation as deprecated in OpenApi documentation." }, "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type." }, diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/get.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/get.json index eabc9f4..c7c3199 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/get.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/get.json @@ -19,7 +19,6 @@ "skipBindingOnErrorCode": { "kind": "attribute", "displayName": "Skip Binding On Error Code", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do. This option will override wh [...] "clientRequestValidation": { "kind": "attribute", "displayName": "Client Request Validation", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns [...] "enableCORS": { "kind": "attribute", "displayName": "Enable CORS", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false." }, - "routeId": { "kind": "attribute", "displayName": "Route Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The route id this rest-dsl is using (read-only)" }, "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include or exclude this rest operation in API documentation. The default value is true." }, "deprecated": { "kind": "attribute", "displayName": "Deprecated", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Marks this rest operation as deprecated in OpenApi documentation." }, "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type." }, diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/head.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/head.json index 415e927..f90765c 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/head.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/head.json @@ -19,7 +19,6 @@ "skipBindingOnErrorCode": { "kind": "attribute", "displayName": "Skip Binding On Error Code", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do. This option will override wh [...] "clientRequestValidation": { "kind": "attribute", "displayName": "Client Request Validation", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns [...] "enableCORS": { "kind": "attribute", "displayName": "Enable CORS", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false." }, - "routeId": { "kind": "attribute", "displayName": "Route Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The route id this rest-dsl is using (read-only)" }, "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include or exclude this rest operation in API documentation. The default value is true." }, "deprecated": { "kind": "attribute", "displayName": "Deprecated", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Marks this rest operation as deprecated in OpenApi documentation." }, "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type." }, diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/patch.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/patch.json index 760e13f..0f5d175 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/patch.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/patch.json @@ -19,7 +19,6 @@ "skipBindingOnErrorCode": { "kind": "attribute", "displayName": "Skip Binding On Error Code", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do. This option will override wh [...] "clientRequestValidation": { "kind": "attribute", "displayName": "Client Request Validation", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns [...] "enableCORS": { "kind": "attribute", "displayName": "Enable CORS", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false." }, - "routeId": { "kind": "attribute", "displayName": "Route Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The route id this rest-dsl is using (read-only)" }, "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include or exclude this rest operation in API documentation. The default value is true." }, "deprecated": { "kind": "attribute", "displayName": "Deprecated", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Marks this rest operation as deprecated in OpenApi documentation." }, "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type." }, diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/post.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/post.json index 673972d..666c6b6 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/post.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/post.json @@ -19,7 +19,6 @@ "skipBindingOnErrorCode": { "kind": "attribute", "displayName": "Skip Binding On Error Code", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do. This option will override wh [...] "clientRequestValidation": { "kind": "attribute", "displayName": "Client Request Validation", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns [...] "enableCORS": { "kind": "attribute", "displayName": "Enable CORS", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false." }, - "routeId": { "kind": "attribute", "displayName": "Route Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The route id this rest-dsl is using (read-only)" }, "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include or exclude this rest operation in API documentation. The default value is true." }, "deprecated": { "kind": "attribute", "displayName": "Deprecated", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Marks this rest operation as deprecated in OpenApi documentation." }, "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type." }, diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/put.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/put.json index 7dfa092..8bf87a2 100644 --- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/put.json +++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/rest/put.json @@ -19,7 +19,6 @@ "skipBindingOnErrorCode": { "kind": "attribute", "displayName": "Skip Binding On Error Code", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do. This option will override wh [...] "clientRequestValidation": { "kind": "attribute", "displayName": "Client Request Validation", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns [...] "enableCORS": { "kind": "attribute", "displayName": "Enable CORS", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false." }, - "routeId": { "kind": "attribute", "displayName": "Route Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The route id this rest-dsl is using (read-only)" }, "apiDocs": { "kind": "attribute", "displayName": "Api Docs", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include or exclude this rest operation in API documentation. The default value is true." }, "deprecated": { "kind": "attribute", "displayName": "Deprecated", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Marks this rest operation as deprecated in OpenApi documentation." }, "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the class name to use for binding from input to POJO for the incoming data This option will override what may be configured on a parent level. The name of the class of the input data. Append a to the end of the name if you want the input to be an array type." }, diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java index efb178f..72999a7 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java @@ -196,12 +196,6 @@ public final class RouteDefinitionHelper { } RestDefinition rest = route.getRestDefinition(); if (rest != null && route.isRest()) { - VerbDefinition verb = findVerbDefinition(rest, route.getInput().getEndpointUri()); - if (verb != null && verb.getRouteId() == null) { - String id = verb.idOrCreate(ecc.getNodeIdFactory()); - verb.setRouteId(id); - } - // if its the rest/rest-api endpoints then they should include // the route id as well if (ObjectHelper.isNotEmpty(route.getInput())) { 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 d9b831e..a238bac 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 @@ -69,8 +69,6 @@ public abstract class VerbDefinition extends OptionalIdentifiedDefinition<VerbDe @Metadata(javaType = "java.lang.Boolean") private String enableCORS; @XmlAttribute - private String routeId; - @XmlAttribute @Metadata(javaType = "java.lang.Boolean") private String apiDocs; @XmlAttribute @@ -317,17 +315,6 @@ public abstract class VerbDefinition extends OptionalIdentifiedDefinition<VerbDe this.outTypeClass = outTypeClass; } - public String getRouteId() { - return routeId; - } - - /** - * The route id this rest-dsl is using (read-only) - */ - public void setRouteId(String routeId) { - this.routeId = routeId; - } - public String getApiDocs() { return apiDocs; } diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java index 15ba366..8654a30 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java @@ -25,7 +25,6 @@ import javax.management.openmbean.TabularData; import javax.management.openmbean.TabularDataSupport; import org.apache.camel.CamelContext; -import org.apache.camel.Producer; import org.apache.camel.RuntimeCamelException; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.CamelOpenMBeanTypes; @@ -39,8 +38,6 @@ import org.apache.camel.spi.RestRegistry; public class ManagedRestRegistry extends ManagedService implements ManagedRestRegistryMBean { private final RestRegistry registry; - // TODO apiProducer is reported unused, if it is needed, then place @SuppressWarnings("unused") - private transient Producer apiProducer; public ManagedRestRegistry(CamelContext context, RestRegistry registry) { super(context, registry); @@ -73,17 +70,16 @@ public class ManagedRestRegistry extends ManagedService implements ManagedRestRe String state = entry.getState(); String inType = entry.getInType(); String outType = entry.getOutType(); - String routeId = entry.getRouteId(); String description = entry.getDescription(); CompositeData data = new CompositeDataSupport( ct, new String[] { "url", "baseUrl", "basePath", "uriTemplate", "method", "consumes", "produces", "inType", - "outType", "state", "routeId", "description" }, + "outType", "state", "description" }, new Object[] { url, baseUrl, basePath, uriTemplate, method, consumes, produces, inType, outType, state, - routeId, description }); + description }); answer.put(data); } return answer; 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 9212a89..5ff0aaf 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 @@ -2818,7 +2818,6 @@ public class ModelParser extends BaseParser { case "outType": def.setOutType(val); break; case "path": def.setPath(val); break; case "produces": def.setProduces(val); break; - case "routeId": def.setRouteId(val); break; case "skipBindingOnErrorCode": def.setSkipBindingOnErrorCode(val); break; case "type": def.setType(val); break; default: return optionalIdentifiedDefinitionAttributeHandler().accept(def, key, val); diff --git a/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java b/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java index b45291c..0feffe5 100644 --- a/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java +++ b/tooling/openapi-rest-dsl-generator/src/main/java/org/apache/camel/generator/openapi/RestDslYamlGenerator.java @@ -54,7 +54,7 @@ public class RestDslYamlGenerator extends RestDslGenerator<RestDslYamlGenerator> private static final String[] VERBS = new String[] { "delete", "get", "head", "patch", "post", "put" }; private static final String[] FIELD_ORDER - = new String[] { "id", "uri", "description", "consumes", "produces", "type", "outType", "param" }; + = new String[] { "id", "path", "description", "consumes", "produces", "type", "outType", "param" }; RestDslYamlGenerator(final OasDocument document) { super(document); diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt index d2ffa0f..61c1888 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreWithRestComponentXml.txt @@ -2,97 +2,97 @@ <rests xmlns="http://camel.apache.org/schema/spring"> <restConfiguration component="servlet" contextPath="/foo"/> <rest path="/v2"> - <put consumes="application/json,application/xml" id="updatePet" produces="application/xml,application/json" uri="/pet"> + <put consumes="application/json,application/xml" id="updatePet" produces="application/xml,application/json" path="/pet"> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <to uri="direct:updatePet"/> </put> - <post consumes="application/json,application/xml" id="addPet" produces="application/xml,application/json" uri="/pet"> + <post consumes="application/json,application/xml" id="addPet" produces="application/xml,application/json" path="/pet"> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <param dataType="boolean" defaultValue="false" description="Verbose data" name="verbose" required="false" type="query"/> <to uri="direct:addPet"/> </post> - <get id="findPetsByStatus" produces="application/xml,application/json" uri="/pet/findByStatus"> + <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus"> <description>Multiple status values can be provided with comma separated strings</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/> <to uri="direct:findPetsByStatus"/> </get> - <get id="findPetsByTags" produces="application/xml,application/json" uri="/pet/findByTags"> + <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags"> <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/> <to uri="direct:findPetsByTags"/> </get> - <get id="getPetById" produces="application/xml,application/json" uri="/pet/{petId}"> + <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}"> <description>Returns a single pet</description> <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/> <to uri="direct:getPetById"/> </get> - <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" produces="application/xml,application/json" uri="/pet/{petId}"> + <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" produces="application/xml,application/json" path="/pet/{petId}"> <param dataType="integer" description="ID of pet that needs to be updated" name="petId" required="true" type="path"/> <param dataType="string" description="Updated name of the pet" name="name" required="false" type="formData"/> <param dataType="string" description="Updated status of the pet" name="status" required="false" type="formData"/> <to uri="direct:updatePetWithForm"/> </post> - <delete id="deletePet" produces="application/xml,application/json" uri="/pet/{petId}"> + <delete id="deletePet" produces="application/xml,application/json" path="/pet/{petId}"> <param dataType="string" name="api_key" required="false" type="header"/> <param dataType="integer" description="Pet id to delete" name="petId" required="true" type="path"/> <to uri="direct:deletePet"/> </delete> - <post consumes="multipart/form-data" id="uploadFile" produces="application/json" uri="/pet/{petId}/uploadImage"> + <post consumes="multipart/form-data" id="uploadFile" produces="application/json" path="/pet/{petId}/uploadImage"> <param dataType="integer" description="ID of pet to update" name="petId" required="true" type="path"/> <param dataType="string" description="Additional data to pass to server" name="additionalMetadata" required="false" type="formData"/> <param dataType="file" description="file to upload" name="file" required="false" type="formData"/> <to uri="direct:uploadFile"/> </post> - <get id="getInventory" produces="application/json" uri="/store/inventory"> + <get id="getInventory" produces="application/json" path="/store/inventory"> <description>Returns a map of status codes to quantities</description> <to uri="direct:getInventory"/> </get> - <post id="placeOrder" produces="application/xml,application/json" uri="/store/order"> + <post id="placeOrder" produces="application/xml,application/json" path="/store/order"> <param description="order placed for purchasing the pet" name="body" required="true" type="body"/> <to uri="direct:placeOrder"/> </post> - <get id="getOrderById" produces="application/xml,application/json" uri="/store/order/{orderId}"> + <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}"> <description>For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions</description> <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/> <to uri="direct:getOrderById"/> </get> - <delete id="deleteOrder" produces="application/xml,application/json" uri="/store/order/{orderId}"> + <delete id="deleteOrder" produces="application/xml,application/json" path="/store/order/{orderId}"> <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description> <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/> <to uri="direct:deleteOrder"/> </delete> - <post id="createUser" produces="application/xml,application/json" uri="/user"> + <post id="createUser" produces="application/xml,application/json" path="/user"> <description>This can only be done by the logged in user.</description> <param description="Created user object" name="body" required="true" type="body"/> <to uri="direct:createUser"/> </post> - <post id="createUsersWithArrayInput" produces="application/xml,application/json" uri="/user/createWithArray"> + <post id="createUsersWithArrayInput" produces="application/xml,application/json" path="/user/createWithArray"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithArrayInput"/> </post> - <post id="createUsersWithListInput" produces="application/xml,application/json" uri="/user/createWithList"> + <post id="createUsersWithListInput" produces="application/xml,application/json" path="/user/createWithList"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithListInput"/> </post> - <get id="loginUser" produces="application/xml,application/json" uri="/user/login"> + <get id="loginUser" produces="application/xml,application/json" path="/user/login"> <param dataType="string" description="The user name for login" name="username" required="true" type="query"/> <param dataType="string" description="The password for login in clear text" name="password" required="true" type="query"/> <to uri="direct:loginUser"/> </get> - <get id="logoutUser" produces="application/xml,application/json" uri="/user/logout"> + <get id="logoutUser" produces="application/xml,application/json" path="/user/logout"> <to uri="direct:logoutUser"/> </get> - <get id="getUserByName" produces="application/xml,application/json" uri="/user/{username}"> + <get id="getUserByName" produces="application/xml,application/json" path="/user/{username}"> <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/> <to uri="direct:getUserByName"/> </get> - <put id="updateUser" produces="application/xml,application/json" uri="/user/{username}"> + <put id="updateUser" produces="application/xml,application/json" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/> <param description="Updated user object" name="body" required="true" type="body"/> <to uri="direct:updateUser"/> </put> - <delete id="deleteUser" produces="application/xml,application/json" uri="/user/{username}"> + <delete id="deleteUser" produces="application/xml,application/json" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/> <to uri="direct:deleteUser"/> diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt index 8d68e03..3c51257 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiPetstoreXml.txt @@ -1,97 +1,97 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rests xmlns="http://camel.apache.org/schema/spring"> <rest path="/v2"> - <put consumes="application/json,application/xml" id="updatePet" produces="application/xml,application/json" uri="/pet"> + <put consumes="application/json,application/xml" id="updatePet" produces="application/xml,application/json" path="/pet"> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <to uri="direct:updatePet"/> </put> - <post consumes="application/json,application/xml" id="addPet" produces="application/xml,application/json" uri="/pet"> + <post consumes="application/json,application/xml" id="addPet" produces="application/xml,application/json" path="/pet"> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <param dataType="boolean" defaultValue="false" description="Verbose data" name="verbose" required="false" type="query"/> <to uri="direct:addPet"/> </post> - <get id="findPetsByStatus" produces="application/xml,application/json" uri="/pet/findByStatus"> + <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus"> <description>Multiple status values can be provided with comma separated strings</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/> <to uri="direct:findPetsByStatus"/> </get> - <get id="findPetsByTags" produces="application/xml,application/json" uri="/pet/findByTags"> + <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags"> <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/> <to uri="direct:findPetsByTags"/> </get> - <get id="getPetById" produces="application/xml,application/json" uri="/pet/{petId}"> + <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}"> <description>Returns a single pet</description> <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/> <to uri="direct:getPetById"/> </get> - <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" produces="application/xml,application/json" uri="/pet/{petId}"> + <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" produces="application/xml,application/json" path="/pet/{petId}"> <param dataType="integer" description="ID of pet that needs to be updated" name="petId" required="true" type="path"/> <param dataType="string" description="Updated name of the pet" name="name" required="false" type="formData"/> <param dataType="string" description="Updated status of the pet" name="status" required="false" type="formData"/> <to uri="direct:updatePetWithForm"/> </post> - <delete id="deletePet" produces="application/xml,application/json" uri="/pet/{petId}"> + <delete id="deletePet" produces="application/xml,application/json" path="/pet/{petId}"> <param dataType="string" name="api_key" required="false" type="header"/> <param dataType="integer" description="Pet id to delete" name="petId" required="true" type="path"/> <to uri="direct:deletePet"/> </delete> - <post consumes="multipart/form-data" id="uploadFile" produces="application/json" uri="/pet/{petId}/uploadImage"> + <post consumes="multipart/form-data" id="uploadFile" produces="application/json" path="/pet/{petId}/uploadImage"> <param dataType="integer" description="ID of pet to update" name="petId" required="true" type="path"/> <param dataType="string" description="Additional data to pass to server" name="additionalMetadata" required="false" type="formData"/> <param dataType="file" description="file to upload" name="file" required="false" type="formData"/> <to uri="direct:uploadFile"/> </post> - <get id="getInventory" produces="application/json" uri="/store/inventory"> + <get id="getInventory" produces="application/json" path="/store/inventory"> <description>Returns a map of status codes to quantities</description> <to uri="direct:getInventory"/> </get> - <post id="placeOrder" produces="application/xml,application/json" uri="/store/order"> + <post id="placeOrder" produces="application/xml,application/json" path="/store/order"> <param description="order placed for purchasing the pet" name="body" required="true" type="body"/> <to uri="direct:placeOrder"/> </post> - <get id="getOrderById" produces="application/xml,application/json" uri="/store/order/{orderId}"> + <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}"> <description>For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions</description> <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/> <to uri="direct:getOrderById"/> </get> - <delete id="deleteOrder" produces="application/xml,application/json" uri="/store/order/{orderId}"> + <delete id="deleteOrder" produces="application/xml,application/json" path="/store/order/{orderId}"> <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description> <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/> <to uri="direct:deleteOrder"/> </delete> - <post id="createUser" produces="application/xml,application/json" uri="/user"> + <post id="createUser" produces="application/xml,application/json" path="/user"> <description>This can only be done by the logged in user.</description> <param description="Created user object" name="body" required="true" type="body"/> <to uri="direct:createUser"/> </post> - <post id="createUsersWithArrayInput" produces="application/xml,application/json" uri="/user/createWithArray"> + <post id="createUsersWithArrayInput" produces="application/xml,application/json" path="/user/createWithArray"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithArrayInput"/> </post> - <post id="createUsersWithListInput" produces="application/xml,application/json" uri="/user/createWithList"> + <post id="createUsersWithListInput" produces="application/xml,application/json" path="/user/createWithList"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithListInput"/> </post> - <get id="loginUser" produces="application/xml,application/json" uri="/user/login"> + <get id="loginUser" produces="application/xml,application/json" path="/user/login"> <param dataType="string" description="The user name for login" name="username" required="true" type="query"/> <param dataType="string" description="The password for login in clear text" name="password" required="true" type="query"/> <to uri="direct:loginUser"/> </get> - <get id="logoutUser" produces="application/xml,application/json" uri="/user/logout"> + <get id="logoutUser" produces="application/xml,application/json" path="/user/logout"> <to uri="direct:logoutUser"/> </get> - <get id="getUserByName" produces="application/xml,application/json" uri="/user/{username}"> + <get id="getUserByName" produces="application/xml,application/json" path="/user/{username}"> <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/> <to uri="direct:getUserByName"/> </get> - <put id="updateUser" produces="application/xml,application/json" uri="/user/{username}"> + <put id="updateUser" produces="application/xml,application/json" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/> <param description="Updated user object" name="body" required="true" type="body"/> <to uri="direct:updateUser"/> </put> - <delete id="deleteUser" produces="application/xml,application/json" uri="/user/{username}"> + <delete id="deleteUser" produces="application/xml,application/json" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/> <to uri="direct:deleteUser"/> diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleXml.txt index 5381ff8..2d8d39a 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleXml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleXml.txt @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?><rests xmlns="http://camel.apache.org/schema/spring"> <rest> - <put consumes="application/json,text/xml" produces="application/json,text/xml" uri="/pet"> + <put consumes="application/json,text/xml" produces="application/json,text/xml" path="/pet"> <param name="body" required="true" type="body"/> <to uri="direct:rest1"/> </put> diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleYaml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleYaml.txt index 9a94c93..1000b53 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleYaml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreSimpleYaml.txt @@ -1,8 +1,8 @@ - rest: put: consumes: "application/json,text/xml" + path: "/pet" produces: "application/json,text/xml" - uri: "/pet" param: - name: "body" required: true diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt index abd42a6..2816496 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentXml.txt @@ -1,96 +1,96 @@ <?xml version="1.0" encoding="UTF-8"?><rests xmlns="http://camel.apache.org/schema/spring"><restConfiguration component="servlet" contextPath="/foo"/> <rest path="/api/v3"> - <put consumes="application/json,application/xml" id="updatePet" uri="/pet"> + <put consumes="application/json,application/xml" id="updatePet" path="/pet"> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <to uri="direct:updatePet"/> </put> - <post consumes="application/json,application/xml" id="addPet" uri="/pet"> + <post consumes="application/json,application/xml" id="addPet" path="/pet"> <param dataType="boolean" defaultValue="false" description="Verbose data" name="verbose" required="false" type="query"/> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <to uri="direct:addPet"/> </post> - <get id="findPetsByStatus" produces="application/xml,application/json" uri="/pet/findByStatus"> + <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus"> <description>Multiple status values can be provided with comma separated strings</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/> <to uri="direct:findPetsByStatus"/> </get> - <get id="findPetsByTags" produces="application/xml,application/json" uri="/pet/findByTags"> + <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags"> <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/> <to uri="direct:findPetsByTags"/> </get> - <get id="getPetById" produces="application/xml,application/json" uri="/pet/{petId}"> + <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}"> <description>Returns a single pet</description> <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/> <to uri="direct:getPetById"/> </get> - <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" uri="/pet/{petId}"> + <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" path="/pet/{petId}"> <param dataType="integer" description="ID of pet that needs to be updated" name="petId" required="true" type="path"/> <param dataType="string" description="Updated name of the pet" name="name" required="true" type="formData"/> <param dataType="string" description="Updated status of the pet" name="status" required="true" type="formData"/> <to uri="direct:updatePetWithForm"/> </post> - <delete id="deletePet" uri="/pet/{petId}"> + <delete id="deletePet" path="/pet/{petId}"> <param dataType="string" name="api_key" required="false" type="header"/> <param dataType="integer" description="Pet id to delete" name="petId" required="true" type="path"/> <to uri="direct:deletePet"/> </delete> - <post consumes="multipart/form-data" id="uploadFile" produces="application/json" uri="/pet/{petId}/uploadImage"> + <post consumes="multipart/form-data" id="uploadFile" produces="application/json" path="/pet/{petId}/uploadImage"> <param dataType="integer" description="ID of pet to update" name="petId" required="true" type="path"/> <param dataType="string" description="Additional data to pass to server" name="additionalMetadata" required="true" type="formData"/> <param dataType="string" description="file to upload" name="file" required="true" type="formData"/> <to uri="direct:uploadFile"/> </post> - <get id="getInventory" produces="application/json" uri="/store/inventory"> + <get id="getInventory" produces="application/json" path="/store/inventory"> <description>Returns a map of status codes to quantities</description> <to uri="direct:getInventory"/> </get> - <post consumes="*/*" id="placeOrder" produces="application/xml,application/json" uri="/store/order"> + <post consumes="*/*" id="placeOrder" produces="application/xml,application/json" path="/store/order"> <param description="order placed for purchasing the pet" name="body" required="true" type="body"/> <to uri="direct:placeOrder"/> </post> - <get id="getOrderById" produces="application/xml,application/json" uri="/store/order/{orderId}"> + <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}"> <description>For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions</description> <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/> <to uri="direct:getOrderById"/> </get> - <delete id="deleteOrder" uri="/store/order/{orderId}"> + <delete id="deleteOrder" path="/store/order/{orderId}"> <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description> <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/> <to uri="direct:deleteOrder"/> </delete> - <post consumes="*/*" id="createUser" uri="/user"> + <post consumes="*/*" id="createUser" path="/user"> <description>This can only be done by the logged in user.</description> <param description="Created user object" name="body" required="true" type="body"/> <to uri="direct:createUser"/> </post> - <post consumes="*/*" id="createUsersWithArrayInput" uri="/user/createWithArray"> + <post consumes="*/*" id="createUsersWithArrayInput" path="/user/createWithArray"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithArrayInput"/> </post> - <post consumes="*/*" id="createUsersWithListInput" uri="/user/createWithList"> + <post consumes="*/*" id="createUsersWithListInput" path="/user/createWithList"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithListInput"/> </post> - <get id="loginUser" produces="application/xml,application/json" uri="/user/login"> + <get id="loginUser" produces="application/xml,application/json" path="/user/login"> <param dataType="string" description="The user name for login" name="username" required="true" type="query"/> <param dataType="string" description="The password for login in clear text" name="password" required="true" type="query"/> <to uri="direct:loginUser"/> </get> - <get id="logoutUser" uri="/user/logout"> + <get id="logoutUser" path="/user/logout"> <to uri="direct:logoutUser"/> </get> - <get id="getUserByName" produces="application/xml,application/json" uri="/user/{username}"> + <get id="getUserByName" produces="application/xml,application/json" path="/user/{username}"> <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/> <to uri="direct:getUserByName"/> </get> - <put consumes="*/*" id="updateUser" uri="/user/{username}"> + <put consumes="*/*" id="updateUser" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/> <param description="Updated user object" name="body" required="true" type="body"/> <to uri="direct:updateUser"/> </put> - <delete id="deleteUser" uri="/user/{username}"> + <delete id="deleteUser" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/> <to uri="direct:deleteUser"/> diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentYaml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentYaml.txt index 6a99cce5..60ae88d 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentYaml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreWithRestComponentYaml.txt @@ -5,7 +5,7 @@ path: "/api/v3" put: - id: "updatePet" - uri: "/pet" + path: "/pet" consumes: "application/json,application/xml" param: - description: "Pet object that needs to be added to the store" @@ -15,7 +15,7 @@ to: uri: "direct:updatePet" - id: "updateUser" - uri: "/user/{username}" + path: "/user/{username}" description: "This can only be done by the logged in user." consumes: "*/*" param: @@ -32,7 +32,7 @@ uri: "direct:updateUser" post: - id: "addPet" - uri: "/pet" + path: "/pet" consumes: "application/json,application/xml" param: - dataType: "boolean" @@ -48,7 +48,7 @@ to: uri: "direct:addPet" - id: "updatePetWithForm" - uri: "/pet/{petId}" + path: "/pet/{petId}" consumes: "application/x-www-form-urlencoded" param: - dataType: "integer" @@ -69,7 +69,7 @@ to: uri: "direct:updatePetWithForm" - id: "uploadFile" - uri: "/pet/{petId}/uploadImage" + path: "/pet/{petId}/uploadImage" consumes: "multipart/form-data" produces: "application/json" param: @@ -91,7 +91,7 @@ to: uri: "direct:uploadFile" - id: "placeOrder" - uri: "/store/order" + path: "/store/order" consumes: "*/*" produces: "application/xml,application/json" param: @@ -102,7 +102,7 @@ to: uri: "direct:placeOrder" - id: "createUser" - uri: "/user" + path: "/user" description: "This can only be done by the logged in user." consumes: "*/*" param: @@ -113,7 +113,7 @@ to: uri: "direct:createUser" - id: "createUsersWithArrayInput" - uri: "/user/createWithArray" + path: "/user/createWithArray" consumes: "*/*" param: - description: "List of user object" @@ -123,7 +123,7 @@ to: uri: "direct:createUsersWithArrayInput" - id: "createUsersWithListInput" - uri: "/user/createWithList" + path: "/user/createWithList" consumes: "*/*" param: - description: "List of user object" @@ -134,7 +134,7 @@ uri: "direct:createUsersWithListInput" get: - id: "findPetsByStatus" - uri: "/pet/findByStatus" + path: "/pet/findByStatus" description: "Multiple status values can be provided with comma separated strings" produces: "application/xml,application/json" param: @@ -148,7 +148,7 @@ to: uri: "direct:findPetsByStatus" - id: "findPetsByTags" - uri: "/pet/findByTags" + path: "/pet/findByTags" description: "Muliple tags can be provided with comma separated strings. Use\ \ tag1, tag2, tag3 for testing." produces: "application/xml,application/json" @@ -163,7 +163,7 @@ to: uri: "direct:findPetsByTags" - id: "getPetById" - uri: "/pet/{petId}" + path: "/pet/{petId}" description: "Returns a single pet" produces: "application/xml,application/json" param: @@ -175,13 +175,13 @@ to: uri: "direct:getPetById" - id: "getInventory" - uri: "/store/inventory" + path: "/store/inventory" description: "Returns a map of status codes to quantities" produces: "application/json" to: uri: "direct:getInventory" - id: "getOrderById" - uri: "/store/order/{orderId}" + path: "/store/order/{orderId}" description: "For valid response try integer IDs with value >= 1 and <= 10.\ \ Other values will generated exceptions" produces: "application/xml,application/json" @@ -194,7 +194,7 @@ to: uri: "direct:getOrderById" - id: "loginUser" - uri: "/user/login" + path: "/user/login" produces: "application/xml,application/json" param: - dataType: "string" @@ -210,11 +210,11 @@ to: uri: "direct:loginUser" - id: "logoutUser" - uri: "/user/logout" + path: "/user/logout" to: uri: "direct:logoutUser" - id: "getUserByName" - uri: "/user/{username}" + path: "/user/{username}" produces: "application/xml,application/json" param: - dataType: "string" @@ -226,7 +226,7 @@ uri: "direct:getUserByName" delete: - id: "deletePet" - uri: "/pet/{petId}" + path: "/pet/{petId}" param: - dataType: "string" name: "api_key" @@ -240,7 +240,7 @@ to: uri: "direct:deletePet" - id: "deleteOrder" - uri: "/store/order/{orderId}" + path: "/store/order/{orderId}" description: "For valid response try integer IDs with positive integer value.\ \ Negative or non-integer values will generate API errors" param: @@ -252,7 +252,7 @@ to: uri: "direct:deleteOrder" - id: "deleteUser" - uri: "/user/{username}" + path: "/user/{username}" description: "This can only be done by the logged in user." param: - dataType: "string" diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt index ebb8da1..612c2cd 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreXml.txt @@ -1,96 +1,96 @@ <?xml version="1.0" encoding="UTF-8"?><rests xmlns="http://camel.apache.org/schema/spring"> <rest path="/api/v3"> - <put consumes="application/json,application/xml" id="updatePet" uri="/pet"> + <put consumes="application/json,application/xml" id="updatePet" path="/pet"> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <to uri="direct:updatePet"/> </put> - <post consumes="application/json,application/xml" id="addPet" uri="/pet"> + <post consumes="application/json,application/xml" id="addPet" path="/pet"> <param dataType="boolean" defaultValue="false" description="Verbose data" name="verbose" required="false" type="query"/> <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/> <to uri="direct:addPet"/> </post> - <get id="findPetsByStatus" produces="application/xml,application/json" uri="/pet/findByStatus"> + <get id="findPetsByStatus" produces="application/xml,application/json" path="/pet/findByStatus"> <description>Multiple status values can be provided with comma separated strings</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Status values that need to be considered for filter" name="status" required="true" type="query"/> <to uri="direct:findPetsByStatus"/> </get> - <get id="findPetsByTags" produces="application/xml,application/json" uri="/pet/findByTags"> + <get id="findPetsByTags" produces="application/xml,application/json" path="/pet/findByTags"> <description>Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.</description> <param arrayType="string" collectionFormat="multi" dataType="array" description="Tags to filter by" name="tags" required="true" type="query"/> <to uri="direct:findPetsByTags"/> </get> - <get id="getPetById" produces="application/xml,application/json" uri="/pet/{petId}"> + <get id="getPetById" produces="application/xml,application/json" path="/pet/{petId}"> <description>Returns a single pet</description> <param dataType="integer" description="ID of pet to return" name="petId" required="true" type="path"/> <to uri="direct:getPetById"/> </get> - <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" uri="/pet/{petId}"> + <post consumes="application/x-www-form-urlencoded" id="updatePetWithForm" path="/pet/{petId}"> <param dataType="integer" description="ID of pet that needs to be updated" name="petId" required="true" type="path"/> <param dataType="string" description="Updated name of the pet" name="name" required="true" type="formData"/> <param dataType="string" description="Updated status of the pet" name="status" required="true" type="formData"/> <to uri="direct:updatePetWithForm"/> </post> - <delete id="deletePet" uri="/pet/{petId}"> + <delete id="deletePet" path="/pet/{petId}"> <param dataType="string" name="api_key" required="false" type="header"/> <param dataType="integer" description="Pet id to delete" name="petId" required="true" type="path"/> <to uri="direct:deletePet"/> </delete> - <post consumes="multipart/form-data" id="uploadFile" produces="application/json" uri="/pet/{petId}/uploadImage"> + <post consumes="multipart/form-data" id="uploadFile" produces="application/json" path="/pet/{petId}/uploadImage"> <param dataType="integer" description="ID of pet to update" name="petId" required="true" type="path"/> <param dataType="string" description="Additional data to pass to server" name="additionalMetadata" required="true" type="formData"/> <param dataType="string" description="file to upload" name="file" required="true" type="formData"/> <to uri="direct:uploadFile"/> </post> - <get id="getInventory" produces="application/json" uri="/store/inventory"> + <get id="getInventory" produces="application/json" path="/store/inventory"> <description>Returns a map of status codes to quantities</description> <to uri="direct:getInventory"/> </get> - <post consumes="*/*" id="placeOrder" produces="application/xml,application/json" uri="/store/order"> + <post consumes="*/*" id="placeOrder" produces="application/xml,application/json" path="/store/order"> <param description="order placed for purchasing the pet" name="body" required="true" type="body"/> <to uri="direct:placeOrder"/> </post> - <get id="getOrderById" produces="application/xml,application/json" uri="/store/order/{orderId}"> + <get id="getOrderById" produces="application/xml,application/json" path="/store/order/{orderId}"> <description>For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions</description> <param dataType="integer" description="ID of pet that needs to be fetched" name="orderId" required="true" type="path"/> <to uri="direct:getOrderById"/> </get> - <delete id="deleteOrder" uri="/store/order/{orderId}"> + <delete id="deleteOrder" path="/store/order/{orderId}"> <description>For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors</description> <param dataType="integer" description="ID of the order that needs to be deleted" name="orderId" required="true" type="path"/> <to uri="direct:deleteOrder"/> </delete> - <post consumes="*/*" id="createUser" uri="/user"> + <post consumes="*/*" id="createUser" path="/user"> <description>This can only be done by the logged in user.</description> <param description="Created user object" name="body" required="true" type="body"/> <to uri="direct:createUser"/> </post> - <post consumes="*/*" id="createUsersWithArrayInput" uri="/user/createWithArray"> + <post consumes="*/*" id="createUsersWithArrayInput" path="/user/createWithArray"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithArrayInput"/> </post> - <post consumes="*/*" id="createUsersWithListInput" uri="/user/createWithList"> + <post consumes="*/*" id="createUsersWithListInput" path="/user/createWithList"> <param description="List of user object" name="body" required="true" type="body"/> <to uri="direct:createUsersWithListInput"/> </post> - <get id="loginUser" produces="application/xml,application/json" uri="/user/login"> + <get id="loginUser" produces="application/xml,application/json" path="/user/login"> <param dataType="string" description="The user name for login" name="username" required="true" type="query"/> <param dataType="string" description="The password for login in clear text" name="password" required="true" type="query"/> <to uri="direct:loginUser"/> </get> - <get id="logoutUser" uri="/user/logout"> + <get id="logoutUser" path="/user/logout"> <to uri="direct:logoutUser"/> </get> - <get id="getUserByName" produces="application/xml,application/json" uri="/user/{username}"> + <get id="getUserByName" produces="application/xml,application/json" path="/user/{username}"> <param dataType="string" description="The name that needs to be fetched. Use user1 for testing. " name="username" required="true" type="path"/> <to uri="direct:getUserByName"/> </get> - <put consumes="*/*" id="updateUser" uri="/user/{username}"> + <put consumes="*/*" id="updateUser" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="name that need to be updated" name="username" required="true" type="path"/> <param description="Updated user object" name="body" required="true" type="body"/> <to uri="direct:updateUser"/> </put> - <delete id="deleteUser" uri="/user/{username}"> + <delete id="deleteUser" path="/user/{username}"> <description>This can only be done by the logged in user.</description> <param dataType="string" description="The name that needs to be deleted" name="username" required="true" type="path"/> <to uri="direct:deleteUser"/> diff --git a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreYaml.txt b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreYaml.txt index 699a999..04ab05c 100644 --- a/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreYaml.txt +++ b/tooling/openapi-rest-dsl-generator/src/test/resources/OpenApiV3PetstoreYaml.txt @@ -2,7 +2,7 @@ path: "/api/v3" put: - id: "updatePet" - uri: "/pet" + path: "/pet" consumes: "application/json,application/xml" param: - description: "Pet object that needs to be added to the store" @@ -12,7 +12,7 @@ to: uri: "direct:updatePet" - id: "updateUser" - uri: "/user/{username}" + path: "/user/{username}" description: "This can only be done by the logged in user." consumes: "*/*" param: @@ -29,7 +29,7 @@ uri: "direct:updateUser" post: - id: "addPet" - uri: "/pet" + path: "/pet" consumes: "application/json,application/xml" param: - dataType: "boolean" @@ -45,7 +45,7 @@ to: uri: "direct:addPet" - id: "updatePetWithForm" - uri: "/pet/{petId}" + path: "/pet/{petId}" consumes: "application/x-www-form-urlencoded" param: - dataType: "integer" @@ -66,7 +66,7 @@ to: uri: "direct:updatePetWithForm" - id: "uploadFile" - uri: "/pet/{petId}/uploadImage" + path: "/pet/{petId}/uploadImage" consumes: "multipart/form-data" produces: "application/json" param: @@ -88,7 +88,7 @@ to: uri: "direct:uploadFile" - id: "placeOrder" - uri: "/store/order" + path: "/store/order" consumes: "*/*" produces: "application/xml,application/json" param: @@ -99,7 +99,7 @@ to: uri: "direct:placeOrder" - id: "createUser" - uri: "/user" + path: "/user" description: "This can only be done by the logged in user." consumes: "*/*" param: @@ -110,7 +110,7 @@ to: uri: "direct:createUser" - id: "createUsersWithArrayInput" - uri: "/user/createWithArray" + path: "/user/createWithArray" consumes: "*/*" param: - description: "List of user object" @@ -120,7 +120,7 @@ to: uri: "direct:createUsersWithArrayInput" - id: "createUsersWithListInput" - uri: "/user/createWithList" + path: "/user/createWithList" consumes: "*/*" param: - description: "List of user object" @@ -131,7 +131,7 @@ uri: "direct:createUsersWithListInput" get: - id: "findPetsByStatus" - uri: "/pet/findByStatus" + path: "/pet/findByStatus" description: "Multiple status values can be provided with comma separated strings" produces: "application/xml,application/json" param: @@ -145,7 +145,7 @@ to: uri: "direct:findPetsByStatus" - id: "findPetsByTags" - uri: "/pet/findByTags" + path: "/pet/findByTags" description: "Muliple tags can be provided with comma separated strings. Use\ \ tag1, tag2, tag3 for testing." produces: "application/xml,application/json" @@ -160,7 +160,7 @@ to: uri: "direct:findPetsByTags" - id: "getPetById" - uri: "/pet/{petId}" + path: "/pet/{petId}" description: "Returns a single pet" produces: "application/xml,application/json" param: @@ -172,13 +172,13 @@ to: uri: "direct:getPetById" - id: "getInventory" - uri: "/store/inventory" + path: "/store/inventory" description: "Returns a map of status codes to quantities" produces: "application/json" to: uri: "direct:getInventory" - id: "getOrderById" - uri: "/store/order/{orderId}" + path: "/store/order/{orderId}" description: "For valid response try integer IDs with value >= 1 and <= 10.\ \ Other values will generated exceptions" produces: "application/xml,application/json" @@ -191,7 +191,7 @@ to: uri: "direct:getOrderById" - id: "loginUser" - uri: "/user/login" + path: "/user/login" produces: "application/xml,application/json" param: - dataType: "string" @@ -207,11 +207,11 @@ to: uri: "direct:loginUser" - id: "logoutUser" - uri: "/user/logout" + path: "/user/logout" to: uri: "direct:logoutUser" - id: "getUserByName" - uri: "/user/{username}" + path: "/user/{username}" produces: "application/xml,application/json" param: - dataType: "string" @@ -223,7 +223,7 @@ uri: "direct:getUserByName" delete: - id: "deletePet" - uri: "/pet/{petId}" + path: "/pet/{petId}" param: - dataType: "string" name: "api_key" @@ -237,7 +237,7 @@ to: uri: "direct:deletePet" - id: "deleteOrder" - uri: "/store/order/{orderId}" + path: "/store/order/{orderId}" description: "For valid response try integer IDs with positive integer value.\ \ Negative or non-integer values will generate API errors" param: @@ -249,7 +249,7 @@ to: uri: "direct:deleteOrder" - id: "deleteUser" - uri: "/user/{username}" + path: "/user/{username}" description: "This can only be done by the logged in user." param: - dataType: "string"
