Skip to content

Commit

Permalink
Merge pull request #27 from kakulisen/optimize-samples-readme
Browse files Browse the repository at this point in the history
SCB-1463 optimize samples readme
  • Loading branch information
MabinGo committed Aug 26, 2019
2 parents 20ca789 + 305cc8a commit 40b20c8
Show file tree
Hide file tree
Showing 11 changed files with 253 additions and 34 deletions.
2 changes: 1 addition & 1 deletion README-ZH.md
Expand Up @@ -267,7 +267,7 @@ $ java -jar toolkit-cli-{version}.jar docgenerate -i swagger.yaml -o ./document
例:-f swagger-ui

### 3.4 使用案例
可以在[这里]((https://github.com/kakulisen/servicecomb-toolkit/tree/master/samples))找到使用插件的一些示例
可以在[这里](./samples/README-ZH.md)找到使用插件的一些示例

## 4 社区互动

Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -268,7 +268,7 @@ $ java -jar toolkit-cli-{version}.jar docgenerate -i swagger.yaml -o ./document
例:-f swagger-ui

### 3.4 Use case
some example of using plugin can be found [here](https://github.com/kakulisen/servicecomb-toolkit/tree/master/samples)
some example of using plugin can be found [here](./samples)

## 4 Contact us

Expand Down
1 change: 0 additions & 1 deletion pom.xml
Expand Up @@ -322,7 +322,6 @@
<profile>
<id>release</id>
<modules>
<module>samples</module>
<module>toolkit-distribution</module>
</modules>
<build>
Expand Down
9 changes: 9 additions & 0 deletions samples/README-ZH.md
@@ -0,0 +1,9 @@
# samples | [English](./README.md)

以下是ServiceComb Toolkit的一些使用案例
1. 基于SpringMvc实现的遗留应用自动转换为基于ServiceComb的微服务工程。请参考以下示例
[generate-from-code-sample](./generate-from-code-sample/README-ZH.md)
2. 基于OpenAPI契约文件自动生成基于ServiceComb的微服务工程。请参考以下示例
[generate-from-contract-sample](./generate-from-contract-sample/README-ZH.md)
3. 校验当前项目的API实现代码与契约文件描述是否一致。请参考以下示例
[verify-with-code-sample](./verify-with-code-sample/README-ZH.md)
11 changes: 7 additions & 4 deletions samples/README.md
@@ -1,6 +1,9 @@
# samples
# samples | [中文](./README-ZH.md)

It's the samples of ServiceComb Toolkit
1. [generate-from-code-sample](https://github.com/kakulisen/servicecomb-toolkit/tree/master/samples/generate-from-code-sample)
2. [generate-from-contract-sample](https://github.com/kakulisen/servicecomb-toolkit/tree/master/samples/generate-from-contract-sample)
3. [verify-with-code-sample](https://github.com/kakulisen/servicecomb-toolkit/tree/master/samples/verify-with-code-sample)
1. Legacy applications based on SpringMvc are automatically converted to ServiceComb-based microservice engineering. Please refer to the following sample
[generate-from-code-sample](./generate-from-code-sample)
2. Automatic generation of ServiceComb-based microservice engineering based on OpenAPI contract file. Please refer to the following sample
[generate-from-contract-sample](./generate-from-contract-sample)
3. Verify that the current project's API implementation code is consistent with the contract file description. Please refer to the following sample
[verify-with-code-sample](./verify-with-code-sample)
73 changes: 73 additions & 0 deletions samples/generate-from-code-sample/README-ZH.md
@@ -0,0 +1,73 @@
### Generate From Code Sample
本案例模拟一个多模块项目,包括以下两个服务:
* HelloService
* GoodbyeService

HelloService和GoodbyeService各提供一个接口,本案例将分别将其转换成对应的基于ServiceComb java-chassis的微服务项目

### 运行环境
1. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2. [Maven 3.x](https://maven.apache.org/install.html)

### 步骤1: 配置插件
在示例项目根目录的pom.xml文件中,新增toolkit-maven-plugin插件的配置,如下
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.1.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>code</sourceType>
<!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
<outputDirectory>./target</outputDirectory>
<!-- 生成的微服务代码工程配置 -->
<service>
<!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
<serviceType>all</serviceType>
<groupId>org.apache.servicecom.toolkit</groupId>
<artifactId>generate-from-code-sample</artifactId>
</service>
</configuration>
</plugin>
```

### 步骤2:执行插件
在命令行中执行如下的maven命令:
```
mvn toolkit:generate
```

### 步骤3:输出结果
转换的结果在generate-from-code-sample的target目录下,分别输出契约,文档和基于ServiceComb java-chassis的微服务项目
```
target/
├── contract
│   ├── GoodbyeService
│   │   └── GoodbyeController.yaml
│   └── HelloService
│   └── HelloController.yaml
├── document
│   ├── GoodbyeService
│   │   └── GoodbyeController.html
│   └── HelloService
│   └── HelloController.html
└── project
├── GoodbyeService-consumer
│   ├── pom.xml
│   └── src
├── GoodbyeService-model
│   └── pom.xml
├── GoodbyeService-provider
│   ├── pom.xml
│   └── src
├── HelloService-consumer
│   ├── pom.xml
│   └── src
├── HelloService-model
│   └── pom.xml
├── HelloService-provider
│   ├── pom.xml
│   └── src
└── pom.xml
```
25 changes: 16 additions & 9 deletions samples/generate-from-code-sample/README.md
@@ -1,12 +1,17 @@
## Prerequisites
You will need:
1. [JDK 1.8][jdk]
2. [Maven 3.x][maven]
### Generate From Code Sample
This case simulates a multi-module project that includes the following two services:
* HelloService
* GoodbyeService

HelloService and GoodbyeService each provide an API interface. This case will convert them into corresponding microservices based on ServiceComb java-chassis.

[jdk]: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[maven]: https://maven.apache.org/install.html
### Prerequisites
You will need:
1. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2. [Maven 3.x](https://maven.apache.org/install.html)

## Configure plugin
### Step1: Configure plugin
In the pom.xml file in the root directory of the current sample project, add the configuration of the toolkit-maven-plugin plugin as follows.
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
Expand All @@ -28,12 +33,14 @@ You will need:
</plugin>
```

## Running Demo
### Step2: Running Demo
Execute the following maven command on the command line
```
mvn toolkit:generate
```

### Output Result
### Step3: Output Result
The result of the conversion is in the target directory of generate-from-code-sample, which respectively outputs the contract, the document and the microservice project based on ServiceComb java-chassis.
```
target/
├── contract
Expand Down
60 changes: 60 additions & 0 deletions samples/generate-from-contract-sample/README-ZH.md
@@ -0,0 +1,60 @@
### Generate From Contract Sample
本案例模拟一个空项目,在该项目根目录的contract目录放置了契约
本案例将根据contract目录的契约生成对应的基于ServiceComb java-chassis的微服务项目

### 运行环境
1. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2. [Maven 3.x](https://maven.apache.org/install.html)

### 步骤1: 配置插件
在示例项目根目录的pom.xml文件中,新增toolkit-maven-plugin插件的配置,如下
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.1.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>contract</sourceType>
<!-- 被解析的契约文件路径,在 sourceType 设置为 contract 时有效,且必须设置 -->
<contractLocation>./contract</contractLocation>
<!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
<outputDirectory>./target</outputDirectory>
<!-- 生成的微服务代码工程配置 -->
<service>
<!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
<serviceType>provider</serviceType>
</service>
</configuration>
</plugin>

```

### 步骤2:执行插件
在命令行中执行如下的maven命令:
```
mvn toolkit:generate
```

### 步骤3:输出结果
生成的内容在generate-from-code-sample的target目录下,分别输出文档和基于ServiceComb java-chassis的微服务项目
```
target/
├── document
│   ├── GoodByeService
│   │   └── GoodbyeController.html
│   └── HelloService
│   └── HelloController.html
└── project
├── GoodByeService-model
│   └── pom.xml
├── GoodByeService-provider
│   ├── pom.xml
│   └── src
├── HelloService-model
│   └── pom.xml
├── HelloService-provider
│   ├── pom.xml
│   └── src
└── pom.xml
```
22 changes: 13 additions & 9 deletions samples/generate-from-contract-sample/README.md
@@ -1,12 +1,14 @@
## Prerequisites
You will need:
1. [JDK 1.8][jdk]
2. [Maven 3.x][maven]
### Generate From Contract Sample
This case simulates an empty project, and the contracts are placed in the contract directory of the project root directory.
This case will generate a ServiceComb java-chassis based microservice project based on the contracts in the contract directory.

[jdk]: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[maven]: https://maven.apache.org/install.html
### Prerequisites
You will need:
1. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2. [Maven 3.x](https://maven.apache.org/install.html)

## Configure plugin
### Step1: Configure plugin
In the pom.xml file in the root directory of the current sample project, add the configuration of the toolkit-maven-plugin plugin as follows.
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
Expand All @@ -29,12 +31,14 @@ You will need:

```

## Running Demo
### Step2: Running Demo
Execute the following maven command on the command line
```
mvn toolkit:generate
```

## Output Result
### Step3: Output Result
The generated content is in the target directory of generate-from-code-sample, including the document and the ServiceComb java-chassis-based microservice project.
```
target/
├── document
Expand Down
60 changes: 60 additions & 0 deletions samples/verify-with-code-sample/README-ZH.md
@@ -0,0 +1,60 @@
### Verify With Code Sample
本案例包括以下服务和一个存放标准契约的contract目录
* GreetingService
本案例将使用标准契约校验当前项目的契约并输出校验结果到控制台

### 运行环境
1. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2. [Maven 3.x](https://maven.apache.org/install.html)

### 步骤1: 配置插件
在示例项目根目录的pom.xml文件中,新增toolkit-maven-plugin插件的配置,如下
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.1.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>code</sourceType>
<!-- 样本契约文件目录,必须设置 -->
<destinationContractPath>./contract</destinationContractPath>
</configuration>
</plugin>
```

### 步骤2:执行插件
在命令行中执行如下的maven命令:
```
mvn toolkit:verify
```

### 步骤3:输出结果
校验的结果直接在控制台上输出
```
[INFO] Contract is not matched, difference is as follows
[INFO] ./contract/GreetingController.yaml vs /opt/sunlisen/workspace/servicecomb-toolkit/samples/verify-with-code-sample/target/tmp-contract/2244468406394280775/GreetingController.yaml
@@ -1,20 +1,3 @@
1 -## ---------------------------------------------------------------------------
2 -## Licensed to the Apache Software Foundation (ASF) under one or more
3 -## contributor license agreements. See the NOTICE file distributed with
4 -## this work for additional information regarding copyright ownership.
5 -## The ASF licenses this file to You under the Apache License, Version 2.0
6 -## (the "License"); you may not use this file except in compliance with
7 -## the License. You may obtain a copy of the License at
8 -##
9 -## http://www.apache.org/licenses/LICENSE-2.0
10 -##
11 -## Unless required by applicable law or agreed to in writing, software
12 -## distributed under the License is distributed on an "AS IS" BASIS,
13 -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 -## See the License for the specific language governing permissions and
15 -## limitations under the License.
16 -## ---------------------------------------------------------------------------
17 -
18 --- 1 ---
19 swagger: "2.0" 2 swagger: "2.0"
20 info: 3 info:
this is end of compare
```
22 changes: 13 additions & 9 deletions samples/verify-with-code-sample/README.md
@@ -1,12 +1,14 @@
## Prerequisites
You will need:
1. [JDK 1.8][jdk]
2. [Maven 3.x][maven]
### Verify With Code Sample
This case simulates a multi-module project that includes one of the following services and a contract directory that holds standard contracts.
This case will use the standard contract to verify the contract of the current project and output the verification result to the console

[jdk]: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[maven]: https://maven.apache.org/install.html
### Prerequisites
You will need:
1. [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2. [Maven 3.x](https://maven.apache.org/install.html)

## Configure plugin
### Step1: Configure plugin
In the pom.xml file in the root directory of the current sample project, add the configuration of the toolkit-maven-plugin plugin as follows.
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
Expand All @@ -21,12 +23,14 @@ You will need:
</plugin>
```

## Running Demo
### Step2: Running Demo
Execute the following maven command on the command line
```
mvn toolkit:verify
```

## Output Result
### Step3: Output Result
The result of the verification is output directly on the console
```
[INFO] Contract is not matched, difference is as follows
[INFO] ./contract/GreetingController.yaml vs /opt/sunlisen/workspace/servicecomb-toolkit/samples/verify-with-code-sample/target/tmp-contract/2244468406394280775/GreetingController.yaml
Expand Down

0 comments on commit 40b20c8

Please sign in to comment.