This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-toolkit.git
commit 724530468772e99748dc47def6beda76e2eddbcb Author: MabinGo <[email protected]> AuthorDate: Fri May 24 10:38:28 2019 +0800 Support JAX-RS programming model Signed-off-by: MabinGo <[email protected]> --- .../toolkit/codegen/RemoveImplSuffixLambda.java | 14 +-- .../toolkit/codegen/ServiceCombCodegen.java | 14 +-- .../src/main/resources/ServiceComb/README.mustache | 20 ---- .../ServiceComb/consumer/microservice.mustache | 17 --- .../resources/ServiceComb/enumOuterClass.mustache | 1 - .../libraries/JAX-RS/Application.mustache | 11 ++ .../ServiceComb/libraries/JAX-RS/api.mustache | 39 +++++++ .../ServiceComb/libraries/JAX-RS/api_test.mustache | 39 +++++++ .../libraries/JAX-RS/bodyParams.mustache | 1 + .../libraries/JAX-RS/formParams.mustache | 2 + .../libraries/JAX-RS/headerParams.mustache | 1 + .../libraries/JAX-RS/pathParams.mustache | 1 + .../ServiceComb/libraries/JAX-RS/pom.mustache | 126 +++++++++++++++++++++ .../libraries/JAX-RS/queryParams.mustache | 1 + .../libraries/SpringMVC/Application.mustache | 17 --- .../libraries/SpringMVC/api_test.mustache | 1 + .../src/main/resources/ServiceComb/log4j2.mustache | 18 --- .../ServiceComb/provider/microservice.mustache | 17 --- .../servicecomb/toolkit/codegen/GeneratorTest.java | 1 + .../toolkit/{ => common}/ContractsUtils.java | 2 +- .../toolkit/{ => common}/ImmediateClassLoader.java | 2 +- .../docgen/ContractsAsciidocGenerator.java | 4 +- .../docgen/ContractsSwaggerUIGenerator.java | 2 +- .../{ => toolkit}/docgen/DocGenerator.java | 2 +- .../{ => toolkit}/docgen/DocGeneratorManager.java | 2 +- ...apache.servicecomb.toolkit.docgen.DocGenerator} | 4 +- .../servicecomb/toolkit/cli/CodeGenerate.java | 4 +- .../servicecomb/toolkit/cli/DocGenerate.java | 5 +- .../src/main/resources/application.properties | 17 +++ .../apache/servicecomb/toolkit/cli/CliTest.java | 2 +- .../toolkit/plugin/ContractGenerator.java | 2 +- .../toolkit/plugin/GenerateContractsDocMojo.java | 2 +- 32 files changed, 268 insertions(+), 123 deletions(-) diff --git a/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/RemoveImplSuffixLambda.java b/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/RemoveImplSuffixLambda.java index 519a584..c322667 100644 --- a/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/RemoveImplSuffixLambda.java +++ b/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/RemoveImplSuffixLambda.java @@ -17,23 +17,21 @@ package org.apache.servicecomb.toolkit.codegen; -import com.samskivert.mustache.Mustache; -import com.samskivert.mustache.Template; - import java.io.IOException; import java.io.Writer; -public class RemoveImplSuffixLambda implements Mustache.Lambda { +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; + +public class RemoveImplSuffixLambda implements Mustache.Lambda { @Override public void execute(Template.Fragment fragment, Writer writer) throws IOException { String text = fragment.execute(); - if(text.endsWith("Impl")){ - text = text.substring(0,text.lastIndexOf("Impl")); + if (text.endsWith("Impl")) { + text = text.substring(0, text.lastIndexOf("Impl")); } writer.write(text); - } - } diff --git a/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java b/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java index 36efe5b..668db24 100755 --- a/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java +++ b/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java @@ -37,6 +37,8 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo private static final String POJO_LIBRARY = "POJO"; + private static final String JAX_RS_LIBRARY = "JAX-RS"; + private String mainClassPackage; private String providerProject = "provider"; @@ -101,6 +103,7 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo supportedLibraries.put(DEFAULT_LIBRARY, "ServiceComb Server application using the springboot programming model."); supportedLibraries.put(POJO_LIBRARY, "ServiceComb Server application using the pojo programming model."); + supportedLibraries.put(JAX_RS_LIBRARY, "ServiceComb Server application using the jax-rs programming model."); setLibrary(DEFAULT_LIBRARY); @@ -129,8 +132,8 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo } if (pojoApiInterfaceTemplate.equals(templateName)) { String suffix = apiTemplateFiles().get(templateName); - String pojoApiInterfaceName = pojoApiInterfaceFolder() + File.separator + camelize(tag) + "Api" + suffix; - additionalProperties.put("pojoApiInterfaceName",camelize(tag) + "Api"); + String pojoApiInterfaceName = pojoApiInterfaceFolder() + File.separator + camelize(tag) + "Api" + suffix; + additionalProperties.put("pojoApiInterfaceName", camelize(tag) + "Api"); return pojoApiInterfaceName; } return super.apiFilename(templateName, tag); @@ -201,11 +204,6 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo "pom.xml") ); - supportingFiles.add(new SupportingFile("README.mustache", - providerProject, - "README.md") - ); - supportingFiles.add(new SupportingFile("Application.mustache", mainClassFolder(providerProject), "Application.java") @@ -264,7 +262,7 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo return apiName; } - if(POJO_LIBRARY.equals(getLibrary())){ + if (POJO_LIBRARY.equals(getLibrary())) { return initialCaps(name) + "ApiImpl"; } diff --git a/code-generator/src/main/resources/ServiceComb/README.mustache b/code-generator/src/main/resources/ServiceComb/README.mustache deleted file mode 100755 index 2258a49..0000000 --- a/code-generator/src/main/resources/ServiceComb/README.mustache +++ /dev/null @@ -1,20 +0,0 @@ -## Welcome to use ServiceComb Java Chassis -This project(module) is generate by *org.apache.servicecomb.archetypes:business-service-springmvc-archetype*, it use **springmvc provider** to develop service producer. - -### More works can be done further: -1. Modify "HelloImpl", add your business service logic, or create some new producers to provide your services. More details can be found : http://servicecomb.apache.org/users/develop-with-springmvc/ -2. Modify "microservice.yaml", change APPLICATION_ID, service_description.name, version, and service center address, endpoints publish address etc. More details can be found : http://servicecomb.apache.org/users/service-definition/ -3. Modify setting value of "mainClass" in pom.xml for package. - -### Package your service -Under project(module) root folder, run -```bash -mvn package -``` -Then you can get outputs in target folder: -- lib : contains all dependencies jars -- xxxxxx-{version}.jar -```bash -java -jar xxxxxx-{version}.jar -``` -*Notice: If you need to modify config setting in "microservice.yaml" like service center address but don't want repackage the executable jar, **you can direct place a new "microservice.yaml" file in same folder, then settings will be overridden.*** \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/consumer/microservice.mustache b/code-generator/src/main/resources/ServiceComb/consumer/microservice.mustache index 72d38b6..113cb37 100755 --- a/code-generator/src/main/resources/ServiceComb/consumer/microservice.mustache +++ b/code-generator/src/main/resources/ServiceComb/consumer/microservice.mustache @@ -1,20 +1,3 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- - #Indicates an application name APPLICATION_ID: {{applicationId}} service_description: diff --git a/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache b/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache index a5f0034..6666a6a 100755 --- a/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache +++ b/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache @@ -1,4 +1,3 @@ - /** * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} */ diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/Application.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/Application.mustache new file mode 100755 index 0000000..fda8d43 --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/Application.mustache @@ -0,0 +1,11 @@ +package {{mainClassPackage}}; + +import org.apache.servicecomb.foundation.common.utils.BeanUtils; + +public class Application { + + public static void main(String[] args) throws Exception { + System.setProperty("local.registry.file", "notExistJustForceLocal"); + BeanUtils.init(); + } +} \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api.mustache new file mode 100755 index 0000000..750d5ba --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api.mustache @@ -0,0 +1,39 @@ +package {{package}}; + +{{#models}}import {{modelPackage}}.*;{{/models}} +import io.swagger.annotations.ApiParam; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.util.Map; +import java.util.List; + +import java.io.InputStream; + +import javax.servlet.ServletConfig; +import javax.servlet.http.Part; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.SecurityContext; +import javax.ws.rs.*; +import org.apache.servicecomb.provider.rest.common.RestSchema; + +@RestSchema(schemaId = "{{#camelcase}}{{classname}}{{/camelcase}}") +@Path("/") +{{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} +{{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} +{{#operations}} +public class {{classname}} { + +{{#operation}} + @Path("{{{path}}}") + @{{httpMethod}} + {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} + {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} + public {{>returnTypes}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}}) { + return null; + } +{{/operation}} +} +{{/operations}} diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api_test.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api_test.mustache new file mode 100755 index 0000000..8f93bb4 --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api_test.mustache @@ -0,0 +1,39 @@ +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} +import java.util.*; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + +import static org.junit.Assert.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class {{classname}}Test { +@Autowired +private {{classname}} api; +{{#operations}} + {{#operation}} + @Test + public void {{operationId}}Test() throws Exception { + {{#allParams}} + {{^isFile}} + {{{dataType}}} {{paramName}} = {{{example}}}; + {{/isFile}} + {{#isFile}} + org.springframework.web.multipart.MultipartFile {{paramName}} = null; + {{/isFile}} + {{/allParams}} + ResponseEntity<{{>returnTypes}}> responseEntity = api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + assertEquals(HttpStatus.NOT_IMPLEMENTED, responseEntity.getStatusCode()); + } + {{/operation}} +{{/operations}} +} \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/bodyParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/bodyParams.mustache new file mode 100755 index 0000000..bb1d6ff --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/bodyParams.mustache @@ -0,0 +1 @@ +{{#isBodyParam}} {{{dataType}}} {{paramName}}{{/isBodyParam}} \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache new file mode 100755 index 0000000..5a4ebf2 --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache @@ -0,0 +1,2 @@ +{{#isFormParam}}{{#notFile}} {{#vendorExtensions.x-multipart}}@FormDataParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/vendorExtensions.x-multipart}}{{^vendorExtensions.x-multipart}} {{#defaultValue}} @DefaultValue("{{{defaultValue}}}"){{/defaultValue}} @FormParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/vendorExtensions.x-multipart}}{{/notFile}}{{#isFile}} + Part {{paramName}}{{/isFile}}{{/isFormParam}} diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/headerParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/headerParams.mustache new file mode 100755 index 0000000..25d690c --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/headerParams.mustache @@ -0,0 +1 @@ +{{#isHeaderParam}}@HeaderParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pathParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pathParams.mustache new file mode 100755 index 0000000..10c55d6 --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pathParams.mustache @@ -0,0 +1 @@ +{{#isPathParam}}@PathParam("{{paramName}}") {{{dataType}}} {{paramName}}{{/isPathParam}} \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pom.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pom.mustache new file mode 100755 index 0000000..35ec7b1 --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pom.mustache @@ -0,0 +1,126 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <artifactId>{{artifactId}}</artifactId> + <groupId>{{groupId}}</groupId> + <version>{{artifactVersion}}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>provider</artifactId> + <packaging>jar</packaging> + <name>{{artifactId}}</name> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java-chassis.version>1.2.0</java-chassis.version> + </properties> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>java-chassis-dependencies</artifactId> + <version>${java-chassis.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + + <dependency> + <groupId>{{groupId}}</groupId> + <artifactId>model</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>handler-bizkeeper</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>handler-loadbalance</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>handler-flowcontrol-qps</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-highway</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>transport-rest-vertx</artifactId> + </dependency> + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>provider-jaxrs</artifactId> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-slf4j-impl</artifactId> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + </dependency> + + </dependencies> + + <!--for package and deploy--> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.6</version> + <configuration> + <archive> + <manifest> + <addClasspath>true</addClasspath> + <classpathPrefix>lib/</classpathPrefix> + <!--change to your main class--> + <mainClass>${package}.Application</mainClass> + </manifest> + <manifestEntries> + <Class-Path>. </Class-Path> + </manifestEntries> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>copy-dependencies</id> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <outputDirectory>target/lib</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/queryParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/queryParams.mustache new file mode 100755 index 0000000..458b8de --- /dev/null +++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/queryParams.mustache @@ -0,0 +1 @@ +{{#isQueryParam}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache index aef3762..fda8d43 100755 --- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache +++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache @@ -1,20 +1,3 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package {{mainClassPackage}}; import org.apache.servicecomb.foundation.common.utils.BeanUtils; diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api_test.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api_test.mustache index 8d2d3a2..3a7bed4 100755 --- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api_test.mustache +++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api_test.mustache @@ -1,4 +1,5 @@ package {{package}}; + {{#imports}}import {{import}}; {{/imports}} import java.util.*; diff --git a/code-generator/src/main/resources/ServiceComb/log4j2.mustache b/code-generator/src/main/resources/ServiceComb/log4j2.mustache index e43e15b..8d29bbd 100755 --- a/code-generator/src/main/resources/ServiceComb/log4j2.mustache +++ b/code-generator/src/main/resources/ServiceComb/log4j2.mustache @@ -1,21 +1,3 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to You under the Apache License, Version 2.0 - ~ (the "License"); you may not use this file except in compliance with - ~ the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> - <!--this is sample configuration, please modify as your wish--> <configuration> <Properties> diff --git a/code-generator/src/main/resources/ServiceComb/provider/microservice.mustache b/code-generator/src/main/resources/ServiceComb/provider/microservice.mustache index fba2e77..6846c4a 100755 --- a/code-generator/src/main/resources/ServiceComb/provider/microservice.mustache +++ b/code-generator/src/main/resources/ServiceComb/provider/microservice.mustache @@ -1,20 +1,3 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- - #Indicates an application name APPLICATION_ID: {{applicationId}} service_description: diff --git a/code-generator/src/test/java/org/apache/servicecomb/toolkit/codegen/GeneratorTest.java b/code-generator/src/test/java/org/apache/servicecomb/toolkit/codegen/GeneratorTest.java index 3156fae..08f5ae3 100755 --- a/code-generator/src/test/java/org/apache/servicecomb/toolkit/codegen/GeneratorTest.java +++ b/code-generator/src/test/java/org/apache/servicecomb/toolkit/codegen/GeneratorTest.java @@ -39,6 +39,7 @@ public class GeneratorTest { generateCode("SpringMVC"); generateCode("POJO"); + generateCode("JAX-RS"); } private void generateCode(String programmingModel) throws IOException, URISyntaxException { diff --git a/common/src/main/java/org/apache/servicecomb/toolkit/ContractsUtils.java b/common/src/main/java/org/apache/servicecomb/toolkit/common/ContractsUtils.java similarity index 99% rename from common/src/main/java/org/apache/servicecomb/toolkit/ContractsUtils.java rename to common/src/main/java/org/apache/servicecomb/toolkit/common/ContractsUtils.java index 032e458..01143f0 100755 --- a/common/src/main/java/org/apache/servicecomb/toolkit/ContractsUtils.java +++ b/common/src/main/java/org/apache/servicecomb/toolkit/common/ContractsUtils.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.toolkit; +package org.apache.servicecomb.toolkit.common; import java.io.File; import java.io.IOException; diff --git a/common/src/main/java/org/apache/servicecomb/toolkit/ImmediateClassLoader.java b/common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java similarity index 97% rename from common/src/main/java/org/apache/servicecomb/toolkit/ImmediateClassLoader.java rename to common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java index 421aa1a..f03314a 100755 --- a/common/src/main/java/org/apache/servicecomb/toolkit/ImmediateClassLoader.java +++ b/common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.toolkit; +package org.apache.servicecomb.toolkit.common; import java.io.File; import java.net.URL; diff --git a/doc-generator/src/main/java/org/apache/servicecomb/docgen/ContractsAsciidocGenerator.java b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsAsciidocGenerator.java similarity index 96% rename from doc-generator/src/main/java/org/apache/servicecomb/docgen/ContractsAsciidocGenerator.java rename to doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsAsciidocGenerator.java index 1e28116..a653ee4 100755 --- a/doc-generator/src/main/java/org/apache/servicecomb/docgen/ContractsAsciidocGenerator.java +++ b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsAsciidocGenerator.java @@ -15,12 +15,10 @@ * limitations under the License. */ -package org.apache.servicecomb.docgen; +package org.apache.servicecomb.toolkit.docgen; import java.io.IOException; import java.nio.file.Files; -import java.nio.file.OpenOption; -import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; diff --git a/doc-generator/src/main/java/org/apache/servicecomb/docgen/ContractsSwaggerUIGenerator.java b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java similarity index 98% rename from doc-generator/src/main/java/org/apache/servicecomb/docgen/ContractsSwaggerUIGenerator.java rename to doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java index 2f154b5..26a0aa1 100755 --- a/doc-generator/src/main/java/org/apache/servicecomb/docgen/ContractsSwaggerUIGenerator.java +++ b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.docgen; +package org.apache.servicecomb.toolkit.docgen; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/doc-generator/src/main/java/org/apache/servicecomb/docgen/DocGenerator.java b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/DocGenerator.java similarity index 95% rename from doc-generator/src/main/java/org/apache/servicecomb/docgen/DocGenerator.java rename to doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/DocGenerator.java index 6381e5e..6fb053a 100755 --- a/doc-generator/src/main/java/org/apache/servicecomb/docgen/DocGenerator.java +++ b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/DocGenerator.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.docgen; +package org.apache.servicecomb.toolkit.docgen; import io.swagger.models.Swagger; diff --git a/doc-generator/src/main/java/org/apache/servicecomb/docgen/DocGeneratorManager.java b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/DocGeneratorManager.java similarity index 97% rename from doc-generator/src/main/java/org/apache/servicecomb/docgen/DocGeneratorManager.java rename to doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/DocGeneratorManager.java index 17566b8..a2b6bc3 100755 --- a/doc-generator/src/main/java/org/apache/servicecomb/docgen/DocGeneratorManager.java +++ b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/DocGeneratorManager.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.docgen; +package org.apache.servicecomb.toolkit.docgen; import java.util.ServiceLoader; import java.util.concurrent.CopyOnWriteArrayList; diff --git a/doc-generator/src/main/resources/META-INF/services/org.apache.servicecomb.docgen.DocGenerator b/doc-generator/src/main/resources/META-INF/services/org.apache.servicecomb.toolkit.docgen.DocGenerator similarity index 85% rename from doc-generator/src/main/resources/META-INF/services/org.apache.servicecomb.docgen.DocGenerator rename to doc-generator/src/main/resources/META-INF/services/org.apache.servicecomb.toolkit.docgen.DocGenerator index aa6fb85..5b1bb73 100755 --- a/doc-generator/src/main/resources/META-INF/services/org.apache.servicecomb.docgen.DocGenerator +++ b/doc-generator/src/main/resources/META-INF/services/org.apache.servicecomb.toolkit.docgen.DocGenerator @@ -15,5 +15,5 @@ # limitations under the License. # -org.apache.servicecomb.docgen.ContractsAsciidocGenerator -org.apache.servicecomb.docgen.ContractsSwaggerUIGenerator \ No newline at end of file +org.apache.servicecomb.toolkit.docgen.ContractsAsciidocGenerator +org.apache.servicecomb.toolkit.docgen.ContractsSwaggerUIGenerator \ No newline at end of file diff --git a/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java index 2e5da64..4034812 100755 --- a/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java +++ b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java @@ -42,7 +42,7 @@ public class CodeGenerate implements Runnable { description = "programming model, as SpringMVC, POJO or JAX-RS") private String programmingModel; - @Option(name = {"-m", "--microservice-framework"}, title = "language", + @Option(name = {"-m", "--microservice-framework"}, title = "framework", description = "microservice-framework") private String framework = "ServiceComb"; @@ -59,7 +59,7 @@ public class CodeGenerate implements Runnable { private String groupId; @Option(name = {"--artifact-id"}, title = "artifact id", - description = "artifact version in generated microservice project") + description = "artifact id in generated microservice project") private String artifactId; @Option(name = {"--artifact-version"}, title = "artifact version", diff --git a/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java index 755abcf..85fc0e6 100755 --- a/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java +++ b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java @@ -26,7 +26,7 @@ import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; -import org.apache.servicecomb.docgen.DocGeneratorManager; +import org.apache.servicecomb.toolkit.docgen.DocGeneratorManager; import org.apache.servicecomb.swagger.SwaggerUtils; import io.airlift.airline.Command; @@ -69,7 +69,8 @@ public class DocGenerate implements Runnable { } else { DocGeneratorManager.generate(SwaggerUtils.parseSwagger(new File(specFile).toURI().toURL()), - output + File.separator + new File(specFile).getName().substring(0, new File(specFile).getName().indexOf(".")), + output + File.separator + new File(specFile).getName() + .substring(0, new File(specFile).getName().indexOf(".")), format); } } catch (IOException e) { diff --git a/toolkit-cli/src/main/resources/application.properties b/toolkit-cli/src/main/resources/application.properties index e5683df..a278788 100755 --- a/toolkit-cli/src/main/resources/application.properties +++ b/toolkit-cli/src/main/resources/application.properties @@ -1 +1,18 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + version=${project.version} \ No newline at end of file diff --git a/toolkit-cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java b/toolkit-cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java index f8ef465..b2a7664 100755 --- a/toolkit-cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java +++ b/toolkit-cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java @@ -31,7 +31,7 @@ public class CliTest { @Test public void generateServiceCombCodeFromSingleContract() throws IOException { - String[] programModels = new String[] {"SpringMVC","POJO"}; + String[] programModels = new String[] {"SpringMVC", "POJO", "JAX-RS"}; Path tempDir = Files.createTempDirectory(null); Arrays.stream(programModels).forEach(model -> { try { diff --git a/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/ContractGenerator.java b/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/ContractGenerator.java index 85bce32..128dcaa 100755 --- a/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/ContractGenerator.java +++ b/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/ContractGenerator.java @@ -24,7 +24,7 @@ import java.util.List; import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.project.MavenProject; -import org.apache.servicecomb.toolkit.ContractsUtils; +import org.apache.servicecomb.toolkit.common.ContractsUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateContractsDocMojo.java b/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateContractsDocMojo.java index 200d177..c36cd3a 100755 --- a/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateContractsDocMojo.java +++ b/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateContractsDocMojo.java @@ -35,7 +35,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.MavenProject; -import org.apache.servicecomb.docgen.DocGeneratorManager; +import org.apache.servicecomb.toolkit.docgen.DocGeneratorManager; import org.apache.servicecomb.swagger.SwaggerUtils; @Mojo(name = "generateDoc", defaultPhase = LifecyclePhase.COMPILE, requiresDependencyResolution = ResolutionScope.COMPILE)
