diff --git a/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ProtocolConfig.java b/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ProtocolConfig.java index b74ed0215..f8cd2c732 100644 --- a/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ProtocolConfig.java +++ b/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ProtocolConfig.java @@ -48,6 +48,8 @@ public class ProtocolConfig extends BaseProtocolConfig implements Cloneable { protected volatile boolean setDefault = false; protected volatile boolean inited = false; + protected ServiceConfig serviceConfig; + public static ProtocolConfig newInstance() { return new ProtocolConfig(); } @@ -244,4 +246,13 @@ public boolean isInited() { return inited; } + public ServiceConfig getServiceConfig() { + return serviceConfig; + } + + public void setServiceConfig(ServiceConfig serviceConfig) { + checkFiledModifyPrivilege(); + this.serviceConfig = serviceConfig; + } + } \ No newline at end of file diff --git a/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ServiceConfig.java b/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ServiceConfig.java index 9d2444401..68a2a6ed5 100644 --- a/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ServiceConfig.java +++ b/trpc-core/src/main/java/com/tencent/trpc/core/common/config/ServiceConfig.java @@ -402,6 +402,7 @@ protected ProtocolConfig buildProtocolConfig() { tempProtocolConfig.setReusePort(this.getReusePort()); tempProtocolConfig.setSign(this.getSign()); tempProtocolConfig.setDefault(); + tempProtocolConfig.setServiceConfig(this); return tempProtocolConfig; } diff --git a/trpc-core/src/test/java/com/tencent/trpc/core/common/config/ProtocolConfigTest.java b/trpc-core/src/test/java/com/tencent/trpc/core/common/config/ProtocolConfigTest.java index 7f4f56e59..78613313d 100644 --- a/trpc-core/src/test/java/com/tencent/trpc/core/common/config/ProtocolConfigTest.java +++ b/trpc-core/src/test/java/com/tencent/trpc/core/common/config/ProtocolConfigTest.java @@ -14,6 +14,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableMap; @@ -90,6 +91,8 @@ public void testConfig() { config.setExplicitFlushAfterFlushes(1024); config.setCompressMinBytes(10); config.setDefault(); + ServiceConfig serviceConfig = new ServiceConfig(); + config.setServiceConfig(serviceConfig); assertEquals("127.1.1.1", config.getIp()); assertEquals("", config.getName()); assertEquals(8080, config.getPort()); @@ -124,5 +127,6 @@ public void testConfig() { assertFalse(config.useEpoll()); assertEquals(10, config.getCompressMinBytes()); assertTrue(config.isSetDefault()); + assertSame(serviceConfig, config.getServiceConfig()); } } \ No newline at end of file