Skip to content

Commit f593aef

Browse files
authored
simple java client (#153)
1 parent 742c3e9 commit f593aef

14 files changed

+7224
-2491
lines changed

sdk/java-sdk/README.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@ libprotoc 3.17.3
1313
(需先修改文件内部service名)
1414
appcallback.proto:
1515
```protobuf
16-
option java_outer_classname = "AppCallback";
17-
option java_package = "io.mosn.layotto.v1";
16+
option java_outer_classname = "AppCallbackProto";
17+
option java_package = "spec.proto.runtime.v1";
1818
```
1919
runtime.proto
2020
```protobuf
21-
option java_outer_classname = "Runtime";
22-
option java_package = "io.mosn.layotto.v1";
21+
option java_outer_classname = "RuntimeProto";
22+
option java_package = "spec.proto.runtime.v1";
2323
```
2424

2525
### 3. 编译其对应`JAVA`文件
2626
```shell
2727
cd ${your PROJECT path}/spec/proto/runtime/v1
2828
protoc -I=. --java_out=./ runtime.proto
2929
```
30+
31+
PS: 建议用maven插件`protoc-gen-grpc-java`生成protobuf和grpc的java代码

sdk/java-sdk/pom.xml

+36-22
Original file line numberDiff line numberDiff line change
@@ -9,42 +9,56 @@
99
<packaging>jar</packaging>
1010

1111

12-
<properties>
13-
<protobuf-java.version>3.17.2</protobuf-java.version>
14-
</properties>
15-
1612
<dependencies>
1713
<dependency>
18-
<groupId>com.google.protobuf</groupId>
19-
<artifactId>protobuf-java</artifactId>
20-
<version>${protobuf-java.version}</version>
14+
<groupId>io.grpc</groupId>
15+
<artifactId>grpc-netty</artifactId>
16+
<version>1.39.0</version>
17+
</dependency>
18+
<dependency>
19+
<groupId>io.grpc</groupId>
20+
<artifactId>grpc-protobuf</artifactId>
21+
<version>1.39.0</version>
22+
</dependency>
23+
<dependency>
24+
<groupId>io.grpc</groupId>
25+
<artifactId>grpc-stub</artifactId>
26+
<version>1.39.0</version>
27+
</dependency>
28+
<dependency> <!-- necessary for Java 9+ -->
29+
<groupId>org.apache.tomcat</groupId>
30+
<artifactId>annotations-api</artifactId>
31+
<version>6.0.53</version>
32+
<scope>provided</scope>
2133
</dependency>
2234
</dependencies>
23-
24-
2535
<build>
36+
<extensions>
37+
<extension>
38+
<groupId>kr.motd.maven</groupId>
39+
<artifactId>os-maven-plugin</artifactId>
40+
<version>1.6.2</version>
41+
</extension>
42+
</extensions>
2643
<plugins>
2744
<plugin>
28-
<groupId>org.apache.maven.plugins</groupId>
29-
<artifactId>maven-source-plugin</artifactId>
30-
<version>3.2.1</version>
45+
<groupId>org.xolstice.maven.plugins</groupId>
46+
<artifactId>protobuf-maven-plugin</artifactId>
47+
<version>0.6.1</version>
48+
<configuration>
49+
<protocArtifact>com.google.protobuf:protoc:3.17.2:exe:${os.detected.classifier}</protocArtifact>
50+
<pluginId>grpc-java</pluginId>
51+
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.39.0:exe:${os.detected.classifier}</pluginArtifact>
52+
</configuration>
3153
<executions>
3254
<execution>
33-
<id>attach-sources</id>
3455
<goals>
35-
<goal>jar-no-fork</goal>
56+
<goal>compile</goal>
57+
<goal>compile-custom</goal>
3658
</goals>
3759
</execution>
3860
</executions>
3961
</plugin>
40-
<plugin>
41-
<groupId>org.apache.maven.plugins</groupId>
42-
<artifactId>maven-compiler-plugin</artifactId>
43-
<configuration>
44-
<source>6</source>
45-
<target>6</target>
46-
</configuration>
47-
</plugin>
4862
</plugins>
4963
</build>
5064

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.mosn.layotto.v1.domain;
2+
3+
public class SayHelloRequest {
4+
public String serviceName;
5+
public String name;
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.mosn.layotto.v1.domain;
2+
3+
public class SayHelloResponse {
4+
public String hello;
5+
6+
public SayHelloResponse(String hello) {
7+
this.hello = hello;
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package io.mosn.layotto.v1.domain;
2+
3+
public class TryLockRequest {
4+
public String storeName;
5+
public String resourceId;
6+
public String lockOwner;
7+
public int expire;
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package io.mosn.layotto.v1.domain;
2+
3+
public class TryLockResponse {
4+
public boolean success;
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package io.mosn.layotto.v1.domain;
2+
3+
public class UnlockRequest {
4+
public String storeName;
5+
public String resourceId;
6+
public String lockOwner;
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.mosn.layotto.v1.domain;
2+
3+
enum UnlockResponseStatus {
4+
SUCCESS(0),
5+
LOCK_UNEXIST(1),
6+
LOCK_BELONG_TO_OTHERS(2),
7+
INTERNAL_ERROR(3);
8+
private final int value;
9+
10+
UnlockResponseStatus(int value) {
11+
this.value = value;
12+
}
13+
}
14+
15+
public class UnlockResponse {
16+
public UnlockResponseStatus status;
17+
}

0 commit comments

Comments
 (0)