This is an automated email from the ASF dual-hosted git repository. dmvolod pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new fa201dd CAMEL-12729: Align Swagger and Rest DSL implementation for camel-example-spring-boot-rest-* examples fa201dd is described below commit fa201ddefad0211d7e7d438a958e131c9a5c6246 Author: Dmitry Volodin <dmvo...@gmail.com> AuthorDate: Tue Aug 14 18:23:49 2018 +0300 CAMEL-12729: Align Swagger and Rest DSL implementation for camel-example-spring-boot-rest-* examples --- .../camel-example-spring-boot-rest-jpa/README.md | 2 +- .../example/spring/boot/rest/jpa/Application.java | 6 ++++++ .../src/main/resources/application-dev.yml | 5 +++++ .../camel/example/springboot/CamelRouter.java | 22 ++++++++++++++++++++-- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/examples/camel-example-spring-boot-rest-jpa/README.md b/examples/camel-example-spring-boot-rest-jpa/README.md index 72e3975..475a5e7 100644 --- a/examples/camel-example-spring-boot-rest-jpa/README.md +++ b/examples/camel-example-spring-boot-rest-jpa/README.md @@ -25,7 +25,7 @@ $ mvn package You can run this example with Maven using: ```sh -$ mvn spring-boot:run +$ mvn spring-boot:run -Dspring.profiles.active=dev ``` Alternatively, you can also run this example using the executable JAR: diff --git a/examples/camel-example-spring-boot-rest-jpa/src/main/java/org/apache/camel/example/spring/boot/rest/jpa/Application.java b/examples/camel-example-spring-boot-rest-jpa/src/main/java/org/apache/camel/example/spring/boot/rest/jpa/Application.java index e595cab..da17c01 100644 --- a/examples/camel-example-spring-boot-rest-jpa/src/main/java/org/apache/camel/example/spring/boot/rest/jpa/Application.java +++ b/examples/camel-example-spring-boot-rest-jpa/src/main/java/org/apache/camel/example/spring/boot/rest/jpa/Application.java @@ -18,9 +18,11 @@ package org.apache.camel.example.spring.boot.rest.jpa; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.rest.RestBindingMode; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @SpringBootApplication @@ -29,6 +31,9 @@ public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } + + @Autowired + private Environment env; @Component class RestApi extends RouteBuilder { @@ -41,6 +46,7 @@ public class Application extends SpringBootServletInitializer { .apiProperty("api.version", "1.0") .apiProperty("cors", "true") .apiContextRouteId("doc-api") + .port(env.getProperty("server.port", "8080")) .bindingMode(RestBindingMode.json); rest("/books").description("Books REST service") diff --git a/examples/camel-example-spring-boot-rest-jpa/src/main/resources/application-dev.yml b/examples/camel-example-spring-boot-rest-jpa/src/main/resources/application-dev.yml index dcc0a56..7fb0971 100644 --- a/examples/camel-example-spring-boot-rest-jpa/src/main/resources/application-dev.yml +++ b/examples/camel-example-spring-boot-rest-jpa/src/main/resources/application-dev.yml @@ -19,6 +19,11 @@ camel: springboot: # The Camel context name name: CamelRestJpa + + component: + servlet: + mapping: + contextPath: /camel-rest-jpa/* spring: # Spring JDBC configuration diff --git a/examples/camel-example-spring-boot-rest-swagger/src/main/java/org/apache/camel/example/springboot/CamelRouter.java b/examples/camel-example-spring-boot-rest-swagger/src/main/java/org/apache/camel/example/springboot/CamelRouter.java index e43daca..d6c7591 100644 --- a/examples/camel-example-spring-boot-rest-swagger/src/main/java/org/apache/camel/example/springboot/CamelRouter.java +++ b/examples/camel-example-spring-boot-rest-swagger/src/main/java/org/apache/camel/example/springboot/CamelRouter.java @@ -18,28 +18,41 @@ package org.apache.camel.example.springboot; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.rest.RestBindingMode; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import static org.apache.camel.model.rest.RestParamType.body; import static org.apache.camel.model.rest.RestParamType.path; +import org.apache.camel.Exchange; + /** * A simple Camel REST DSL route with Swagger API documentation. */ @Component public class CamelRouter extends RouteBuilder { + + @Autowired + private Environment env; + + @Value("${camel.component.servlet.mapping.context-path}") + private String contextPath; @Override public void configure() throws Exception { // @formatter:off - + // this can also be configured in application.properties restConfiguration() .component("servlet") .bindingMode(RestBindingMode.json) .dataFormatProperty("prettyPrint", "true") .enableCORS(true) + .port(env.getProperty("server.port", "8080")) + .contextPath(contextPath.substring(0, contextPath.length() - 2)) // turn on swagger api-doc .apiContextPath("/api-doc") .apiProperty("api.title", "User API") @@ -63,7 +76,12 @@ public class CamelRouter extends RouteBuilder { .param().name("id").type(path).description("The ID of the user to update").dataType("integer").endParam() .param().name("body").type(body).description("The user to update").endParam() .responseMessage().code(204).message("User successfully updated").endResponseMessage() - .to("bean:userService?method=updateUser"); + .to("direct:update-user"); + + from("direct:update-user") + .to("bean:userService?method=updateUser") + .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(204)) + .setBody(constant("")); // @formatter:on }