Skip to content

Commit 5cb0870

Browse files
author
Alexander Furer
committed
fixes #33 + docs +version upgrades
1 parent 73dc5b1 commit 5cb0870

File tree

10 files changed

+66
-40
lines changed

10 files changed

+66
-40
lines changed

README.adoc

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public class GreeterService extends GreeterGrpc.GreeterImplBase{
126126

127127
To intercept the `io.grpc.ServerBuilder` instance used to build the `io.grpc.Server`, you can add bean that inherits from `org.lognet.springboot.grpc.GRpcServerBuilderConfigurer` to your context and override the `configure` method. +
128128
By the time of invocation of `configure` method, all discovered services, including theirs interceptors, had been added to the passed builder. +
129-
In your implementation of `configure` method, you can continue with passed instance of `ServerBuilder` by adding your configuration:
129+
In your implementation of `configure` method, you can add your custom configuration:
130130

131131
[source,java]
132132
----
@@ -145,26 +145,7 @@ public class MyGRpcServerBuilderConfigurer extends GRpcServerBuilderConfigurer()
145145
}
146146
----
147147

148-
or return completely new instance of `ServerBuilder` :
149148

150-
[source,java]
151-
----
152-
@Component
153-
public class MyGRpcServerBuilderConfigurer extends GRpcServerBuilderConfigurer(){
154-
@Override
155-
public ServerBuilder<?> configure(ServerBuilder<?> serverBuilder){
156-
return ServerBuilder.forPort(YOUR PORT)
157-
.executor(YOUR EXECUTOR INSTANCE)
158-
.compressorRegistry(YOUR COMPRESSION REGISTRY)
159-
.decompressorRegistry(YOUR DECOMPRESSION REGISTRY)
160-
.useTransportSecurity(YOUR TRANSPORT SECURITY SETTINGS);
161-
162-
}
163-
};
164-
}
165-
----
166-
[NOTE]
167-
In this case you should also take care about adding the services to the fresh instance of `ServerBuilder`
168149

169150
== License
170151

