This is an automated email from the ASF dual-hosted git repository.

mabin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-toolkit.git


The following commit(s) were added to refs/heads/master by this push:
     new 8cfd928  SCB-1456 Fix the plugin bug that throws some exception when 
specifying configuration property contractLocation as a file
     new ebd754e  Merge pull request #23 from kakulisen/fix-plugin-bug
8cfd928 is described below

commit 8cfd9284c85700f7cd8392df76fa359826ff72ff
Author: kakulisen <[email protected]>
AuthorDate: Fri Aug 23 00:30:07 2019 +0800

    SCB-1456 Fix the plugin bug that throws some exception when specifying 
configuration property contractLocation as a file
    
    Signed-off-by: kakulisen <[email protected]>
---
 .../servicecomb/toolkit/plugin/GenerateUtil.java   | 35 ++++++++++++++++------
 .../toolkit/plugin/GenerateUtilTest.java           |  5 ++++
 2 files changed, 31 insertions(+), 9 deletions(-)

diff --git 
a/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateUtil.java
 
b/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateUtil.java
index 8e075e5..f769a04 100755
--- 
a/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateUtil.java
+++ 
b/toolkit-maven-plugin/src/main/java/org/apache/servicecomb/toolkit/plugin/GenerateUtil.java
@@ -122,16 +122,8 @@ class GenerateUtil {
           }
 
           CodegenConfigurator configurator = new CodegenConfigurator();
+          commonConfig(configurator, service);
           configurator.setOutputDir(codeOutput)
-              .setLang("ServiceComb")
-              .setApiPackage(service.getPackageName())
-              .setGroupId(service.getGroupId())
-              .setArtifactId(service.getArtifactId())
-              .setModelPackage(service.getPackageName())
-              .setLibrary(service.getProgrammingModel())
-              .addAdditionalProperty("mainClassPackage", 
service.getPackageName())
-              .setArtifactVersion(service.getArtifactVersion())
-              .addAdditionalProperty(ProjectMetaConstant.SERVICE_TYPE, 
service.getServiceType())
               
.addAdditionalProperty(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME,
                   file.getParent().getFileName() + providerProjectNameSuffix)
               
.addAdditionalProperty(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME,
@@ -152,10 +144,35 @@ class GenerateUtil {
     } else {
 
       CodegenConfigurator configurator = new CodegenConfigurator();
+      commonConfig(configurator, service);
+      configurator.setOutputDir(codeOutput)
+          
.addAdditionalProperty(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME,
+              contractFile.getParentFile().getName() + 
providerProjectNameSuffix)
+          
.addAdditionalProperty(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME,
+              contractFile.getParentFile().getName() + 
consumerProjectNameSuffix)
+          
.addAdditionalProperty(GeneratorExternalConfigConstant.MODEL_PROJECT_NAME,
+              contractFile.getParentFile().getName() + modelProjectNameSuffix)
+          .addAdditionalProperty("apiName", 
contractFile.getName().split("\\.")[0])
+          .addAdditionalProperty("microserviceName", 
contractFile.getParentFile().getName());
+
       configurator.setInputSpec(contractLocation);
       Objects.requireNonNull(codeGenerator)
           .configure(Collections.singletonMap("configurators", 
Collections.singletonList(configurator)));
       codeGenerator.generate();
     }
   }
+
+  private static void commonConfig(CodegenConfigurator configurator, 
ServiceConfig service) {
+
+    configurator
+        .setLang("ServiceComb")
+        .setApiPackage(service.getPackageName())
+        .setGroupId(service.getGroupId())
+        .setArtifactId(service.getArtifactId())
+        .setModelPackage(service.getPackageName())
+        .setLibrary(service.getProgrammingModel())
+        .addAdditionalProperty("mainClassPackage", service.getPackageName())
+        .setArtifactVersion(service.getArtifactVersion())
+        .addAdditionalProperty(ProjectMetaConstant.SERVICE_TYPE, 
service.getServiceType());
+  }
 }
diff --git 
a/toolkit-maven-plugin/src/test/java/org/apache/servicecomb/toolkit/plugin/GenerateUtilTest.java
 
b/toolkit-maven-plugin/src/test/java/org/apache/servicecomb/toolkit/plugin/GenerateUtilTest.java
index 49e8f5b..fcfb554 100755
--- 
a/toolkit-maven-plugin/src/test/java/org/apache/servicecomb/toolkit/plugin/GenerateUtilTest.java
+++ 
b/toolkit-maven-plugin/src/test/java/org/apache/servicecomb/toolkit/plugin/GenerateUtilTest.java
@@ -84,6 +84,11 @@ public class GenerateUtilTest {
     } catch (RuntimeException e) {
       assertEquals("Cannot found code generator's implementation", 
e.getMessage());
     }
+
+    // Test the scenario where the configuration property contractLocation is 
specified as a file
+    generateCode(service, contractLocation + File.separator + 
"HelloEndPoint.yaml", projectOutput,
+        Collections.EMPTY_MAP, "default");
+    assertNotEquals(0, Objects.requireNonNull(new 
File(projectOutput).listFiles()).length);
   }
 
   @Test

Reply via email to