Skip to content

Commit 40533fe

Browse files
committed
#8: Support for multiple Compressors and Decompressors
1 parent 41e5802 commit 40533fe

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/common/codec/GrpcCodecAutoConfiguration.java

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package org.springframework.grpc.autoconfigure.common.codec;
22

3-
import io.grpc.Codec;
4-
import io.grpc.CompressorRegistry;
5-
import io.grpc.DecompressorRegistry;
3+
import io.grpc.*;
64
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
7-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
85
import org.springframework.context.annotation.Bean;
96
import org.springframework.context.annotation.Configuration;
107

8+
import java.util.List;
9+
1110
/**
1211
* The autoconfiguration that contains all codec related beans for clients/servers.
1312
*
@@ -17,25 +16,17 @@
1716
@ConditionalOnClass(Codec.class)
1817
public class GrpcCodecAutoConfiguration {
1918

20-
@ConditionalOnMissingBean
21-
@Bean
22-
public Codec gzipCompressor() {
23-
return new Codec.Gzip();
24-
}
25-
26-
@ConditionalOnMissingBean
2719
@Bean
28-
public CompressorRegistry defaultCompressorRegistry(Codec codec) {
29-
final CompressorRegistry registry = CompressorRegistry.getDefaultInstance();
30-
registry.register(codec);
20+
public CompressorRegistry compressorRegistry(List<Compressor> compressors) {
21+
CompressorRegistry registry = CompressorRegistry.getDefaultInstance();
22+
compressors.forEach(registry::register);
3123
return registry;
3224
}
3325

34-
@ConditionalOnMissingBean
3526
@Bean
36-
public DecompressorRegistry defaultDecompressorRegistry(Codec codec) {
27+
public DecompressorRegistry decompressorRegistry(List<Decompressor> decompressors) {
3728
DecompressorRegistry registry = DecompressorRegistry.getDefaultInstance();
38-
registry = registry.with(codec, false);
29+
decompressors.forEach(decompressor -> registry.with(decompressor, false));
3930
return registry;
4031
}
4132

0 commit comments

Comments
 (0)