ReleaseNotes.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
== Version 2.0.0
2+
- gRPC version upgraded to 1.1.1
3+
- Spring Boot version upgraded to 1.4.4
4+
- *Breaking API change*: +
5+
`void GRpcServerBuilderConfigurer::configure(ServerBuilder<?> serverBuilder)` methods now returns void and overriding of `ServerBuilder` is not supported +
6+
to prevent potential confusion.
7+

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
apply plugin: 'idea'
22
buildscript {
33
ext {
4-
springBootVersion = '1.4.2.RELEASE'
5-
grpcVersion = '1.0.2'
4+
springBootVersion = '1.4.4.RELEASE'
5+
grpcVersion = '1.1.1'
66
}
77
repositories {
88
mavenCentral()

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=1.0.1-SNAPSHOT
1+
version=2.0.0
22
group=org.lognet
33
description=Spring Boot starter for Google RPC.
44
gitHubUrl=https\://github.com/LogNet/grpc-spring-boot-starter

grpc-spring-boot-starter-demo/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apply plugin: 'com.google.protobuf'
2-
apply plugin: 'spring-boot'
2+
apply plugin: 'org.springframework.boot'
33

44
dependencies {
55
compile "io.grpc:grpc-stub:${grpcVersion}"

grpc-spring-boot-starter-demo/src/main/protoGen/io/grpc/examples/CalculatorGrpc.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/**
99
*/
1010
@javax.annotation.Generated(
11-
value = "by gRPC proto compiler (version 1.0.2)",
11+
value = "by gRPC proto compiler (version 1.1.1)",
1212
comments = "Source: calculator.proto")
1313
public class CalculatorGrpc {
1414

@@ -61,7 +61,7 @@ public void calculate(io.grpc.examples.CalculatorOuterClass.CalculatorRequest re
6161
asyncUnimplementedUnaryCall(METHOD_CALCULATE, responseObserver);
6262
}
6363

64-
@java.lang.Override public io.grpc.ServerServiceDefinition bindService() {
64+
@java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
6565
return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
6666
.addMethod(
6767
METHOD_CALCULATE,
@@ -193,9 +193,28 @@ public io.grpc.stub.StreamObserver<Req> invoke(
193193
}
194194
}
195195

196-
public static io.grpc.ServiceDescriptor getServiceDescriptor() {
197-
return new io.grpc.ServiceDescriptor(SERVICE_NAME,
198-
METHOD_CALCULATE);
196+
private static final class CalculatorDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier {
197+
@java.lang.Override
198+
public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
199+
return io.grpc.examples.CalculatorOuterClass.getDescriptor();
200+
}
199201
}
200202

203+
private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
204+
205+
public static io.grpc.ServiceDescriptor getServiceDescriptor() {
206+
io.grpc.ServiceDescriptor result = serviceDescriptor;
207+
if (result == null) {
208+
synchronized (CalculatorGrpc.class) {
209+
result = serviceDescriptor;
210+
if (result == null) {
211+
serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
212+
.setSchemaDescriptor(new CalculatorDescriptorSupplier())
213+
.addMethod(METHOD_CALCULATE)
214+
.build();
215+
}
216+
}
217+
}
218+
return result;
219+
}
201220
}

grpc-spring-boot-starter-demo/src/main/protoGen/io/grpc/examples/GreeterGrpc.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* </pre>
1212
*/
1313
@javax.annotation.Generated(
14-
value = "by gRPC proto compiler (version 1.0.2)",
14+
value = "by gRPC proto compiler (version 1.1.1)",
1515
comments = "Source: greeter.proto")
1616
public class GreeterGrpc {
1717

@@ -70,7 +70,7 @@ public void sayHello(io.grpc.examples.GreeterOuterClass.HelloRequest request,
7070
asyncUnimplementedUnaryCall(METHOD_SAY_HELLO, responseObserver);
7171
}
7272

73-
@java.lang.Override public io.grpc.ServerServiceDefinition bindService() {
73+
@java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
7474
return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
7575
.addMethod(
7676
METHOD_SAY_HELLO,
@@ -220,9 +220,28 @@ public io.grpc.stub.StreamObserver<Req> invoke(
220220
}
221221
}
222222

223-
public static io.grpc.ServiceDescriptor getServiceDescriptor() {
224-
return new io.grpc.ServiceDescriptor(SERVICE_NAME,
225-
METHOD_SAY_HELLO);
223+
private static final class GreeterDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier {
224+
@java.lang.Override
225+
public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
226+
return io.grpc.examples.GreeterOuterClass.getDescriptor();
227+
}
226228
}
227229

230+
private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
231+
232+
public static io.grpc.ServiceDescriptor getServiceDescriptor() {
233+
io.grpc.ServiceDescriptor result = serviceDescriptor;
234+
if (result == null) {
235+
synchronized (GreeterGrpc.class) {
236+
result = serviceDescriptor;
237+
if (result == null) {
238+
serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
239+
.setSchemaDescriptor(new GreeterDescriptorSupplier())
240+
.addMethod(METHOD_SAY_HELLO)
241+
.build();
242+
}
243+
}
244+
}
245+
return result;
246+
}
228247
}

grpc-spring-boot-starter-demo/src/test/java/org/lognet/springboot/grpc/TestConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public ServerCall.Listener answer(InvocationOnMock invocation) throws Throwable
4040
public GRpcServerBuilderConfigurer customGrpcServerBuilderConfigurer(){
4141
return new GRpcServerBuilderConfigurer(){
4242
@Override
43-
public ServerBuilder<?> configure(ServerBuilder<?> serverBuilder){
44-
return serverBuilder.executor(command -> {
43+
public void configure(ServerBuilder<?> serverBuilder){
44+
serverBuilder.executor(command -> {
4545
System.out.println(CUSTOM_EXECUTOR_MESSAGE);
4646
command.run();
4747
}

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/GRpcServerBuilderConfigurer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Created by 310242212 on 21-Dec-16.
77
*/
88
public class GRpcServerBuilderConfigurer {
9-
public ServerBuilder<?> configure(ServerBuilder<?> serverBuilder){
10-
return serverBuilder;
9+
public void configure(ServerBuilder<?> serverBuilder){
10+
1111
}
1212
}

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/GRpcServerRunner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ public void run(String... args) throws Exception {
6363

6464
});
6565

66-
67-
server = configurer.configure(serverBuilder).build().start();
66+
configurer.configure(serverBuilder);
67+
server = serverBuilder.build().start();
6868
log.info("gRPC Server started, listening on port {}.", gRpcServerProperties.getPort());
6969
startDaemonAwaitThread();
7070

0 commit comments

Comments
 (0)