You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/10/12 03:40:20 UTC

[incubator-dubbo] branch master updated: Merge pull request #2636, move the classes of model from config to rpc-api for reusing.

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new 45b3ab4  Merge pull request #2636, move the classes of model from config to rpc-api for reusing.
45b3ab4 is described below

commit 45b3ab4436b4763e1890ded0728137de95df699d
Author: Jeff-Lv <lr...@gmail.com>
AuthorDate: Fri Oct 12 11:40:11 2018 +0800

    Merge pull request #2636, move the classes of model from config to rpc-api for reusing.
---
 .../org/apache/dubbo/config/ReferenceConfig.java   |  6 +++---
 .../org/apache/dubbo/config/ServiceConfig.java     |  6 +++---
 .../java/org/apache/dubbo/qos/command/impl/Ls.java |  6 +++---
 .../org/apache/dubbo/qos/command/impl/Offline.java |  4 ++--
 .../org/apache/dubbo/qos/command/impl/Online.java  |  4 ++--
 .../org/apache/dubbo/qos/command/impl/LsTest.java  |  6 +++---
 .../apache/dubbo/qos/command/impl/OfflineTest.java |  4 ++--
 .../apache/dubbo/qos/command/impl/OnlineTest.java  |  4 ++--
 .../apache/dubbo/rpc}/model/ApplicationModel.java  |  4 ++--
 .../dubbo/rpc}/model/ConsumerMethodModel.java      | 16 ++++-----------
 .../org/apache/dubbo/rpc}/model/ConsumerModel.java | 23 +++++-----------------
 .../dubbo/rpc}/model/ProviderMethodModel.java      |  2 +-
 .../org/apache/dubbo/rpc}/model/ProviderModel.java | 16 +++++----------
 13 files changed, 37 insertions(+), 64 deletions(-)

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 1a82c6a..7e4e4a4 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.NetUtils;
 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.Cluster;
 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 @@ public class ReferenceConfig<T> extends AbstractReferenceConfig {
         //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 e9d5e6b..29d5d11 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.NamedThreadFactory;
 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.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;
 import org.apache.dubbo.rpc.service.GenericService;
 import org.apache.dubbo.rpc.support.ProtocolUtils;
 
@@ -315,7 +315,7 @@ public class ServiceConfig<T> extends AbstractServiceConfig {
             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 94fb0e9..8bd25fb 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.qos.textui.TTable;
 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 a886e7e..79c41f3 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 @@ package org.apache.dubbo.qos.command.impl;
 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.Registry;
 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 10cf453..ce92d61 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 @@ package org.apache.dubbo.qos.command.impl;
 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.Registry;
 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 edc8aff..8cef26d 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 d760de8..f0f31ac 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 c570170..d82cb49 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 36d4f03..98d32c1 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 java.util.concurrent.ConcurrentMap;
 
 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 6a47602..96f55be 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 ConsumerMethodModel {
     }
 
 
-
     public String getMethodName() {
         return methodName;
     }
@@ -60,13 +56,9 @@ public class ConsumerMethodModel {
         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 57d6086..35ff391 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.List;
 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<Method, ConsumerMethodModel> methodModels = new IdentityHashMap<Method, ConsumerMethodModel>();
 
-    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 24ba3e6..d7b8a9b 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 2519b70..b91d0cb 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 @@ import java.util.Map;
 public class ProviderModel {
     private final String serviceName;
     private final Object serviceInstance;
-    private final ServiceConfig metadata;
+    private final Class<?> serviceInterfaceClass;
     private final Map<String, List<ProviderMethodModel>> methods = new HashMap<String, List<ProviderMethodModel>>();
 
-    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 class ProviderModel {
         return serviceName;
     }
 
-    public ServiceConfig getMetadata() {
-        return metadata;
-    }
-
     public Object getServiceInstance() {
         return serviceInstance;
     }
@@ -78,7 +72,7 @@ public class ProviderModel {
 
     private void initMethod() {
         Method[] methodsToExport = null;
-        methodsToExport = metadata.getInterfaceClass().getMethods();
+        methodsToExport = this.serviceInterfaceClass.getMethods();
 
         for (Method method : methodsToExport) {
             method.setAccessible(true);