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 3ad4486135d330a1b1881eeea4cfa840b57e82d3 Author: MabinGo <[email protected]> AuthorDate: Thu May 23 00:58:56 2019 +0800 Code optimization and bugfix Signed-off-by: MabinGo <[email protected]> --- code-generator/pom.xml | 1 + .../codegen/ServiceCombProviderCodegen.java | 2 +- .../{SpringMvc => SpringMVC}/Application.mustache | 0 .../{SpringMvc => SpringMVC}/api.mustache | 0 .../{SpringMvc => SpringMVC}/api_test.mustache | 0 .../{SpringMvc => SpringMVC}/bodyParams.mustache | 0 .../{SpringMvc => SpringMVC}/formParams.mustache | 0 .../{SpringMvc => SpringMVC}/headerParams.mustache | 0 .../{SpringMvc => SpringMVC}/pathParams.mustache | 0 .../{SpringMvc => SpringMVC}/pom.mustache | 0 .../{SpringMvc => SpringMVC}/queryParams.mustache | 0 common/pom.xml | 3 - doc-generator/pom.xml | 7 -- toolkit-cli/pom.xml | 6 ++ .../servicecomb/toolkit/cli/CodeGenerate.java | 42 ++++++------ .../servicecomb/toolkit/cli/DocGenerate.java | 80 ++++++++++++++++++++++ .../servicecomb/toolkit/cli/ToolkitMain.java | 11 ++- .../apache/servicecomb/toolkit/cli/CliTest.java | 10 +-- toolkit-maven-plugin/pom.xml | 3 +- 19 files changed, 121 insertions(+), 44 deletions(-) diff --git a/code-generator/pom.xml b/code-generator/pom.xml index 692f757..05ebd16 100755 --- a/code-generator/pom.xml +++ b/code-generator/pom.xml @@ -42,6 +42,7 @@ <artifactId>swagger-codegen</artifactId> <version>${swagger-codegen-version}</version> </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> diff --git a/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombProviderCodegen.java b/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombProviderCodegen.java index fb6fb34..4a39fc0 100755 --- a/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombProviderCodegen.java +++ b/code-generator/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombProviderCodegen.java @@ -31,7 +31,7 @@ import io.swagger.codegen.mustache.CamelCaseLambda; public class ServiceCombProviderCodegen extends AbstractJavaCodegen implements CodegenConfig { - private static final String DEFAULT_LIBRARY = "SpringMvc"; + private static final String DEFAULT_LIBRARY = "SpringMVC"; private String resourcesFolder = projectFolder + File.separator + "resources"; diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/Application.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/Application.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/Application.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/Application.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/api.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/api.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/api.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/api.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/api_test.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/api_test.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/api_test.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/api_test.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/bodyParams.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/bodyParams.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/bodyParams.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/bodyParams.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/formParams.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/formParams.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/formParams.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/formParams.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/headerParams.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/headerParams.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/headerParams.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/headerParams.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/pathParams.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/pathParams.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/pathParams.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/pathParams.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/pom.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/pom.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/pom.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/pom.mustache diff --git a/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/queryParams.mustache b/code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/queryParams.mustache similarity index 100% rename from code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMvc/queryParams.mustache rename to code-generator/src/main/resources/ServiceCombProvider/libraries/SpringMVC/queryParams.mustache diff --git a/common/pom.xml b/common/pom.xml index 4b9bbd9..3324cb2 100755 --- a/common/pom.xml +++ b/common/pom.xml @@ -29,7 +29,6 @@ <artifactId>toolkit-common</artifactId> <dependencies> - <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> @@ -72,8 +71,6 @@ <version>4.12</version> <scope>test</scope> </dependency> - - </dependencies> <build> diff --git a/doc-generator/pom.xml b/doc-generator/pom.xml index bf5ba09..4942890 100755 --- a/doc-generator/pom.xml +++ b/doc-generator/pom.xml @@ -94,13 +94,6 @@ <artifactId>org.eclipse.jgit</artifactId> <version>5.3.0.201903130848-r</version> </dependency> - - <!--<dependency>--> - <!--<groupId>org.apache.servicecomb</groupId>--> - <!--<artifactId>toolkit-common</artifactId>--> - <!--<version>${project.version}</version>--> - <!--</dependency>--> - </dependencies> <build> <plugins> diff --git a/toolkit-cli/pom.xml b/toolkit-cli/pom.xml index 23107f6..0cc4219 100755 --- a/toolkit-cli/pom.xml +++ b/toolkit-cli/pom.xml @@ -47,6 +47,12 @@ <version>4.12</version> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.apache.servicecomb</groupId> + <artifactId>doc-generator</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> <build> 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 8c06581..c9bb03b 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 @@ -34,39 +34,38 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; import io.swagger.codegen.config.CodegenConfigurator; -@Command(name = "generate", description = "CodeGenerate code with chosen lang") +@Command(name = "generate", + description = "Generate multiple models of microservice project by OpenAPI specification file") public class CodeGenerate implements Runnable { - @Option(name = {"--programming-model"}, title = "programming model", required = false, - description = "programming model, equals to --library") + @Option(name = {"-p", "--programming-model"}, title = "programming model", required = false, + description = "programming model, as SpringMVC, POJO or JAX-RS") private String programmingModel; - @Option(name = {"-i", "--input-spec"}, title = "spec file", required = true, - description = "location of the swagger spec, as URL or file (required)") - private String spec; + @Option(name = {"-m", "--microservice-framework"}, title = "language", + description = "microservice-framework") + private String framework = "ServiceCombProvider"; + + @Option(name = {"-i", "--input"}, title = "OpenAPI specification file", required = true, + description = "location of the OpenAPI specification file, as URL or file (required)") + private String specFile; @Option(name = {"-o", "--output"}, title = "output directory", - description = "where to write the generated files (current dir by default)") + description = "location of the generated document (current dir by default)") private String output = ""; - @Option(name = {"--group-id"}, title = "group id", description = "groupId in generated pom.xml") + @Option(name = {"--group-id"}, title = "group id", + description = "groupId in generated microservice project") private String groupId; @Option(name = {"--artifact-id"}, title = "artifact id", - description = "artifact version in generated pom.xml") + description = "artifact version in generated microservice project") private String artifactId; @Option(name = {"--artifact-version"}, title = "artifact version", - description = "artifact version in generated pom.xml") + description = "artifact version in generated microservice project") private String artifactVersion; - @Option(name = {"--library"}, title = "library", description = "library template (sub-template)") - private String library; - - @Option(name = {"-l", "--lang"}, title = "language", - description = "client language to generate (maybe class name in classpath, required)") - private String lang = "ServiceCombProvider"; - @Override public void run() { @@ -77,13 +76,12 @@ public class CodeGenerate implements Runnable { .setGroupId(groupId) .setArtifactId(artifactId) .setArtifactVersion(artifactVersion) - .setLibrary(library) .setLibrary(programmingModel) - .setLang(lang); + .setLang(framework); - if (isNotEmpty(spec)) { + if (isNotEmpty(specFile)) { - File contractFile = new File(spec); + File contractFile = new File(specFile); if (contractFile.isDirectory()) { try { @@ -103,7 +101,7 @@ public class CodeGenerate implements Runnable { e.printStackTrace(); } } else { - configurator.setInputSpec(spec); + configurator.setInputSpec(specFile); new DefaultCodeGenerator().opts(configurator).generate(); } } 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 new file mode 100755 index 0000000..755abcf --- /dev/null +++ b/toolkit-cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java @@ -0,0 +1,80 @@ +/* + * 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 org.apache.servicecomb.toolkit.cli; + +import java.io.File; +import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; + +import org.apache.servicecomb.docgen.DocGeneratorManager; +import org.apache.servicecomb.swagger.SwaggerUtils; + +import io.airlift.airline.Command; +import io.airlift.airline.Option; + +@Command(name = "docGenerate", description = "Generate document by OpenAPI specification file") +public class DocGenerate implements Runnable { + + @Option(name = {"-i", "--input"}, title = "OpenAPI specification file", required = true, + description = "location of the OpenAPI specification file, as URL or file (required)") + private String specFile; + + + @Option(name = {"-f", "--format"}, title = "document format", required = false, + description = "format of document, as html or asciidoc (html by default)") + private String format = "html"; + + @Option(name = {"-o", "--output"}, title = "output directory", + description = "location of the generated document (current dir by default)") + private String output = ""; + + @Override + public void run() { + + try { + Path specPath = Paths.get(specFile); + + 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()), + output + File.separator + file.toFile().getName().substring(0, file.toFile().getName().indexOf(".")), + "html"); + return super.visitFile(file, attrs); + } + }); + } else { + + DocGeneratorManager.generate(SwaggerUtils.parseSwagger(new File(specFile).toURI().toURL()), + output + File.separator + new File(specFile).getName().substring(0, new File(specFile).getName().indexOf(".")), + format); + } + } catch (IOException e) { + // command line , direct print to screen + e.printStackTrace(); + } + } +} 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 32795ef..7d0f10b 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 @@ -33,11 +33,11 @@ public class ToolkitMain { initialProjectVersion(); - Cli.CliBuilder<Runnable> builder = Cli.<Runnable>builder("java -jar assistant-cli-" + projectVersion + ".jar"); - builder.withDescription( - "ServiceComb code generator CLI (version " + projectVersion + "). More info on servicecomb.apache.org"); + 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, Help.class); + builder.withCommands(CodeGenerate.class, DocGenerate.class, Help.class); Runnable cmd = builder.build().parse(args); cmd.run(); @@ -49,8 +49,7 @@ public class ToolkitMain { try { properties.load(ToolkitMain.class.getClassLoader().getResourceAsStream("application.properties")); - projectVersion = Optional.ofNullable(properties.getProperty("version")) - .orElse("unknown"); + projectVersion = Optional.ofNullable(properties.getProperty("version")).orElse("unknown"); } catch (IOException e) { e.printStackTrace(); } 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 9c50338..c49b5d3 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"}; + String[] programModels = new String[] {"SpringMVC"}; Path tempDir = Files.createTempDirectory(null); Arrays.stream(programModels).forEach(model -> { try { @@ -39,13 +39,13 @@ public class CliTest { CliTest.class.getClassLoader().getResource("swagger.yaml"); String[] args = new String[] { "generate", - "-l", + "-m", "ServiceCombProvider", "-i", Paths.get("./src/test/resources/swagger.yaml").toFile().getCanonicalPath(), "-o", tempFile.toFile().getCanonicalPath(), - "--library", + "-p", model }; Assert.assertTrue(!Files.exists(tempFile)); @@ -59,6 +59,7 @@ public class CliTest { tempDir.toFile().deleteOnExit(); } +/* @Test public void generateSpringCloudCodeFromSingleContract() throws IOException { @@ -84,6 +85,7 @@ public class CliTest { tempDir.toFile().deleteOnExit(); } +*/ @Test public void generateCodeFromMultiContract() throws IOException { @@ -101,7 +103,7 @@ public class CliTest { "--artifact-version", "0.0.1", "--programming-model", - "SpringMvc", + "SpringMVC", "-o", tempFile.toFile().getCanonicalPath() }; diff --git a/toolkit-maven-plugin/pom.xml b/toolkit-maven-plugin/pom.xml index b51f335..9574db1 100755 --- a/toolkit-maven-plugin/pom.xml +++ b/toolkit-maven-plugin/pom.xml @@ -29,7 +29,6 @@ <artifactId>toolkit-maven-plugin</artifactId> <dependencies> - <dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>doc-generator</artifactId> @@ -47,6 +46,7 @@ <artifactId>maven-plugin-annotations</artifactId> <version>3.6.0</version> </dependency> + <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> @@ -58,6 +58,7 @@ <artifactId>plexus-archiver</artifactId> <version>2.1</version> </dependency> + <dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>toolkit-common</artifactId>
