You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2019/06/21 07:09:46 UTC
[servicecomb-toolkit] 30/49: Adjust mustache model and bugfixed
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 14479e7d444b15f27d4558d3494f5f62d1ff655f
Author: MabinGo <bi...@huawei.com>
AuthorDate: Thu May 30 20:29:46 2019 +0800
Adjust mustache model and bugfixed
Signed-off-by: MabinGo <bi...@huawei.com>
---
.../toolkit/codegen/ServiceCombCodegen.java | 10 +-
.../ServiceComb/consumer/Application.mustache | 24 +---
.../ServiceComb/consumer/apiConsumer.mustache | 79 +++++------
.../consumer/formParamsConsumer.mustache | 3 +-
.../resources/ServiceComb/consumer/pom.mustache | 105 ++++++++-------
.../main/resources/ServiceComb/enumClass.mustache | 71 +++++-----
.../resources/ServiceComb/enumOuterClass.mustache | 12 +-
.../libraries/JAX-RS/Application.mustache | 1 -
.../ServiceComb/libraries/JAX-RS/api.mustache | 37 +++--
.../ServiceComb/libraries/JAX-RS/api_test.mustache | 39 ------
.../libraries/JAX-RS/formParams.mustache | 3 +-
.../ServiceComb/libraries/JAX-RS/pom.mustache | 150 ++++++++++-----------
.../libraries/POJO/Application.mustache | 1 -
.../ServiceComb/libraries/POJO/api.mustache | 21 ++-
.../libraries/POJO/apiInterface.mustache | 16 +--
.../ServiceComb/libraries/POJO/formParams.mustache | 3 +-
.../ServiceComb/libraries/POJO/pom.mustache | 69 +++++-----
.../libraries/SpringBoot/Application.mustache | 1 -
.../ServiceComb/libraries/SpringBoot/api.mustache | 13 +-
.../libraries/SpringBoot/api_test.mustache | 38 ------
.../libraries/SpringBoot/formParams.mustache | 3 +-
.../libraries/SpringBoot/operationMethod.mustache | 13 +-
.../ServiceComb/libraries/SpringBoot/pom.mustache | 69 +++++-----
.../libraries/SpringMVC/Application.mustache | 1 -
.../ServiceComb/libraries/SpringMVC/api.mustache | 31 ++---
.../libraries/SpringMVC/api_test.mustache | 103 --------------
.../libraries/SpringMVC/formParams.mustache | 3 +-
.../ServiceComb/libraries/SpringMVC/pom.mustache | 68 +++++-----
.../resources/ServiceComb/model/model.mustache | 9 --
.../main/resources/ServiceComb/model/pom.mustache | 20 +--
.../src/main/resources/ServiceComb/pojo.mustache | 111 ++++-----------
.../resources/ServiceComb/project/pom.mustache | 90 +++++--------
.../toolkit/common/ImmediateClassLoader.java | 6 +-
.../toolkit/common/TextCompareTest.java | 31 +++--
.../docgen/ContractsSwaggerUIGenerator.java | 5 +-
.../src/test/java/docgen/DocGeneratorTest.java | 122 ++++++++---------
toolkit-cli/pom.xml | 26 +++-
.../servicecomb/toolkit/cli/CodeGenerate.java | 15 ++-
.../servicecomb/toolkit/cli/DocGenerate.java | 31 ++++-
.../servicecomb/toolkit/cli/ToolkitMain.java | 2 +-
toolkit-cli/src/main/resources/log4j2.xml | 35 +++++
.../apache/servicecomb/toolkit/cli/CliTest.java | 2 +-
.../java/plugin/GenerateContractsDocMojoTest.java | 21 ++-
.../java/plugin/GenerateContractsMojoTest.java | 26 ++--
.../projects/project-generateContracts/pom.xml | 52 +++----
.../projects/project-generateContractsDoc/pom.xml | 54 ++++----
46 files changed, 701 insertions(+), 944 deletions(-)
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 686afaa..957feef 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
@@ -106,7 +106,8 @@ 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.");
- supportedLibraries.put(SPRING_BOOT_LIBRARY, "ServiceComb Server application using the SpringBoot programming model.");
+ supportedLibraries
+ .put(SPRING_BOOT_LIBRARY, "ServiceComb Server application using the SpringBoot programming model.");
setLibrary(DEFAULT_LIBRARY);
@@ -216,10 +217,12 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo
resourcesFolder(providerProject),
"log4j2.xml")
);
+
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/microservice.mustache",
resourcesFolder(providerProject),
"microservice.yaml")
);
+
apiTemplateFiles.put(apiConsumerTemplate, "Consumer.java");
}
@@ -235,6 +238,11 @@ public class ServiceCombCodegen extends AbstractJavaCodegen implements CodegenCo
"Application.java")
);
+ supportingFiles.add(new SupportingFile("log4j2.mustache",
+ resourcesFolder(consumerProject),
+ "log4j2.xml")
+ );
+
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/microservice.mustache",
resourcesFolder(consumerProject),
"microservice.yaml")
diff --git a/code-generator/src/main/resources/ServiceComb/consumer/Application.mustache b/code-generator/src/main/resources/ServiceComb/consumer/Application.mustache
index 2ee4969..855c97c 100755
--- a/code-generator/src/main/resources/ServiceComb/consumer/Application.mustache
+++ b/code-generator/src/main/resources/ServiceComb/consumer/Application.mustache
@@ -1,28 +1,10 @@
-/*
-* 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;
public class Application {
- public static void main(String[] args) throws Exception {
- System.setProperty("local.registry.file", "notExistJustForceLocal");
- BeanUtils.init();
- }
+ public static void main(String[] args) throws Exception {
+ BeanUtils.init();
+ }
}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/consumer/apiConsumer.mustache b/code-generator/src/main/resources/ServiceComb/consumer/apiConsumer.mustache
index 109d0f9..d23f0b3 100755
--- a/code-generator/src/main/resources/ServiceComb/consumer/apiConsumer.mustache
+++ b/code-generator/src/main/resources/ServiceComb/consumer/apiConsumer.mustache
@@ -1,10 +1,13 @@
package {{apiPackage}};
-import {{modelPackage}}.*;
-
+import static org.springframework.http.MediaType.*;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
{{#imports}}import {{import}};
{{/imports}}
-
+import {{modelPackage}}.*;
+import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
import org.springframework.util.MultiValueMap;
import org.springframework.http.*;
@@ -17,49 +20,47 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
-import org.apache.servicecomb.provider.rest.common.RestSchema;
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
-import static org.springframework.http.MediaType.*;
{{#operations}}
public class {{classname}}Consumer {
- {{#operation}}
+{{#operation}}
- public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>consumer/queryParamsConsumer}}{{>consumer/pathParamsConsumer}}{{>consumer/headerParamsConsumer}}{{>consumer/bodyParamsConsumer}}{{>consumer/formParamsConsumer}}{{#hasMore}},
- {{/hasMore}}{{/allParams}}) {
+ public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>consumer/queryParamsConsumer}}{{>consumer/pathParamsConsumer}}{{>consumer/headerParamsConsumer}}{{>consumer/bodyParamsConsumer}}{{>consumer/formParamsConsumer}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
- Map<String, Object> params = new HashMap<>();
- HttpEntity httpEntity = null;
- HttpHeaders headers = new HttpHeaders();
- {{#allParams}}
- {{#isPathParam}} params.put("{{paramName}}",{{paramName}}); {{/isPathParam}}
- {{#isQueryParam}} params.put("{{paramName}}",{{paramName}}); {{/isQueryParam}}
- {{#isHeaderParam}}
- headers.add("{{paramName}}",{{paramName}});
- {{/isHeaderParam}}
- {{#isFormParam}}
- {{#notFile}}
- httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
- {{/notFile}}
- {{#isFile}}
- httpEntity = new HttpEntity<MultipartFile>({{paramName}}, headers);
- {{/isFile}}
- {{/isFormParam}}
- {{#isBodyParam}}
- httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
- {{/isBodyParam}}
+ Map<String, Object> params = new HashMap<>();
+ HttpEntity httpEntity = null;
+ HttpHeaders headers = new HttpHeaders();
+ {{#allParams}}
+ {{#isPathParam}}
+ params.put("{{paramName}}",{{paramName}});
+ {{/isPathParam}}
+ {{#isQueryParam}}
+ params.put("{{paramName}}",{{paramName}});
+ {{/isQueryParam}}
+ {{#isHeaderParam}}
+ headers.add("{{paramName}}",{{paramName}});
+ {{/isHeaderParam}}
+ {{#isFormParam}}
+ {{#notFile}}
+ httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
+ {{/notFile}}
+ {{#isFile}}
+ httpEntity = new HttpEntity<MultipartFile>({{paramName}}, headers);
+ {{/isFile}}
+ {{/isFormParam}}
+ {{#isBodyParam}}
+ httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
+ {{/isBodyParam}}
+ {{/allParams}}
- {{/allParams}}
- RestTemplate restTemplate = RestTemplateBuilder.create();
+ RestTemplate restTemplate = RestTemplateBuilder.create();
- ResponseEntity<{{>returnTypes}}> result = restTemplate.exchange("cse://{{microserviceName}}/{{path}}",HttpMethod.{{httpMethod}},httpEntity,{{#getGenericClassType}}{{>returnTypes}}{{/getGenericClassType}}.class,params);
+ ResponseEntity<{{>returnTypes}}> result = restTemplate.exchange("cse://{{microserviceName}}/{{path}}",HttpMethod.{{httpMethod}},httpEntity,{{#getGenericClassType}}{{>returnTypes}}{{/getGenericClassType}}.class,params);
- // do something
- return result;
- }
+ // do something
- {{/operation}}
- }
+ return result;
+ }
+{{/operation}}
+}
{{/operations}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/consumer/formParamsConsumer.mustache b/code-generator/src/main/resources/ServiceComb/consumer/formParamsConsumer.mustache
index 6f911b1..5e9bb31 100755
--- a/code-generator/src/main/resources/ServiceComb/consumer/formParamsConsumer.mustache
+++ b/code-generator/src/main/resources/ServiceComb/consumer/formParamsConsumer.mustache
@@ -1,2 +1 @@
-{{#isFormParam}}{{#notFile}}
- {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
+{{#isFormParam}}{{#notFile}}{{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/consumer/pom.mustache b/code-generator/src/main/resources/ServiceComb/consumer/pom.mustache
index 32991a8..7d1333a 100755
--- a/code-generator/src/main/resources/ServiceComb/consumer/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/consumer/pom.mustache
@@ -1,4 +1,6 @@
-<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">
+<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">
+
<modelVersion>4.0.0</modelVersion>
<groupId>{{groupId}}</groupId>
<artifactId>consumer</artifactId>
@@ -7,8 +9,8 @@
<version>{{artifactVersion}}</version>
<properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <java-chassis.version>1.2.0</java-chassis.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-chassis.version>1.2.0</java-chassis.version>
</properties>
<dependencyManagement>
@@ -24,54 +26,61 @@
</dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>{{groupId}}</groupId>
+ <artifactId>model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
- <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-bizkeeper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>handler-loadbalance</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>handler-flowcontrol-qps</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>provider-pojo</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>provider-springmvc</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>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>handler-loadbalance</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>handler-flowcontrol-qps</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>provider-pojo</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>provider-springmvc</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>
<build>
diff --git a/code-generator/src/main/resources/ServiceComb/enumClass.mustache b/code-generator/src/main/resources/ServiceComb/enumClass.mustache
index dfdada5..7c013d8 100755
--- a/code-generator/src/main/resources/ServiceComb/enumClass.mustache
+++ b/code-generator/src/main/resources/ServiceComb/enumClass.mustache
@@ -1,43 +1,40 @@
- /**
- * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}}
- */
- public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} {
+public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} {
+{{#gson}}
+ {{#allowableValues}}
+ {{#enumVars}}
+ @SerializedName({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}})
+ {{{name}}}({{{value}}}){{^-last}},
+ {{/-last}}{{#-last}};{{/-last}}
+ {{/enumVars}}
+ {{/allowableValues}}
+{{/gson}}
+{{^gson}}
+ {{#allowableValues}}
+ {{#enumVars}}
+ {{{name}}}({{{value}}}){{^-last}},
+ {{/-last}}{{#-last}};{{/-last}}
+ {{/enumVars}}
+ {{/allowableValues}}
+{{/gson}}
- {{#gson}}
- {{#allowableValues}}
- {{#enumVars}}
- @SerializedName({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}})
- {{{name}}}({{{value}}}){{^-last}},
- {{/-last}}{{#-last}};{{/-last}}
- {{/enumVars}}
- {{/allowableValues}}
- {{/gson}}
- {{^gson}}
- {{#allowableValues}}
- {{#enumVars}}
- {{{name}}}({{{value}}}){{^-last}},
- {{/-last}}{{#-last}};{{/-last}}
- {{/enumVars}}
- {{/allowableValues}}
- {{/gson}}
+ private {{{datatype}}} value;
- private {{{datatype}}} value;
+ {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}({{{datatype}}} value) {
+ this.value = value;
+ }
- {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}({{{datatype}}} value) {
- this.value = value;
- }
-
- @Override
- public String toString() {
- return String.valueOf(value);
- }
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
- public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue(String text) {
- for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) {
- if (String.valueOf(b.value).equals(text)) {
- return b;
- }
+ public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue(String text) {
+ for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) {
+ if (String.valueOf(b.value).equals(text)) {
+ return b;
}
- return null;
}
- }
\ No newline at end of file
+
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache b/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache
index 6666a6a..7fed969 100755
--- a/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache
+++ b/code-generator/src/main/resources/ServiceComb/enumOuterClass.mustache
@@ -1,18 +1,15 @@
-/**
- * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}}
- */
public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} {
- {{#gson}}
+{{#gson}}
{{#allowableValues}}{{#enumVars}}
@SerializedName({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}})
{{{name}}}({{{value}}}){{^-last}},
{{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}}
- {{/gson}}
- {{^gson}}
+{{/gson}}
+{{^gson}}
{{#allowableValues}}{{#enumVars}}
{{{name}}}({{{value}}}){{^-last}},
{{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}}
- {{/gson}}
+{{/gson}}
private {{{dataType}}} value;
@@ -31,6 +28,7 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
+
return null;
}
}
\ No newline at end of file
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
index fda8d43..7fb2d98 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/Application.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/Application.mustache
@@ -5,7 +5,6 @@ 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
index 750d5ba..b4caf82 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api.mustache
@@ -1,39 +1,38 @@
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.*;
+{{#imports}}import {{import}};
+{{/imports}}
+{{#models}}import {{modelPackage}}.*;{{/models}}
import org.apache.servicecomb.provider.rest.common.RestSchema;
+import io.swagger.annotations.ApiParam;
-@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}} {
-
+@RestSchema(schemaId = "{{#camelcase}}{{classname}}{{/camelcase}}")
+@Path("/")
+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;
- }
+
+ {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}}
+ {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}}
+ @Path("{{{path}}}")
+ @{{httpMethod}}
+ public {{>returnTypes}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}}) {
+
+ // do something
+
+ 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
deleted file mode 100755
index 8f93bb4..0000000
--- a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/api_test.mustache
+++ /dev/null
@@ -1,39 +0,0 @@
-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/formParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache
index 5a4ebf2..9f5b8ec 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache
@@ -1,2 +1 @@
-{{#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}}
+{{#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}}
\ 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
index 35ec7b1..63d56f3 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/JAX-RS/pom.mustache
@@ -1,18 +1,20 @@
-<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">
+<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>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-chassis.version>1.2.0</java-chassis.version>
</properties>
<dependencyManagement>
@@ -28,98 +30,96 @@
</dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>{{groupId}}</groupId>
+ <artifactId>model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
- <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>
+ <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>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</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>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
</plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>1.5.12.RELEASE</version>
+ <configuration>
+ <fork>true</fork>
+ <mainClass>${package}.Application</mainClass>
+ <outputDirectory>target/bin</outputDirectory>
+ </configuration>
<executions>
<execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
<goals>
- <goal>copy-dependencies</goal>
+ <goal>repackage</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>
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/POJO/Application.mustache b/code-generator/src/main/resources/ServiceComb/libraries/POJO/Application.mustache
index fda8d43..7fb2d98 100644
--- a/code-generator/src/main/resources/ServiceComb/libraries/POJO/Application.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/POJO/Application.mustache
@@ -5,7 +5,6 @@ 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/POJO/api.mustache b/code-generator/src/main/resources/ServiceComb/libraries/POJO/api.mustache
old mode 100644
new mode 100755
index abb8da0..ea99a96
--- a/code-generator/src/main/resources/ServiceComb/libraries/POJO/api.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/POJO/api.mustache
@@ -1,10 +1,12 @@
package {{apiPackage}};
-import {{modelPackage}}.*;
-
+import static org.springframework.http.MediaType.*;
+import java.util.List;
+import java.util.Map;
+import java.io.File;
{{#imports}}import {{import}};
{{/imports}}
-
+import {{modelPackage}}.*;
import org.apache.servicecomb.provider.pojo.RpcSchema;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -16,10 +18,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
-import java.util.List;
-import java.util.Map;
-import java.io.File;
-import static org.springframework.http.MediaType.*;
@RpcSchema(schemaId = "{{#camelcase}}{{classname}}{{/camelcase}}")
{{#operations}}
@@ -27,12 +25,11 @@ public class {{classname}} implements {{#removeImplSuffix}}{{classname}}{{/remov
{{#operation}}
@Override
- public {{>returnTypes}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},
- {{/hasMore}}{{/allParams}}) {
- // do some magic!
- return null;
- }
+ public {{>returnTypes}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
+ // do something
+ return null;
+ }
{{/operation}}
}
{{/operations}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/POJO/apiInterface.mustache b/code-generator/src/main/resources/ServiceComb/libraries/POJO/apiInterface.mustache
old mode 100644
new mode 100755
index d7c5b3e..84cc2c8
--- a/code-generator/src/main/resources/ServiceComb/libraries/POJO/apiInterface.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/POJO/apiInterface.mustache
@@ -1,23 +1,17 @@
package {{apiPackage}};
-import {{modelPackage}}.*;
-
-{{#imports}}import {{import}};
-{{/imports}}
-
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.io.File;
-
+{{#imports}}import {{import}};
+{{/imports}}
+import {{modelPackage}}.*;
{{#operations}}
public interface {{#removeImplSuffix}}{{classname}}{{/removeImplSuffix}} {
{{#operation}}
-
- public {{>returnTypes}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},
- {{/hasMore}}{{/allParams}});
-
+ public {{>returnTypes}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
{{/operation}}
- }
+}
{{/operations}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/POJO/formParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/POJO/formParams.mustache
index 96f17c8..22cb5a8 100644
--- a/code-generator/src/main/resources/ServiceComb/libraries/POJO/formParams.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/POJO/formParams.mustache
@@ -1,2 +1 @@
-{{#isFormParam}}{{#notFile}}
-{{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} File {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
+{{#isFormParam}}{{#notFile}}{{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} File {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/POJO/pom.mustache b/code-generator/src/main/resources/ServiceComb/libraries/POJO/pom.mustache
old mode 100644
new mode 100755
index c2ceb61..4eb5156
--- a/code-generator/src/main/resources/ServiceComb/libraries/POJO/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/POJO/pom.mustache
@@ -1,10 +1,12 @@
-<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">
+<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>
@@ -28,99 +30,96 @@
</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>transport-highway</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>transport-rest-vertx</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-flowcontrol-qps</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>provider-pojo</artifactId>
</dependency>
- <!--log4j2-->
+
<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>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</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>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
</plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>1.5.12.RELEASE</version>
+ <configuration>
+ <fork>true</fork>
+ <mainClass>${package}.Application</mainClass>
+ <outputDirectory>target/bin</outputDirectory>
+ </configuration>
<executions>
<execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
<goals>
- <goal>copy-dependencies</goal>
+ <goal>repackage</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>
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/Application.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/Application.mustache
index 2184ccb..0cf7ff0 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/Application.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/Application.mustache
@@ -9,7 +9,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
public class Application {
public static void main(String[] args) throws Exception {
- System.setProperty("local.registry.file", "notExistJustForceLocal");
SpringApplication.run(Application.class, args);
}
}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api.mustache
index 33f5a4b..486641c 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api.mustache
@@ -1,10 +1,12 @@
package {{apiPackage}};
-import {{modelPackage}}.*;
-
+import static org.springframework.http.MediaType.*;
+import java.util.List;
+import java.util.Map;
{{#imports}}import {{import}};
{{/imports}}
-
+import {{modelPackage}}.*;
+import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
@@ -15,10 +17,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
-import org.apache.servicecomb.provider.rest.common.RestSchema;
-import java.util.List;
-import java.util.Map;
-import static org.springframework.http.MediaType.*;
@RestSchema(schemaId = "{{#camelcase}}{{classname}}{{/camelcase}}")
@RequestMapping(value = "/", produces = {APPLICATION_JSON_VALUE})
@@ -26,6 +24,5 @@ import static org.springframework.http.MediaType.*;
public class {{classname}} {
{{>operationMethod}}
-
}
{{/operations}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api_test.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api_test.mustache
deleted file mode 100755
index d0444c2..0000000
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/api_test.mustache
+++ /dev/null
@@ -1,38 +0,0 @@
-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/SpringBoot/formParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/formParams.mustache
index 336c14d..794cbfe 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/formParams.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/formParams.mustache
@@ -1,2 +1 @@
-{{#isFormParam}}{{#notFile}}
-@RequestPart(value="{{paramName}}"{{#required}}, required=true{{/required}}{{^required}}, required=false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@RequestPart("file") MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
+{{#isFormParam}}{{#notFile}}@RequestPart(value="{{paramName}}"{{#required}}, required=true{{/required}}{{^required}}, required=false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@RequestPart("file") MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/operationMethod.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/operationMethod.mustache
index 18b598c..948212d 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/operationMethod.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/operationMethod.mustache
@@ -1,13 +1,8 @@
{{#operation}}
+ @RequestMapping(value = "{{path}}", {{#hasProduces}}produces = { {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}} {{#hasConsumes}}consumes = { {{#consumes}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}} method = RequestMethod.{{httpMethod}})
+ public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
+ // do something
- @RequestMapping(value = "{{path}}",
- {{#hasProduces}}produces = { {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}}
- {{#hasConsumes}}consumes = { {{#consumes}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}}
- method = RequestMethod.{{httpMethod}})
- public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},
- {{/hasMore}}{{/allParams}}) {
- // do some magic!
- return new ResponseEntity<{{>returnTypes}}>(HttpStatus.OK);
+ return new ResponseEntity<{{>returnTypes}}>(HttpStatus.OK);
}
-
{{/operation}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/pom.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/pom.mustache
index 3c487c7..23571ee 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringBoot/pom.mustache
@@ -1,18 +1,20 @@
-<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">
+<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>provider</name>
<properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <java-chassis.version>1.2.0</java-chassis.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-chassis.version>1.2.0</java-chassis.version>
</properties>
<dependencyManagement>
@@ -28,12 +30,12 @@
</dependencyManagement>
<dependencies>
-
<dependency>
<groupId>{{groupId}}</groupId>
<artifactId>model</artifactId>
<version>${project.version}</version>
</dependency>
+
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
@@ -48,77 +50,72 @@
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-flowcontrol-qps</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-bizkeeper</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-tracing-zipkin</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>inspector</artifactId>
</dependency>
+
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
+
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
-
</dependencies>
- <!--for package and deploy-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.6</version>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</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>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
</plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>1.5.12.RELEASE</version>
+ <configuration>
+ <fork>true</fork>
+ <mainClass>${package}.Application</mainClass>
+ <outputDirectory>target/bin</outputDirectory>
+ </configuration>
<executions>
<execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
<goals>
- <goal>copy-dependencies</goal>
+ <goal>repackage</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>
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 fda8d43..7fb2d98 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache
@@ -5,7 +5,6 @@ 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/SpringMVC/api.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api.mustache
index 5ef2b31..49ef6aa 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api.mustache
@@ -1,10 +1,12 @@
package {{apiPackage}};
-import {{modelPackage}}.*;
-
+import static org.springframework.http.MediaType.*;
+import java.util.List;
+import java.util.Map;
{{#imports}}import {{import}};
{{/imports}}
-
+import {{modelPackage}}.*;
+import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
@@ -15,28 +17,19 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
-import org.apache.servicecomb.provider.rest.common.RestSchema;
-import java.util.List;
-import java.util.Map;
-import static org.springframework.http.MediaType.*;
@RestSchema(schemaId = "{{#camelcase}}{{classname}}{{/camelcase}}")
@RequestMapping(value = "/", produces = {APPLICATION_JSON_VALUE})
-
{{#operations}}
public class {{classname}} {
- {{#operation}}
+{{#operation}}
- @RequestMapping(value = "{{path}}",
- {{#hasProduces}}produces = { {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}}
- {{#hasConsumes}}consumes = { {{#consumes}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}}
- method = RequestMethod.{{httpMethod}})
- public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},
- {{/hasMore}}{{/allParams}}) {
- // do something
- return new ResponseEntity<{{>returnTypes}}>(HttpStatus.OK);
- }
+ @RequestMapping(value = "{{path}}", {{#hasProduces}}produces = { {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}} {{#hasConsumes}}consumes = { {{#consumes}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}}method = RequestMethod.{{httpMethod}})
+ public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
+ // do something
- {{/operation}}
+ return new ResponseEntity<{{>returnTypes}}>(HttpStatus.OK);
+ }
+{{/operation}}
}
{{/operations}}
\ No newline at end of file
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
deleted file mode 100755
index 3a7bed4..0000000
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/api_test.mustache
+++ /dev/null
@@ -1,103 +0,0 @@
-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;
-
-public class {{classname}}ContractTest {
- @Autowired
- private {{classname}} api;
-
- private static final String NAME_LARRY_JSON = "{\"name\": \"larry\"}";
-
- @Rule
- public TestFailureProviderRule mockTestProvider = new TestFailureProviderRule("{{#camelcase}}{{classname}}{{/camelcase}}Provider", this);
-
- @Pact(provider="{{#camelcase}}{{classname}}{{/camelcase}}Provider", consumer="{{#camelcase}}{{classname}}{{/camelcase}}Consumer")
- public RequestResponsePact createFragment(PactDslWithProvider builder) {
-
-{{#operations}}
- {{#operation}}
- {{#hasHeaderParams}}
- Map<String, String> {{operationId}}RequestHeaders = new HashMap<String, String>();
- {{/hasHeaderParams}}
- {{/operation}}
-{{/operations}}
-{{#operations}}
- {{#operation}}
- {{#responseHeaders}}
- Map<String, String> {{operationId}}ResponseHeaders = new HashMap<String, String>();
- {{/responseHeaders}}
- {{/operation}}
-{{/operations}}
-
- return builder
-{{#operations}}
- {{#operation}}
- .uponReceiving("{{summary}}")
- .path("{{path}}")
- .method("{{httpMethod}}")
- {{#hasHeaderParams}}
- .headers({{operationId}}RequestHeaders)
- {{/hasHeaderParams}}
- .willRespondWith()
- .status(200)
- {{#responseHeaders}}
- .headers({{operationId}}ResponseHeaders)
- {{/responseHeaders}}
- .body("{\"responsetest\": true, \"name\": \"harry\"}")
- {{/operation}}
-{{/operations}}
- .toPact();
- }
-
-
- @Test
- @PactVerification({"{{#camelcase}}{{classname}}{{/camelcase}}Provider"})
- public void allPass() throws IOException {
- mockTestProvider.validateResultWith((result, t) -> {
- assertThat(t, is(nullValue()));
- assertThat(result, is(PactVerificationResult.Ok.INSTANCE));
- });
- doTest("/", NAME_LARRY_JSON);
- }
-
- private void doTest(String path, String json) throws IOException {
- Consumer consumer = new Consumer(mockTestProvider.getUrl());
- consumer.options("/second");
- try {
- consumer.getAsMap(path, "");
- } catch (IOException e) {
- }
- try {
- new Consumer(mockTestProvider2.getUrl()).putAsMap("/", json);
- } catch (IOException e) {
- }
- }
-
-/*
- @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());
- }
-*/
-}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/formParams.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/formParams.mustache
index 336c14d..794cbfe 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/formParams.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/formParams.mustache
@@ -1,2 +1 @@
-{{#isFormParam}}{{#notFile}}
-@RequestPart(value="{{paramName}}"{{#required}}, required=true{{/required}}{{^required}}, required=false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@RequestPart("file") MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
+{{#isFormParam}}{{#notFile}}@RequestPart(value="{{paramName}}"{{#required}}, required=true{{/required}}{{^required}}, required=false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@RequestPart("file") MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/pom.mustache b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/pom.mustache
index c0a4aad..ea04f8c 100755
--- a/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/libraries/SpringMVC/pom.mustache
@@ -1,22 +1,23 @@
-<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">
+<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>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-chassis.version>1.2.0</java-chassis.version>
</properties>
<dependencies>
-
<dependency>
<groupId>{{groupId}}</groupId>
<artifactId>model</artifactId>
@@ -27,76 +28,71 @@
<groupId>org.apache.servicecomb</groupId>
<artifactId>transport-rest-vertx</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>transport-highway</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>provider-springmvc</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>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</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>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
</plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>1.5.12.RELEASE</version>
+ <configuration>
+ <fork>true</fork>
+ <mainClass>${package}.Application</mainClass>
+ <outputDirectory>target/bin</outputDirectory>
+ </configuration>
<executions>
<execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
<goals>
- <goal>copy-dependencies</goal>
+ <goal>repackage</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>
diff --git a/code-generator/src/main/resources/ServiceComb/model/model.mustache b/code-generator/src/main/resources/ServiceComb/model/model.mustache
index 1923ac6..4ea9d7a 100755
--- a/code-generator/src/main/resources/ServiceComb/model/model.mustache
+++ b/code-generator/src/main/resources/ServiceComb/model/model.mustache
@@ -1,16 +1,7 @@
package {{package}};
-import java.util.Objects;
{{#imports}}import {{import}};
{{/imports}}
-{{#serializableModel}}
-import java.io.Serializable;
-{{/serializableModel}}
-{{#useBeanValidation}}
-import org.springframework.validation.annotation.Validated;
-import javax.validation.Valid;
-import javax.validation.constraints.*;
-{{/useBeanValidation}}
{{#withXml}}
import javax.xml.bind.annotation.*;
{{/withXml}}
diff --git a/code-generator/src/main/resources/ServiceComb/model/pom.mustache b/code-generator/src/main/resources/ServiceComb/model/pom.mustache
index d52c176..15086b9 100755
--- a/code-generator/src/main/resources/ServiceComb/model/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/model/pom.mustache
@@ -1,27 +1,29 @@
-<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">
+<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>model</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>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-chassis.version>1.2.0</java-chassis.version>
</properties>
<dependencies>
- {{^isPOJO}}
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- </dependency>
- {{/isPOJO}}
+ {{^isPOJO}}
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ </dependency>
+ {{/isPOJO}}
</dependencies>
<build>
diff --git a/code-generator/src/main/resources/ServiceComb/pojo.mustache b/code-generator/src/main/resources/ServiceComb/pojo.mustache
index ee0aca9..1bf2369 100755
--- a/code-generator/src/main/resources/ServiceComb/pojo.mustache
+++ b/code-generator/src/main/resources/ServiceComb/pojo.mustache
@@ -1,26 +1,23 @@
-/**
- * {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}}
- */
{{#useBeanValidation}}@Validated{{/useBeanValidation}}
{{#discriminator}}{{/discriminator}}
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
-{{#serializableModel}}
+ {{#serializableModel}}
private static final long serialVersionUID = 1L;
+ {{/serializableModel}}
-{{/serializableModel}}
{{#vars}}
- {{#isEnum}}
- {{^isContainer}}
-{{>enumClass}}
- {{/isContainer}}
- {{/isEnum}}
- {{#items.isEnum}}
- {{#items}}
- {{^isContainer}}
-{{>enumClass}}
- {{/isContainer}}
- {{/items}}
- {{/items.isEnum}}
+ {{#isEnum}}
+ {{^isContainer}}
+ {{>enumClass}}
+ {{/isContainer}}
+ {{/isEnum}}
+ {{#items.isEnum}}
+ {{#items}}
+ {{^isContainer}}
+ {{>enumClass}}
+ {{/isContainer}}
+ {{/items}}
+ {{/items.isEnum}}
{{#gson}}
@SerializedName("{{baseName}}")
{{/gson}}
@@ -31,104 +28,50 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{^isContainer}}
private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};
{{/isContainer}}
-
{{/vars}}
+
{{#vars}}
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
this.{{name}} = {{name}};
return this;
}
- {{#isListContainer}}
+ {{#isListContainer}}
public {{classname}} add{{nameInCamelCase}}Item({{{items.datatypeWithEnum}}} {{name}}Item) {
- {{^required}}
+ {{^required}}
if (this.{{name}} == null) {
this.{{name}} = {{{defaultValue}}};
}
- {{/required}}
+ {{/required}}
this.{{name}}.add({{name}}Item);
return this;
}
{{/isListContainer}}
- {{#isMapContainer}}
+ {{#isMapContainer}}
public {{classname}} put{{nameInCamelCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) {
- {{^required}}
+ {{^required}}
if (this.{{name}} == null) {
this.{{name}} = {{{defaultValue}}};
}
- {{/required}}
+ {{/required}}
this.{{name}}.put(key, {{name}}Item);
return this;
}
{{/isMapContainer}}
- /**
- {{#description}}
- * {{{description}}}
- {{/description}}
- {{^description}}
- * Get {{name}}
- {{/description}}
- {{#minimum}}
- * minimum: {{minimum}}
- {{/minimum}}
- {{#maximum}}
- * maximum: {{maximum}}
- {{/maximum}}
- * @return {{name}}
- **/
- {{#vendorExtensions.extraAnnotation}}
+ {{#vendorExtensions.extraAnnotation}}
{{{vendorExtensions.extraAnnotation}}}
{{/vendorExtensions.extraAnnotation}}
-{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} public {{{datatypeWithEnum}}} {{#isBoolean}}is{{/isBoolean}}{{getter}}() {
+ {{#useBeanValidation}}
+ {{>beanValidation}}
+ {{/useBeanValidation}}
+ public {{{datatypeWithEnum}}} {{#isBoolean}}is{{/isBoolean}}{{getter}}() {
return {{name}};
}
public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
this.{{name}} = {{name}};
}
-
- {{/vars}}
-
- @Override
- public boolean equals(java.lang.Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }{{#hasVars}}
- {{classname}} {{classVarName}} = ({{classname}}) o;
- return {{#vars}}Objects.equals(this.{{name}}, {{classVarName}}.{{name}}){{#hasMore}} &&
- {{/hasMore}}{{/vars}}{{#parent}} &&
- super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}}
- return true;{{/hasVars}}
- }
-
- @Override
- public int hashCode() {
- return Objects.hash({{#vars}}{{name}}{{#hasMore}}, {{/hasMore}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}});
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("class {{classname}} {\n");
- {{#parent}}sb.append(" ").append(toIndentedString(super.toString())).append("\n");{{/parent}}
- {{#vars}}sb.append(" {{name}}: ").append(toIndentedString({{name}})).append("\n");
- {{/vars}}sb.append("}");
- return sb.toString();
- }
-
- /**
- * Convert the given object to string with each line indented by 4 spaces
- * (except the first line).
- */
- private String toIndentedString(java.lang.Object o) {
- if (o == null) {
- return "null";
- }
- return o.toString().replace("\n", "\n ");
- }
+{{/vars}}
}
\ No newline at end of file
diff --git a/code-generator/src/main/resources/ServiceComb/project/pom.mustache b/code-generator/src/main/resources/ServiceComb/project/pom.mustache
index bca8ce9..b1acd44 100755
--- a/code-generator/src/main/resources/ServiceComb/project/pom.mustache
+++ b/code-generator/src/main/resources/ServiceComb/project/pom.mustache
@@ -1,63 +1,43 @@
-<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">
- <modelVersion>4.0.0</modelVersion>
- <groupId>{{groupId}}</groupId>
- <artifactId>{{artifactId}}</artifactId>
- <packaging>pom</packaging>
- <name>{{artifactId}}</name>
- <version>{{artifactVersion}}</version>
+<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">
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <java-chassis.version>1.2.0</java-chassis.version>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>1.8</java.version>
- </properties>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>{{groupId}}</groupId>
+ <artifactId>{{artifactId}}</artifactId>
+ <packaging>pom</packaging>
+ <name>{{artifactId}}</name>
+ <version>{{artifactVersion}}</version>
- <modules>
- <module>provider</module>
- <module>consumer</module>
- <module>model</module>
- </modules>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-chassis.version>1.2.0</java-chassis.version>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <java.version>1.8</java.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>
+ <modules>
+ <module>provider</module>
+ <module>consumer</module>
+ <module>model</module>
+ </modules>
+ <dependencyManagement>
<dependencies>
- <dependency>
- <groupId>org.hibernate.validator</groupId>
- <artifactId>hibernate-validator</artifactId>
- </dependency>
+ <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>org.hibernate.validator</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ </dependency>
+ </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>0.13</version>
- <configuration>
- <excludes>
- <exclude>.travis.yml</exclude>
- <exclude>**/*.md</exclude>
- <exclude>**/target/*</exclude>
- <!-- Skip the ssl configuration files -->
- <exculde>**/resources/ssl/**</exculde>
- <!-- Skip the protobuf files -->
- <exclude>**/*.proto</exclude>
- <!-- Skip the idl files -->
- <exclude>**/*.idl</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
\ No newline at end of file
diff --git a/common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java b/common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java
index 08ccced..5e939e5 100755
--- a/common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java
+++ b/common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java
@@ -17,13 +17,13 @@
package org.apache.servicecomb.toolkit.common;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class ImmediateClassLoader extends URLClassLoader {
private final static Logger LOGGER = LoggerFactory.getLogger(ImmediateClassLoader.class);
diff --git a/common/src/test/java/org/apache/servicecomb/toolkit/common/TextCompareTest.java b/common/src/test/java/org/apache/servicecomb/toolkit/common/TextCompareTest.java
old mode 100644
new mode 100755
index 14df512..c8236ab
--- a/common/src/test/java/org/apache/servicecomb/toolkit/common/TextCompareTest.java
+++ b/common/src/test/java/org/apache/servicecomb/toolkit/common/TextCompareTest.java
@@ -1,8 +1,10 @@
package org.apache.servicecomb.toolkit.common;
-import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -13,20 +15,20 @@ import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.*;
+import org.junit.Test;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
public class TextCompareTest {
Path sourcePath = Paths.get("./src/test/resources/compare/HelloEndPoint.yaml");
+
Path destPath = Paths.get("./src/test/resources/compare/HelloEndPoint2.yaml");
@Test
public void contractCompareText() throws IOException {
ContractComparator contractComparator = new ContractComparator(new String(Files.readAllBytes(sourcePath)),
- new String(Files.readAllBytes(destPath)));
+ new String(Files.readAllBytes(destPath)));
assertEquals(MyersAlgorithm.class, contractComparator.getAlgorithm().getClass());
List<Comparison> comparisonList = contractComparator.compare();
@@ -37,7 +39,7 @@ public class TextCompareTest {
@Test
public void contractCompareResultPrint() throws IOException {
ContractComparator contractComparator = new ContractComparator(new String(Files.readAllBytes(sourcePath)),
- new String(Files.readAllBytes(destPath)));
+ new String(Files.readAllBytes(destPath)));
assertEquals(MyersAlgorithm.class, contractComparator.getAlgorithm().getClass());
ByteArrayOutputStream bout = new ByteArrayOutputStream();
@@ -79,7 +81,7 @@ public class TextCompareTest {
});
ContractComparator contractComparator = new ContractComparator("source line",
- "destination line", oneLineAlgorithm);
+ "destination line", oneLineAlgorithm);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
contractComparator.splitPrint(bout);
@@ -88,10 +90,9 @@ public class TextCompareTest {
bout = new ByteArrayOutputStream();
contractComparator = new ContractComparator("source line",
- "source line", oneLineAlgorithm);
+ "source line", oneLineAlgorithm);
contractComparator.splitPrint(bout);
- assertEquals(ComparisionType.EQUAL , contractComparator.compare().get(0).type);
-
+ assertEquals(ComparisionType.EQUAL, contractComparator.compare().get(0).type);
}
private boolean hasNewLine(String s) {
@@ -104,13 +105,11 @@ public class TextCompareTest {
try (ByteArrayOutputStream bout = new ByteArrayOutputStream()) {
ContractComparator contractComparator = new ContractComparator(null,
- new String(Files.readAllBytes(destPath)));
+ new String(Files.readAllBytes(destPath)));
assertEquals(MyersAlgorithm.class, contractComparator.getAlgorithm().getClass());
contractComparator.splitPrint(bout);
-
} catch (RuntimeException e) {
assertEquals("source must not be null", e.getMessage());
}
-
}
}
diff --git a/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java
index 5a27171..f39cd22 100755
--- a/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java
+++ b/doc-generator/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java
@@ -28,11 +28,12 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import io.swagger.models.Swagger;
-import io.swagger.util.Json;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import io.swagger.models.Swagger;
+import io.swagger.util.Json;
+
public class ContractsSwaggerUIGenerator implements DocGenerator {
private final static Logger LOGGER = LoggerFactory.getLogger(ContractsSwaggerUIGenerator.class);
diff --git a/doc-generator/src/test/java/docgen/DocGeneratorTest.java b/doc-generator/src/test/java/docgen/DocGeneratorTest.java
old mode 100644
new mode 100755
index 0ca5bc9..2fe24b9
--- a/doc-generator/src/test/java/docgen/DocGeneratorTest.java
+++ b/doc-generator/src/test/java/docgen/DocGeneratorTest.java
@@ -1,12 +1,5 @@
package docgen;
-import io.swagger.models.Swagger;
-import io.swagger.parser.Swagger20Parser;
-import org.apache.commons.io.FileUtils;
-import org.apache.servicecomb.toolkit.docgen.DocGeneratorManager;
-import org.junit.Assert;
-import org.junit.Test;
-
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -14,83 +7,90 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-public class DocGeneratorTest {
-
+import org.apache.commons.io.FileUtils;
+import org.apache.servicecomb.toolkit.docgen.DocGeneratorManager;
+import org.junit.Assert;
+import org.junit.Test;
- @Test
- public void contractToAsciidoc() throws IOException {
+import io.swagger.models.Swagger;
+import io.swagger.parser.Swagger20Parser;
- Swagger20Parser swagger20Parser = new Swagger20Parser();
- InputStream in = DocGeneratorTest.class.getClassLoader().getResourceAsStream("HelloEndPoint.yaml");
+public class DocGeneratorTest {
- StringBuilder sb = new StringBuilder();
- byte[] bytes = new byte[1024];
- int len = -1;
- while ((len = in.read(bytes)) != -1){
- sb.append(new String(bytes,0,len));
- }
- Swagger swagger = swagger20Parser.parse(sb.toString());
- Path tempDir = Files.createTempDirectory(null);
- Path outputPath = Paths.get(tempDir.toFile().getAbsolutePath()
- + File.separator + "asciidoc.html");
+ @Test
+ public void contractToAsciidoc() throws IOException {
- DocGeneratorManager.generate(swagger,outputPath.toFile().getCanonicalPath() , "asciidoc-html");
+ Swagger20Parser swagger20Parser = new Swagger20Parser();
+ InputStream in = DocGeneratorTest.class.getClassLoader().getResourceAsStream("HelloEndPoint.yaml");
- Assert.assertTrue(Files.exists(outputPath));
- FileUtils.deleteDirectory(tempDir.toFile());
+ StringBuilder sb = new StringBuilder();
+ byte[] bytes = new byte[1024];
+ int len = -1;
+ while ((len = in.read(bytes)) != -1) {
+ sb.append(new String(bytes, 0, len));
}
- @Test
- public void contractTransferToSwaggerUI() throws IOException {
+ Swagger swagger = swagger20Parser.parse(sb.toString());
+ Path tempDir = Files.createTempDirectory(null);
+ Path outputPath = Paths.get(tempDir.toFile().getAbsolutePath()
+ + File.separator + "asciidoc.html");
- Swagger20Parser swagger20Parser = new Swagger20Parser();
+ DocGeneratorManager.generate(swagger, outputPath.toFile().getCanonicalPath(), "asciidoc-html");
- InputStream in = DocGeneratorTest.class.getClassLoader().getResourceAsStream("HelloEndPoint.yaml");
+ Assert.assertTrue(Files.exists(outputPath));
+ FileUtils.deleteDirectory(tempDir.toFile());
+ }
- StringBuilder sb = new StringBuilder();
- byte[] bytes = new byte[1024];
- int len = -1;
- while ((len = in.read(bytes)) != -1) {
- sb.append(new String(bytes, 0, len));
- }
+ @Test
+ public void contractTransferToSwaggerUI() throws IOException {
- Swagger swagger = swagger20Parser.parse(sb.toString());
+ Swagger20Parser swagger20Parser = new Swagger20Parser();
- Path tempDir = Files.createTempDirectory(null);
- Path outputPath = Paths.get(tempDir.toFile().getAbsolutePath()
- + File.separator + "swagger-ui.html");
- DocGeneratorManager.generate(swagger,outputPath.toFile().getCanonicalPath() , "swagger-ui");
+ InputStream in = DocGeneratorTest.class.getClassLoader().getResourceAsStream("HelloEndPoint.yaml");
- Assert.assertTrue(Files.exists(outputPath));
- FileUtils.deleteDirectory(tempDir.toFile());
+ StringBuilder sb = new StringBuilder();
+ byte[] bytes = new byte[1024];
+ int len = -1;
+ while ((len = in.read(bytes)) != -1) {
+ sb.append(new String(bytes, 0, len));
}
- @Test
- public void contractTransferToOther() throws IOException {
+ Swagger swagger = swagger20Parser.parse(sb.toString());
- Swagger20Parser swagger20Parser = new Swagger20Parser();
+ Path tempDir = Files.createTempDirectory(null);
+ Path outputPath = Paths.get(tempDir.toFile().getAbsolutePath()
+ + File.separator + "swagger-ui.html");
+ DocGeneratorManager.generate(swagger, outputPath.toFile().getCanonicalPath(), "swagger-ui");
- InputStream in = DocGeneratorTest.class.getClassLoader().getResourceAsStream("HelloEndPoint.yaml");
+ Assert.assertTrue(Files.exists(outputPath));
+ FileUtils.deleteDirectory(tempDir.toFile());
+ }
- StringBuilder sb = new StringBuilder();
- byte[] bytes = new byte[1024];
- int len = -1;
- while ((len = in.read(bytes)) != -1) {
- sb.append(new String(bytes, 0, len));
- }
+ @Test
+ public void contractTransferToOther() throws IOException {
- Swagger swagger = swagger20Parser.parse(sb.toString());
+ Swagger20Parser swagger20Parser = new Swagger20Parser();
- Path tempDir = Files.createTempDirectory(null);
- Path outputPath = Paths.get(tempDir.toFile().getAbsolutePath()
- + File.separator + "swagger-ui.html");
+ InputStream in = DocGeneratorTest.class.getClassLoader().getResourceAsStream("HelloEndPoint.yaml");
- DocGeneratorManager.generate(swagger, outputPath.toFile().getCanonicalPath(), "other");
+ StringBuilder sb = new StringBuilder();
+ byte[] bytes = new byte[1024];
+ int len = -1;
+ while ((len = in.read(bytes)) != -1) {
+ sb.append(new String(bytes, 0, len));
+ }
- Assert.assertFalse(Files.exists(outputPath));
+ Swagger swagger = swagger20Parser.parse(sb.toString());
- FileUtils.deleteDirectory(tempDir.toFile());
- }
+ Path tempDir = Files.createTempDirectory(null);
+ Path outputPath = Paths.get(tempDir.toFile().getAbsolutePath()
+ + File.separator + "swagger-ui.html");
+
+ DocGeneratorManager.generate(swagger, outputPath.toFile().getCanonicalPath(), "other");
+
+ Assert.assertFalse(Files.exists(outputPath));
+ FileUtils.deleteDirectory(tempDir.toFile());
+ }
}
diff --git a/toolkit-cli/pom.xml b/toolkit-cli/pom.xml
index 73de4b3..295ad61 100755
--- a/toolkit-cli/pom.xml
+++ b/toolkit-cli/pom.xml
@@ -30,6 +30,7 @@
<properties>
<main.class>org.apache.servicecomb.toolkit.cli.ToolkitMain</main.class>
+ <log4j2.version>2.11.0</log4j2.version>
</properties>
<dependencies>
@@ -57,6 +58,24 @@
<artifactId>doc-generator</artifactId>
<version>${project.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
</dependencies>
<build>
@@ -98,12 +117,5 @@
</executions>
</plugin>
</plugins>
-
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
</build>
</project>
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 49f99d1..df01175 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
@@ -29,12 +29,12 @@ import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import org.apache.servicecomb.toolkit.codegen.DefaultCodeGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import io.airlift.airline.Command;
import io.airlift.airline.Option;
import io.swagger.codegen.config.CodegenConfigurator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Command(name = "codegenerate",
description = "Generate multiple models of microservice project by OpenAPI specification file")
@@ -96,18 +96,25 @@ public class CodeGenerate implements Runnable {
configurator.setInputSpec(file.toFile().getCanonicalPath())
.addAdditionalProperty("apiName", file.toFile().getName().split("\\.")[0]);
- new DefaultCodeGenerator().opts(configurator).generate();
+ try {
+ new DefaultCodeGenerator().opts(configurator).generate();
+ } catch (RuntimeException e) {
+ throw new RuntimeException("Failed to generate code base on file " + file.toFile().getName());
+ }
return super.visitFile(file, attrs);
}
});
- } catch (IOException e) {
+ } catch (RuntimeException | IOException e) {
LOGGER.error(e.getMessage());
+ return;
}
} else {
configurator.setInputSpec(specFile);
new DefaultCodeGenerator().opts(configurator).generate();
}
+
+ LOGGER.info("Success to generate code, the directory is: {}", output);
}
}
}
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 988389a..ca007d6 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
@@ -27,13 +27,14 @@ import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
-import org.apache.servicecomb.toolkit.docgen.DocGeneratorManager;
+import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.swagger.SwaggerUtils;
+import org.apache.servicecomb.toolkit.docgen.DocGeneratorManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import io.airlift.airline.Command;
import io.airlift.airline.Option;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Command(name = "docgenerate", description = "Generate document by OpenAPI specification file")
public class DocGenerate implements Runnable {
@@ -59,30 +60,48 @@ public class DocGenerate implements Runnable {
try {
Path specPath = Paths.get(specFile);
+ String[] retValues = new String[1];
+ String[] fileName = new String[1];
+
if (Files.isDirectory(specPath)) {
Files.walkFileTree(specPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
- DocGeneratorManager.generate(SwaggerUtils.parseSwagger(file.toUri().toURL()),
+ retValues[0] = DocGeneratorManager.generate(SwaggerUtils.parseSwagger(file.toUri().toURL()),
output + File.separator + file.toFile().getName().substring(0, file.toFile().getName().indexOf(".")),
format);
+ if (StringUtils.isEmpty(retValues[0])) {
+ fileName[0] = file.toFile().getName();
+ return FileVisitResult.TERMINATE;
+ }
+
return super.visitFile(file, attrs);
}
});
} else if (Files.isRegularFile(specPath)) {
+ fileName[0] = specPath.toFile().getName();
- DocGeneratorManager.generate(SwaggerUtils.parseSwagger(specPath.toUri().toURL()),
+ retValues[0] = DocGeneratorManager.generate(SwaggerUtils.parseSwagger(specPath.toUri().toURL()),
output + File.separator + new File(specFile).getName()
.substring(0, new File(specFile).getName().indexOf(".")),
format);
} else {
- DocGeneratorManager.generate(SwaggerUtils.parseSwagger(URI.create(specFile).toURL()),
+ fileName[0] = specFile;
+
+ retValues[0] = DocGeneratorManager.generate(SwaggerUtils.parseSwagger(URI.create(specFile).toURL()),
output + File.separator + new File(specFile).getName()
.substring(0, new File(specFile).getName().indexOf(".")),
format);
}
+
+ if (StringUtils.isEmpty(retValues[0])) {
+ LOGGER.error("Failed to generate document base on file {}", fileName[0]);
+ return;
+ }
+
+ LOGGER.info("Success to generate document, the directory is: {}", output);
} catch (IOException e) {
LOGGER.error(e.getMessage());
}
diff --git a/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
index 7d0f10b..b5da899 100755
--- a/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
+++ b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
@@ -35,7 +35,7 @@ public class ToolkitMain {
Cli.CliBuilder<Runnable> builder = Cli.<Runnable>builder("java -jar toolkit-cli-" + projectVersion + ".jar");
builder.withDescription("Microservice development toolkit(version " + projectVersion
- + "). More info on https://github.com/MabinGo/toolkit");
+ + "). ");
builder.withDefaultCommand(Help.class);
builder.withCommands(CodeGenerate.class, DocGenerate.class, Help.class);
Runnable cmd = builder.build().parse(args);
diff --git a/toolkit-cli/src/main/resources/log4j2.xml b/toolkit-cli/src/main/resources/log4j2.xml
new file mode 100755
index 0000000..03ca678
--- /dev/null
+++ b/toolkit-cli/src/main/resources/log4j2.xml
@@ -0,0 +1,35 @@
+<?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>
+ <Appenders>
+ <Console name="Console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%m%n"/>
+ </Console>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="Console"/>
+ </Root>
+ <Logger name="io.swagger" additivity="false" level="error">
+ <AppenderRef ref="Console"/>
+ </Logger>
+ </Loggers>
+</configuration>
\ 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 647be5c..5924444 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","JAX-RS","SpringBoot"};
+ String[] programModels = new String[] {"SpringMVC", "POJO", "JAX-RS", "SpringBoot"};
Path tempDir = Files.createTempDirectory(null);
Arrays.stream(programModels).forEach(model -> {
try {
diff --git a/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsDocMojoTest.java b/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsDocMojoTest.java
old mode 100644
new mode 100755
index 1fa05c4..1734236
--- a/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsDocMojoTest.java
+++ b/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsDocMojoTest.java
@@ -1,5 +1,14 @@
package plugin;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.plugin.testing.resources.TestResources;
import org.apache.maven.project.MavenProject;
@@ -7,15 +16,6 @@ import org.apache.servicecomb.toolkit.plugin.GenerateContractsDocMojo;
import org.junit.Rule;
import org.junit.Test;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.*;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.*;
-import static org.mockito.Mockito.mock;
-
public class GenerateContractsDocMojoTest {
@@ -46,8 +46,5 @@ public class GenerateContractsDocMojoTest {
assertEquals(".yaml", this.rule.getVariableValueFromObject(generateContractsDocMojo, "format"));
rule.executeMojo(project, PLUGIN_GOAL);
generateContractsDocMojo.execute();
-
}
-
-
}
diff --git a/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsMojoTest.java b/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsMojoTest.java
old mode 100644
new mode 100755
index df9d780..7472485
--- a/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsMojoTest.java
+++ b/toolkit-maven-plugin/src/test/java/plugin/GenerateContractsMojoTest.java
@@ -1,5 +1,15 @@
package plugin;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.plugin.testing.resources.TestResources;
@@ -8,18 +18,6 @@ import org.apache.servicecomb.toolkit.plugin.GenerateContractsMojo;
import org.junit.Rule;
import org.junit.Test;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.*;
-import static org.mockito.Mockito.mock;
-
public class GenerateContractsMojoTest {
private static final String PLUGIN_GOAL = "generateContracts";
@@ -57,12 +55,12 @@ public class GenerateContractsMojoTest {
rule.setVariableValueToObject(generateContractsMojo, "project", project);
assertNotNull(this.rule.getVariableValueFromObject(generateContractsMojo, "project"));
- assertEquals("target/test_output_contracts", this.rule.getVariableValueFromObject(generateContractsMojo, "outputDir"));
+ assertEquals("target/test_output_contracts",
+ this.rule.getVariableValueFromObject(generateContractsMojo, "outputDir"));
assertEquals(".yaml", this.rule.getVariableValueFromObject(generateContractsMojo, "format"));
generateContractsMojo.execute();
assertTrue(new File("target/test_output_contracts").exists());
}
-
}
diff --git a/toolkit-maven-plugin/src/test/projects/project-generateContracts/pom.xml b/toolkit-maven-plugin/src/test/projects/project-generateContracts/pom.xml
old mode 100644
new mode 100755
index 9a71eb5..0be2ad0
--- a/toolkit-maven-plugin/src/test/projects/project-generateContracts/pom.xml
+++ b/toolkit-maven-plugin/src/test/projects/project-generateContracts/pom.xml
@@ -14,33 +14,33 @@
-->
<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">
+ 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">
- <modelVersion>4.0.0</modelVersion>
- <prerequisites>
- <maven>3.0.3</maven>
- </prerequisites>
+ <modelVersion>4.0.0</modelVersion>
+ <prerequisites>
+ <maven>3.0.3</maven>
+ </prerequisites>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>this-is-for-test-only</artifactId>
- <version>0.1.0-SNAPSHOT</version>
- <name>This is for Test ONLY</name>
- <packaging>jar</packaging>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>this-is-for-test-only</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <name>This is for Test ONLY</name>
+ <packaging>jar</packaging>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>toolkit-maven-plugin</artifactId>
- <version>${project.version}</version>
- <extensions>true</extensions>
- <configuration>
- <outputDir>target/test_output_contracts</outputDir>
- <format>.yaml</format>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>toolkit-maven-plugin</artifactId>
+ <version>${project.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <outputDir>target/test_output_contracts</outputDir>
+ <format>.yaml</format>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
\ No newline at end of file
diff --git a/toolkit-maven-plugin/src/test/projects/project-generateContractsDoc/pom.xml b/toolkit-maven-plugin/src/test/projects/project-generateContractsDoc/pom.xml
old mode 100644
new mode 100755
index 2b05bdf..34187b2
--- a/toolkit-maven-plugin/src/test/projects/project-generateContractsDoc/pom.xml
+++ b/toolkit-maven-plugin/src/test/projects/project-generateContractsDoc/pom.xml
@@ -14,33 +14,33 @@
-->
<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">
+ 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">
- <modelVersion>4.0.0</modelVersion>
- <prerequisites>
- <maven>3.0.3</maven>
- </prerequisites>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>this-is-for-test-only</artifactId>
- <version>1.0-SNAPSHOT</version>
- <name>This is for Test ONLY</name>
- <packaging>jar</packaging>
+ <modelVersion>4.0.0</modelVersion>
+ <prerequisites>
+ <maven>3.0.3</maven>
+ </prerequisites>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>this-is-for-test-only</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <name>This is for Test ONLY</name>
+ <packaging>jar</packaging>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.servicecomb</groupId>
- <artifactId>toolkit-maven-plugin</artifactId>
- <version>${project.version}</version>
- <extensions>true</extensions>
- <configuration>
- <outputDir>./target/plugin-test-output</outputDir>
- <docOutputDir>./target/plugin-test-output</docOutputDir>
- <format>.yaml</format>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>toolkit-maven-plugin</artifactId>
+ <version>${project.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <outputDir>./target/plugin-test-output</outputDir>
+ <docOutputDir>./target/plugin-test-output</docOutputDir>
+ <format>.yaml</format>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
\ No newline at end of file