From c78648a3c437b037d841bcc17c942fb3ba366338 Mon Sep 17 00:00:00 2001 From: kongming Date: Thu, 11 Oct 2018 15:36:37 +0800 Subject: [PATCH 1/4] [Dubbo] move the classes of model from config to rpc-api for reusing --- .../apache/dubbo/config/ReferenceConfig.java | 6 ++--- .../apache/dubbo/config/ServiceConfig.java | 6 ++--- .../org/apache/dubbo/qos/command/impl/Ls.java | 6 ++--- .../dubbo/qos/command/impl/Offline.java | 4 ++-- .../apache/dubbo/qos/command/impl/Online.java | 4 ++-- .../apache/dubbo/qos/command/impl/LsTest.java | 6 ++--- .../dubbo/qos/command/impl/OfflineTest.java | 4 ++-- .../dubbo/qos/command/impl/OnlineTest.java | 4 ++-- .../dubbo/rpc}/model/ApplicationModel.java | 4 ++-- .../dubbo/rpc}/model/ConsumerMethodModel.java | 16 ++++--------- .../dubbo/rpc}/model/ConsumerModel.java | 23 ++++--------------- .../dubbo/rpc}/model/ProviderMethodModel.java | 2 +- .../dubbo/rpc}/model/ProviderModel.java | 16 ++++--------- 13 files changed, 37 insertions(+), 64 deletions(-) rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config => dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc}/model/ApplicationModel.java (96%) rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config => dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc}/model/ConsumerMethodModel.java (85%) rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config => dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc}/model/ConsumerModel.java (79%) rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config => dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc}/model/ProviderMethodModel.java (98%) rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config => dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc}/model/ProviderModel.java (87%) diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java index 1a82c6af677..7e4e4a449cd 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java @@ -27,8 +27,6 @@ import org.apache.dubbo.common.utils.ReflectUtils; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.annotation.Reference; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ConsumerModel; import org.apache.dubbo.config.support.Parameter; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Protocol; @@ -38,6 +36,8 @@ import org.apache.dubbo.rpc.cluster.directory.StaticDirectory; import org.apache.dubbo.rpc.cluster.support.AvailableCluster; import org.apache.dubbo.rpc.cluster.support.ClusterUtils; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ConsumerModel; import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol; import org.apache.dubbo.rpc.service.GenericService; import org.apache.dubbo.rpc.support.ProtocolUtils; @@ -334,7 +334,7 @@ private void init() { //attributes are stored by system context. StaticContext.getSystemContext().putAll(attributes); ref = createProxy(map); - ConsumerModel consumerModel = new ConsumerModel(getUniqueServiceName(), this, ref, interfaceClass.getMethods()); + ConsumerModel consumerModel = new ConsumerModel(getUniqueServiceName(), ref, interfaceClass.getMethods()); ApplicationModel.initConsumerModel(getUniqueServiceName(), consumerModel); } diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java index e9d5e6b5671..29d5d11eddc 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java @@ -27,8 +27,6 @@ import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.annotation.Service; import org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.config.support.Parameter; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.Invoker; @@ -36,6 +34,8 @@ import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.ServiceClassHolder; import org.apache.dubbo.rpc.cluster.ConfiguratorFactory; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import org.apache.dubbo.rpc.service.GenericService; import org.apache.dubbo.rpc.support.ProtocolUtils; @@ -315,7 +315,7 @@ protected synchronized void doExport() { path = interfaceName; } doExportUrls(); - ProviderModel providerModel = new ProviderModel(getUniqueServiceName(), this, ref); + ProviderModel providerModel = new ProviderModel(getUniqueServiceName(), ref, interfaceClass); ApplicationModel.initProviderModel(getUniqueServiceName(), providerModel); } diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Ls.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Ls.java index 94fb0e96f7d..8bd25fbb860 100644 --- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Ls.java +++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Ls.java @@ -16,9 +16,6 @@ */ package org.apache.dubbo.qos.command.impl; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ConsumerModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.qos.command.BaseCommand; import org.apache.dubbo.qos.command.CommandContext; import org.apache.dubbo.qos.command.annotation.Cmd; @@ -26,6 +23,9 @@ import org.apache.dubbo.registry.support.ConsumerInvokerWrapper; import org.apache.dubbo.registry.support.ProviderConsumerRegTable; import org.apache.dubbo.registry.support.ProviderInvokerWrapper; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ConsumerModel; +import org.apache.dubbo.rpc.model.ProviderModel; import java.util.Collection; import java.util.Set; diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Offline.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Offline.java index a886e7e083a..79c41f3b669 100644 --- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Offline.java +++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Offline.java @@ -19,8 +19,6 @@ import org.apache.dubbo.common.extension.ExtensionLoader; import org.apache.dubbo.common.logger.Logger; import org.apache.dubbo.common.logger.LoggerFactory; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.qos.command.BaseCommand; import org.apache.dubbo.qos.command.CommandContext; import org.apache.dubbo.qos.command.annotation.Cmd; @@ -28,6 +26,8 @@ import org.apache.dubbo.registry.RegistryFactory; import org.apache.dubbo.registry.support.ProviderConsumerRegTable; import org.apache.dubbo.registry.support.ProviderInvokerWrapper; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import java.util.Collection; import java.util.Set; diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Online.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Online.java index 10cf453b570..ce92d612827 100644 --- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Online.java +++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Online.java @@ -19,8 +19,6 @@ import org.apache.dubbo.common.extension.ExtensionLoader; import org.apache.dubbo.common.logger.Logger; import org.apache.dubbo.common.logger.LoggerFactory; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.qos.command.BaseCommand; import org.apache.dubbo.qos.command.CommandContext; import org.apache.dubbo.qos.command.annotation.Cmd; @@ -28,6 +26,8 @@ import org.apache.dubbo.registry.RegistryFactory; import org.apache.dubbo.registry.support.ProviderConsumerRegTable; import org.apache.dubbo.registry.support.ProviderInvokerWrapper; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import java.util.Collection; import java.util.Set; diff --git a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LsTest.java b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LsTest.java index edc8aff35e9..8cef26d2af5 100644 --- a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LsTest.java +++ b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LsTest.java @@ -17,14 +17,14 @@ package org.apache.dubbo.qos.command.impl; import org.apache.dubbo.common.URL; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ConsumerModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.qos.command.CommandContext; import org.apache.dubbo.registry.integration.RegistryDirectory; import org.apache.dubbo.registry.support.ProviderConsumerRegTable; import org.apache.dubbo.registry.support.ProviderInvokerWrapper; import org.apache.dubbo.rpc.Invoker; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ConsumerModel; +import org.apache.dubbo.rpc.model.ProviderModel; import org.junit.Test; import org.mockito.Mockito; diff --git a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OfflineTest.java b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OfflineTest.java index d760de86834..f0f31ac7ac5 100644 --- a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OfflineTest.java +++ b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OfflineTest.java @@ -17,13 +17,13 @@ package org.apache.dubbo.qos.command.impl; import org.apache.dubbo.common.URL; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.qos.command.CommandContext; import org.apache.dubbo.registry.Registry; import org.apache.dubbo.registry.support.ProviderConsumerRegTable; import org.apache.dubbo.registry.support.ProviderInvokerWrapper; import org.apache.dubbo.rpc.Invoker; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import org.junit.Test; import org.mockito.Mockito; diff --git a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OnlineTest.java b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OnlineTest.java index c5701703021..d82cb496508 100644 --- a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OnlineTest.java +++ b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OnlineTest.java @@ -17,13 +17,13 @@ package org.apache.dubbo.qos.command.impl; import org.apache.dubbo.common.URL; -import org.apache.dubbo.config.model.ApplicationModel; -import org.apache.dubbo.config.model.ProviderModel; import org.apache.dubbo.qos.command.CommandContext; import org.apache.dubbo.registry.Registry; import org.apache.dubbo.registry.support.ProviderConsumerRegTable; import org.apache.dubbo.registry.support.ProviderInvokerWrapper; import org.apache.dubbo.rpc.Invoker; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import org.junit.Test; import static org.apache.dubbo.registry.support.ProviderConsumerRegTable.getProviderInvoker; diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ApplicationModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java similarity index 96% rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ApplicationModel.java rename to dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java index 36d4f03825f..98d32c10e51 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ApplicationModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.config.model; +package org.apache.dubbo.rpc.model; import org.apache.dubbo.common.logger.Logger; import org.apache.dubbo.common.logger.LoggerFactory; @@ -30,7 +30,7 @@ import static java.util.stream.Collectors.toSet; -// TODO need to adjust project structure in order to fully utilize the methods introduced here. +// adjust project structure in order to fully utilize the methods introduced here. public class ApplicationModel { protected static final Logger logger = LoggerFactory.getLogger(ApplicationModel.class); diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ConsumerMethodModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ConsumerMethodModel.java similarity index 85% rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ConsumerMethodModel.java rename to dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ConsumerMethodModel.java index 6a476027f42..96f55bee4b7 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ConsumerMethodModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ConsumerMethodModel.java @@ -14,17 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.config.model; +package org.apache.dubbo.rpc.model; import org.apache.dubbo.common.Constants; -import org.apache.dubbo.config.ReferenceConfig; import java.lang.reflect.Method; public class ConsumerMethodModel { private final Method method; - private final ReferenceConfig metadata; -// private final boolean isCallBack; + // private final boolean isCallBack; // private final boolean isFuture; private final String[] parameterTypes; private final Class[] parameterClasses; @@ -32,13 +30,12 @@ public class ConsumerMethodModel { private final String methodName; private final boolean generic; - public ConsumerMethodModel(Method method, ReferenceConfig metadata) { + public ConsumerMethodModel(Method method) { this.method = method; this.parameterClasses = method.getParameterTypes(); this.returnClass = method.getReturnType(); this.parameterTypes = this.createParamSignature(parameterClasses); this.methodName = method.getName(); - this.metadata = metadata; this.generic = methodName.equals(Constants.$INVOKE) && parameterTypes != null && parameterTypes.length == 3; } @@ -51,7 +48,6 @@ public Class getReturnClass() { } - public String getMethodName() { return methodName; } @@ -60,13 +56,9 @@ public String[] getParameterTypes() { return parameterTypes; } - public ReferenceConfig getMetadata() { - return metadata; - } - private String[] createParamSignature(Class[] args) { if (args == null || args.length == 0) { - return new String[] {}; + return new String[]{}; } String[] paramSig = new String[args.length]; for (int x = 0; x < args.length; x++) { diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ConsumerModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java similarity index 79% rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ConsumerModel.java rename to dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java index 57d60865992..35ff391e1dd 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ConsumerModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ConsumerModel.java @@ -14,9 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.config.model; - -import org.apache.dubbo.config.ReferenceConfig; +package org.apache.dubbo.rpc.model; import java.lang.reflect.Method; import java.util.ArrayList; @@ -25,33 +23,22 @@ import java.util.Map; public class ConsumerModel { - private ReferenceConfig metadata; - private Object proxyObject; - private String serviceName; + private final Object proxyObject; + private final String serviceName; private final Map methodModels = new IdentityHashMap(); - public ConsumerModel(String serviceName,ReferenceConfig metadata, Object proxyObject, Method[] methods) { + public ConsumerModel(String serviceName, Object proxyObject, Method[] methods) { this.serviceName = serviceName; - this.metadata = metadata; this.proxyObject = proxyObject; if (proxyObject != null) { for (Method method : methods) { - methodModels.put(method, new ConsumerMethodModel(method, metadata)); + methodModels.put(method, new ConsumerMethodModel(method)); } } } - /** - * Return service metadata for consumer - * - * @return service metadata - */ - public ReferenceConfig getMetadata() { - return metadata; - } - public Object getProxyObject() { return proxyObject; } diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ProviderMethodModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderMethodModel.java similarity index 98% rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ProviderMethodModel.java rename to dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderMethodModel.java index 24ba3e61ae2..d7b8a9bb874 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ProviderMethodModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderMethodModel.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.config.model; +package org.apache.dubbo.rpc.model; import java.lang.reflect.Method; diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ProviderModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java similarity index 87% rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ProviderModel.java rename to dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java index 2519b704d50..b91d0cba0d0 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/model/ProviderModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java @@ -14,9 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.config.model; - -import org.apache.dubbo.config.ServiceConfig; +package org.apache.dubbo.rpc.model; import java.lang.reflect.Method; import java.util.ArrayList; @@ -28,17 +26,17 @@ public class ProviderModel { private final String serviceName; private final Object serviceInstance; - private final ServiceConfig metadata; + private final Class serviceInterfaceClass; private final Map> methods = new HashMap>(); - public ProviderModel(String serviceName, ServiceConfig metadata, Object serviceInstance) { + public ProviderModel(String serviceName, Object serviceInstance, Class serviceInterfaceClass) { if (null == serviceInstance) { throw new IllegalArgumentException("Service[" + serviceName + "]Target is NULL."); } this.serviceName = serviceName; - this.metadata = metadata; this.serviceInstance = serviceInstance; + this.serviceInterfaceClass = serviceInterfaceClass; initMethod(); } @@ -48,10 +46,6 @@ public String getServiceName() { return serviceName; } - public ServiceConfig getMetadata() { - return metadata; - } - public Object getServiceInstance() { return serviceInstance; } @@ -78,7 +72,7 @@ public ProviderMethodModel getMethodModel(String methodName, String[] argTypes) private void initMethod() { Method[] methodsToExport = null; - methodsToExport = metadata.getInterfaceClass().getMethods(); + methodsToExport = this.serviceInterfaceClass.getMethods(); for (Method method : methodsToExport) { method.setAccessible(true); From eb471ae9dba671bcdd2fd3ece4bbffdecaafe862 Mon Sep 17 00:00:00 2001 From: kongming Date: Fri, 12 Oct 2018 15:57:47 +0800 Subject: [PATCH 2/4] remove ServiceClassHolder and use the ApplicationModel replacedly --- .../apache/dubbo/config/ReferenceConfig.java | 7 +-- .../apache/dubbo/config/ServiceConfig.java | 2 - .../META-INF/spring/dubbo-demo-consumer.xml | 4 +- .../apache/dubbo/rpc/ServiceClassHolder.java | 45 ----------------- .../dubbo/rpc/model/ApplicationModel.java | 43 ++++------------ .../apache/dubbo/rpc/model/ProviderModel.java | 4 ++ .../apache/dubbo/rpc/ServiceHolderTest.java | 34 ------------- .../dubbo/rpc/protocol/rest/RestProtocol.java | 4 +- .../rpc/protocol/rest/RestProtocolTest.java | 50 ++++++++++++------- .../rpc/protol/rest/RestProtocolTest.java | 23 ++++++--- 10 files changed, 73 insertions(+), 143 deletions(-) delete mode 100644 dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/ServiceClassHolder.java delete mode 100644 dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/ServiceHolderTest.java diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java index 7e4e4a449cd..a3b482b7dce 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java @@ -281,7 +281,7 @@ private void init() { checkStubAndMock(interfaceClass); Map map = new HashMap(); resolveAsyncInterface(interfaceClass, map); - Map attributes = new HashMap(); + map.put(Constants.SIDE_KEY, Constants.CONSUMER_SIDE); map.put(Constants.DUBBO_VERSION_KEY, Version.getProtocolVersion()); map.put(Constants.TIMESTAMP_KEY, String.valueOf(System.currentTimeMillis())); @@ -309,6 +309,7 @@ private void init() { appendParameters(map, this); String prefix = StringUtils.getServiceKey(map); if (methods != null && !methods.isEmpty()) { + Map attributes = new HashMap(); for (MethodConfig method : methods) { appendParameters(map, method, method.getName()); String retryKey = method.getName() + ".retry"; @@ -321,6 +322,8 @@ private void init() { appendAttributes(attributes, method, prefix + "." + method.getName()); checkAndConvertImplicitConfig(method, map, attributes); } + //attributes are stored by system context. + StaticContext.getSystemContext().putAll(attributes); } String hostToRegistry = ConfigUtils.getSystemProperty(Constants.DUBBO_IP_TO_REGISTRY); @@ -331,8 +334,6 @@ private void init() { } map.put(Constants.REGISTER_IP_KEY, hostToRegistry); - //attributes are stored by system context. - StaticContext.getSystemContext().putAll(attributes); ref = createProxy(map); ConsumerModel consumerModel = new ConsumerModel(getUniqueServiceName(), ref, interfaceClass.getMethods()); ApplicationModel.initConsumerModel(getUniqueServiceName(), consumerModel); diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java index 29d5d11eddc..e2d3969e08b 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java @@ -32,7 +32,6 @@ import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Protocol; import org.apache.dubbo.rpc.ProxyFactory; -import org.apache.dubbo.rpc.ServiceClassHolder; import org.apache.dubbo.rpc.cluster.ConfiguratorFactory; import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.model.ProviderModel; @@ -532,7 +531,6 @@ private void exportLocal(URL url) { .setProtocol(Constants.LOCAL_PROTOCOL) .setHost(LOCALHOST) .setPort(0); - ServiceClassHolder.getInstance().pushServiceClass(getServiceClass(ref)); Exporter exporter = protocol.export( proxyFactory.getInvoker(ref, (Class) interfaceClass, local)); exporters.add(exporter); diff --git a/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml b/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml index a56a10ee7ea..01aa12c5255 100644 --- a/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml +++ b/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml @@ -30,6 +30,8 @@ - + + + \ No newline at end of file diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/ServiceClassHolder.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/ServiceClassHolder.java deleted file mode 100644 index bbbf755f1f7..00000000000 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/ServiceClassHolder.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.dubbo.rpc; - -/** - * TODO this is just a workaround for rest protocol, and now we just ensure it works in the most common dubbo usages - * - */ -public class ServiceClassHolder { - - private static final ServiceClassHolder INSTANCE = new ServiceClassHolder(); - - private final ThreadLocal holder = new ThreadLocal(); - - public static ServiceClassHolder getInstance() { - return INSTANCE; - } - - private ServiceClassHolder() { - } - - public Class popServiceClass() { - Class clazz = holder.get(); - holder.remove(); - return clazz; - } - - public void pushServiceClass(Class clazz) { - holder.set(clazz); - } -} diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java index 98d32c10e51..dc9a033b0de 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java @@ -33,63 +33,42 @@ // adjust project structure in order to fully utilize the methods introduced here. public class ApplicationModel { - protected static final Logger logger = LoggerFactory.getLogger(ApplicationModel.class); + protected static final Logger LOGGER = LoggerFactory.getLogger(ApplicationModel.class); /** * full qualified class name -> provided service */ - private static final ConcurrentMap> providedServices = new ConcurrentHashMap<>(); + private static final ConcurrentMap providedServices = new ConcurrentHashMap<>(); /** * full qualified class name -> subscribe service */ - private static final ConcurrentMap> consumedServices = new ConcurrentHashMap<>(); - - private static final ConcurrentMap> providedServicesInvoker = new ConcurrentHashMap<>(); + private static final ConcurrentMap consumedServices = new ConcurrentHashMap<>(); public static Collection allConsumerModels() { - return consumedServices.values().stream().flatMap(Collection::stream).collect(toSet()); + return consumedServices.values(); } public static Collection allProviderModels() { - return providedServices.values().stream().flatMap(Collection::stream).collect(toSet()); + return providedServices.values(); } - public static Collection getProviderModel(String serviceName) { + public static ProviderModel getProviderModel(String serviceName) { return providedServices.get(serviceName); } - public static Collection getConsumerModel(String serviceName) { + public static ConsumerModel getConsumerModel(String serviceName) { return consumedServices.get(serviceName); } public static void initConsumerModel(String serviceName, ConsumerModel consumerModel) { - Set consumerModels = consumedServices.computeIfAbsent(serviceName, k -> new HashSet<>()); - if (!consumerModels.add(consumerModel)) { - logger.warn("Already register the same consumer:" + serviceName); + if (consumedServices.putIfAbsent(serviceName, consumerModel) != null) { + LOGGER.warn("Already register the same consumer:" + serviceName); } } public static void initProviderModel(String serviceName, ProviderModel providerModel) { - Set providerModels = providedServices.computeIfAbsent(serviceName, k -> new HashSet<>()); - if (!providerModels.add(providerModel)) { - logger.warn("already register the provider service: " + serviceName); + if (providedServices.putIfAbsent(serviceName, providerModel) != null) { + LOGGER.warn("Already register the same:" + serviceName); } } - - public static void addProviderInvoker(String serviceName,Invoker invoker){ - Set invokers = providedServicesInvoker.get(serviceName); - if (invokers == null){ - providedServicesInvoker.putIfAbsent(serviceName,new ConcurrentHashSet()); - invokers = providedServicesInvoker.get(serviceName); - } - invokers.add(invoker); - } - - public Set getProviderInvoker(String serviceName){ - Set invokers = providedServicesInvoker.get(serviceName); - if (invokers == null){ - return Collections.emptySet(); - } - return invokers; - } } diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java index b91d0cba0d0..179d300b5e0 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ProviderModel.java @@ -46,6 +46,10 @@ public String getServiceName() { return serviceName; } + public Class getServiceInterfaceClass() { + return serviceInterfaceClass; + } + public Object getServiceInstance() { return serviceInstance; } diff --git a/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/ServiceHolderTest.java b/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/ServiceHolderTest.java deleted file mode 100644 index 9a9a42f2715..00000000000 --- a/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/ServiceHolderTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.dubbo.rpc; - -import org.junit.Assert; -import org.junit.Test; - -public class ServiceHolderTest { - - @Test - public void testHolderClass() { - - ServiceClassHolder holder = ServiceClassHolder.getInstance(); - - holder.pushServiceClass(ServiceHolderTest.class); - - Assert.assertEquals(ServiceHolderTest.class, holder.popServiceClass()); - - } -} diff --git a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java index 2268b71ac90..6c24ca575ec 100644 --- a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java +++ b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java @@ -23,7 +23,7 @@ import org.apache.dubbo.remoting.http.servlet.BootstrapListener; import org.apache.dubbo.remoting.http.servlet.ServletManager; import org.apache.dubbo.rpc.RpcException; -import org.apache.dubbo.rpc.ServiceClassHolder; +import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol; import org.apache.http.HeaderElement; @@ -90,7 +90,7 @@ public int getDefaultPort() { @Override protected Runnable doExport(T impl, Class type, URL url) throws RpcException { String addr = getAddr(url); - Class implClass = ServiceClassHolder.getInstance().popServiceClass(); + Class implClass = ApplicationModel.getProviderModel(url.getServiceKey()).getServiceInterfaceClass(); RestServer server = servers.get(addr); if (server == null) { server = serverFactory.createServer(url.getParameter(Constants.SERVER_KEY, DEFAULT_SERVER)); diff --git a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java index a698d0c3e25..215bc410c1c 100644 --- a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java +++ b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java @@ -27,7 +27,8 @@ import org.apache.dubbo.rpc.RpcContext; import org.apache.dubbo.rpc.RpcException; import org.apache.dubbo.rpc.RpcInvocation; -import org.apache.dubbo.rpc.ServiceClassHolder; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import org.hamcrest.CoreMatchers; import org.junit.After; import org.junit.Test; @@ -48,11 +49,12 @@ public void tearDown() { @Test public void testExport() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); - + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); RpcContext.getContext().setAttachment("timeout", "200"); - Exporter exporter = protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, exportUrl)); + Exporter exporter = protocol.export(proxy.getInvoker(server, IDemoService.class, exportUrl)); IDemoService demoService = this.proxy.getProxy(protocol.refer(IDemoService.class, exportUrl)); @@ -64,7 +66,9 @@ public void testExport() { @Test public void testNettyServer() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); URL nettyUrl = exportUrl.addParameter(Constants.SERVER_KEY, "netty"); Exporter exporter = protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, nettyUrl)); @@ -79,19 +83,23 @@ public void testNettyServer() { @Test(expected = RpcException.class) public void testServletWithoutWebConfig() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); URL servletUrl = exportUrl.addParameter(Constants.SERVER_KEY, "servlet"); - protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, servletUrl)); + protocol.export(proxy.getInvoker(server, IDemoService.class, servletUrl)); } @Test(expected = RpcException.class) public void testErrorHandler() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); URL nettyUrl = exportUrl.addParameter(Constants.SERVER_KEY, "netty"); - Exporter exporter = protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, nettyUrl)); + Exporter exporter = protocol.export(proxy.getInvoker(server, IDemoService.class, nettyUrl)); IDemoService demoService = this.proxy.getProxy(protocol.refer(IDemoService.class, nettyUrl)); @@ -100,10 +108,12 @@ public void testErrorHandler() { @Test public void testInvoke() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); - Exporter exporter = protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, exportUrl)); + Exporter exporter = protocol.export(proxy.getInvoker(server, IDemoService.class, exportUrl)); RpcInvocation rpcInvocation = new RpcInvocation("hello", new Class[]{Integer.class, Integer.class}, new Integer[]{2, 3}); @@ -113,11 +123,13 @@ public void testInvoke() { @Test public void testFilter() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); URL nettyUrl = exportUrl.addParameter(Constants.SERVER_KEY, "netty") .addParameter(Constants.EXTENSION_KEY, "org.apache.dubbo.rpc.protocol.rest.support.LoggingFilter"); - Exporter exporter = protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, nettyUrl)); + Exporter exporter = protocol.export(proxy.getInvoker(server, IDemoService.class, nettyUrl)); IDemoService demoService = this.proxy.getProxy(protocol.refer(IDemoService.class, nettyUrl)); @@ -130,12 +142,14 @@ public void testFilter() { @Test public void testRpcContextFilter() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); // use RpcContextFilter URL nettyUrl = exportUrl.addParameter(Constants.SERVER_KEY, "netty") .addParameter(Constants.EXTENSION_KEY, "org.apache.dubbo.rpc.protocol.rest.RpcContextFilter"); - Exporter exporter = protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, nettyUrl)); + Exporter exporter = protocol.export(proxy.getInvoker(server, IDemoService.class, nettyUrl)); IDemoService demoService = this.proxy.getProxy(protocol.refer(IDemoService.class, nettyUrl)); @@ -151,10 +165,12 @@ public void testRpcContextFilter() { @Test(expected = RuntimeException.class) public void testRegFail() { - ServiceClassHolder.getInstance().pushServiceClass(DemoService.class); + IDemoService server = new DemoService(); + ProviderModel providerModel = new ProviderModel(exportUrl.getServiceKey(), server, IDemoService.class); + ApplicationModel.initProviderModel(exportUrl.getServiceKey(), providerModel); URL nettyUrl = exportUrl.addParameter(Constants.EXTENSION_KEY, "com.not.existing.Filter"); - protocol.export(proxy.getInvoker(new DemoService(), IDemoService.class, nettyUrl)); + protocol.export(proxy.getInvoker(server, IDemoService.class, nettyUrl)); } @Test diff --git a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protol/rest/RestProtocolTest.java b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protol/rest/RestProtocolTest.java index bd2d66a5c41..ab0da76a890 100644 --- a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protol/rest/RestProtocolTest.java +++ b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protol/rest/RestProtocolTest.java @@ -16,10 +16,15 @@ */ package org.apache.dubbo.rpc.protol.rest; +import junit.framework.Assert; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.extension.ExtensionLoader; -import org.apache.dubbo.rpc.*; -import junit.framework.Assert; +import org.apache.dubbo.rpc.Exporter; +import org.apache.dubbo.rpc.Invoker; +import org.apache.dubbo.rpc.Protocol; +import org.apache.dubbo.rpc.ProxyFactory; +import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.ProviderModel; import org.junit.Test; /** @@ -32,12 +37,14 @@ public class RestProtocolTest { @Test public void testRestProtocol() { - ServiceClassHolder.getInstance().pushServiceClass(RestServiceImpl.class); - RestServiceImpl server = new RestServiceImpl(); - Assert.assertFalse(server.isCalled()); URL url = URL.valueOf("rest://127.0.0.1:5342/rest/say1?version=1.0.0"); + RestServiceImpl server = new RestServiceImpl(); + ProviderModel providerModel = new ProviderModel(url.getServiceKey(), server, RestService.class); + ApplicationModel.initProviderModel(url.getServiceKey(), providerModel); + Exporter exporter = protocol.export(proxyFactory.getInvoker(server, RestService.class, url)); - Invoker invoker = protocol.refer(RestService.class, url); + Invoker invoker = protocol.refer(RestService.class, url); Assert.assertFalse(server.isCalled()); + RestService client = proxyFactory.getProxy(invoker); String result = client.sayHello("haha"); Assert.assertTrue(server.isCalled()); @@ -48,10 +55,12 @@ public void testRestProtocol() { @Test public void testRestProtocolWithContextPath() { - ServiceClassHolder.getInstance().pushServiceClass(RestServiceImpl.class); RestServiceImpl server = new RestServiceImpl(); Assert.assertFalse(server.isCalled()); URL url = URL.valueOf("rest://127.0.0.1:5341/a/b/c?version=1.0.0"); + ProviderModel providerModel = new ProviderModel(url.getServiceKey(), server, RestService.class); + ApplicationModel.initProviderModel(url.getServiceKey(), providerModel); + Exporter exporter = protocol.export(proxyFactory.getInvoker(server, RestService.class, url)); url = URL.valueOf("rest://127.0.0.1:5341/a/b/c/?version=1.0.0"); From 0e32a902fc0f7383deaad408d2cb317f4ff6f000 Mon Sep 17 00:00:00 2001 From: kongming Date: Wed, 17 Oct 2018 10:51:08 +0800 Subject: [PATCH 3/4] [Dubbo] delete the unused imported of ApplicationModel --- .../java/org/apache/dubbo/rpc/model/ApplicationModel.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java index dc9a033b0de..456930e5407 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java @@ -18,18 +18,11 @@ import org.apache.dubbo.common.logger.Logger; import org.apache.dubbo.common.logger.LoggerFactory; -import org.apache.dubbo.common.utils.ConcurrentHashSet; -import org.apache.dubbo.rpc.Invoker; import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import static java.util.stream.Collectors.toSet; - // adjust project structure in order to fully utilize the methods introduced here. public class ApplicationModel { From a9bfc3698d07749493c0faffa277098665a9d225 Mon Sep 17 00:00:00 2001 From: Jeff-Lv Date: Wed, 24 Oct 2018 11:05:30 +0800 Subject: [PATCH 4/4] Update dubbo-demo-consumer.xml this commits is no need to commit to remote repo. --- .../main/resources/META-INF/spring/dubbo-demo-consumer.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml b/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml index 01aa12c5255..b4c1197477d 100644 --- a/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml +++ b/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml @@ -30,8 +30,6 @@ - - - + - \ No newline at end of file +