Repository: camel Updated Branches: refs/heads/master 13d16f1db -> ff463456a
CAMEL-11163 Add @Generated annotation in REST D... SL Swagger generated code Adds the `@Generated` annotation to the generated source code of `RouteBuilder` implementations. This way IDEs and source code analysis tools know that the code was generated. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ff463456 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ff463456 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ff463456 Branch: refs/heads/master Commit: ff463456afb5a66b9576806311deb9737a00c6c7 Parents: 13d16f1 Author: Zoran Regvart <zregv...@apache.org> Authored: Tue Apr 18 15:08:08 2017 +0200 Committer: Zoran Regvart <zregv...@apache.org> Committed: Tue Apr 18 15:17:02 2017 +0200 ---------------------------------------------------------------------- .../swagger/RestDslSourceCodeGenerator.java | 17 +++++++++++++++++ .../generator/swagger/RestDslGeneratorTest.java | 10 +++++++--- .../src/test/resources/MyRestRoute.txt | 5 +++++ .../src/test/resources/SwaggerPetstore.txt | 5 +++++ 4 files changed, 34 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ff463456/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java ---------------------------------------------------------------------- diff --git a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java index cd27c3b..bbc4b22 100644 --- a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java +++ b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java @@ -17,11 +17,14 @@ package org.apache.camel.generator.swagger; import java.io.IOException; +import java.time.Instant; import java.util.function.Function; import java.util.stream.Collector; +import javax.annotation.Generated; import javax.lang.model.element.Modifier; +import com.squareup.javapoet.AnnotationSpec; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.TypeSpec; @@ -43,6 +46,8 @@ public abstract class RestDslSourceCodeGenerator<T> extends RestDslGenerator<Res private Function<Swagger, String> classNameGenerator = RestDslSourceCodeGenerator::generateClassName; + private Instant generated = Instant.now(); + private String indent = DEFAULT_INDENT; private Function<Swagger, String> packageNameGenerator = RestDslSourceCodeGenerator::generatePackageName; @@ -85,6 +90,10 @@ public abstract class RestDslSourceCodeGenerator<T> extends RestDslGenerator<Res return emitter.result(); } + Instant generated() { + return generated; + } + JavaFile generateSourceCode() { final MethodSpec methodSpec = generateConfigureMethod(swagger); @@ -92,6 +101,8 @@ public abstract class RestDslSourceCodeGenerator<T> extends RestDslGenerator<Res final TypeSpec generatedRouteBulder = TypeSpec.classBuilder(classNameToUse).superclass(RouteBuilder.class) .addModifiers(Modifier.PUBLIC, Modifier.FINAL).addMethod(methodSpec) + .addAnnotation(AnnotationSpec.builder(Generated.class).addMember("value", "$S", getClass().getName()) + .addMember("date", "$S", generated()).build()) .addJavadoc("Generated from Swagger specification by Camel REST DSL generator.\n").build(); final String packageNameToUse = packageNameGenerator.apply(swagger); @@ -99,6 +110,12 @@ public abstract class RestDslSourceCodeGenerator<T> extends RestDslGenerator<Res return JavaFile.builder(packageNameToUse, generatedRouteBulder).indent(indent).build(); } + RestDslSourceCodeGenerator<T> withGeneratedTime(final Instant generated) { + this.generated = generated; + + return this; + } + static String generateClassName(final Swagger swagger) { final Info info = swagger.getInfo(); if (info == null) { http://git-wip-us.apache.org/repos/asf/camel/blob/ff463456/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java ---------------------------------------------------------------------- diff --git a/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java b/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java index 3602654..69aee57 100644 --- a/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java +++ b/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java @@ -22,6 +22,7 @@ import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; +import java.time.Instant; import io.swagger.models.Swagger; import io.swagger.parser.SwaggerParser; @@ -35,6 +36,8 @@ import static org.assertj.core.api.Assertions.assertThat; public class RestDslGeneratorTest { + final Instant generated = Instant.parse("2017-10-17T00:00:00.000Z"); + final Swagger swagger = new SwaggerParser().read("petstore.json"); @Test @@ -50,7 +53,7 @@ public class RestDslGeneratorTest { public void shouldGenerateSourceCodeWithDefaults() throws IOException, URISyntaxException { final StringBuilder code = new StringBuilder(); - RestDslGenerator.toAppendable(swagger).generate(code); + RestDslGenerator.toAppendable(swagger).withGeneratedTime(generated).generate(code); final URI file = RestDslGeneratorTest.class.getResource("/SwaggerPetstore.txt").toURI(); final String expectedContent = new String(Files.readAllBytes(Paths.get(file)), StandardCharsets.UTF_8); @@ -62,8 +65,9 @@ public class RestDslGeneratorTest { public void shouldGenerateSourceCodeWithOptions() throws IOException, URISyntaxException { final StringBuilder code = new StringBuilder(); - RestDslGenerator.toAppendable(swagger).withClassName("MyRestRoute").withPackageName("com.example") - .withIndent("\t").withDestinationGenerator(o -> "direct:rest-" + o.getOperationId()).generate(code); + RestDslGenerator.toAppendable(swagger).withGeneratedTime(generated).withClassName("MyRestRoute") + .withPackageName("com.example").withIndent("\t") + .withDestinationGenerator(o -> "direct:rest-" + o.getOperationId()).generate(code); final URI file = RestDslGeneratorTest.class.getResource("/MyRestRoute.txt").toURI(); final String expectedContent = new String(Files.readAllBytes(Paths.get(file)), StandardCharsets.UTF_8); http://git-wip-us.apache.org/repos/asf/camel/blob/ff463456/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt ---------------------------------------------------------------------- diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt index 4b19f69..d782300 100644 --- a/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt +++ b/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt @@ -1,5 +1,6 @@ package com.example; +import javax.annotation.Generated; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.rest.CollectionFormat; import org.apache.camel.model.rest.RestParamType; @@ -7,6 +8,10 @@ import org.apache.camel.model.rest.RestParamType; /** * Generated from Swagger specification by Camel REST DSL generator. */ +@Generated( + value = "org.apache.camel.generator.swagger.AppendableGenerator", + date = "2017-10-17T00:00:00Z" +) public final class MyRestRoute extends RouteBuilder { /** * Defines Apache Camel routes using REST DSL fluent API. http://git-wip-us.apache.org/repos/asf/camel/blob/ff463456/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt ---------------------------------------------------------------------- diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt index 21d259c..6a4cb0f 100644 --- a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt +++ b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt @@ -1,5 +1,6 @@ package io.swagger.petstore; +import javax.annotation.Generated; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.rest.CollectionFormat; import org.apache.camel.model.rest.RestParamType; @@ -7,6 +8,10 @@ import org.apache.camel.model.rest.RestParamType; /** * Generated from Swagger specification by Camel REST DSL generator. */ +@Generated( + value = "org.apache.camel.generator.swagger.AppendableGenerator", + date = "2017-10-17T00:00:00Z" +) public final class SwaggerPetstore extends RouteBuilder { /** * Defines Apache Camel routes using REST DSL fluent API.