You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/12/22 02:02:28 UTC
[dubbo] branch 3.2 updated: Remove ExtensionLoader getExtension usage (#10971)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new 0df34a1a20 Remove ExtensionLoader getExtension usage (#10971)
0df34a1a20 is described below
commit 0df34a1a20811d4a03032d03dac146c59bd52b34
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Thu Dec 22 10:02:22 2022 +0800
Remove ExtensionLoader getExtension usage (#10971)
---
.../java/org/apache/dubbo/common/Parameters.java | 16 ++
.../convert/multiple/MultiValueConverter.java | 11 +-
.../url/component/param/DynamicParamTable.java | 4 +-
.../rest/AbstractServiceRestMetadataResolver.java | 10 +-
.../rest/DefaultServiceRestMetadataResolver.java | 5 +
.../jaxrs/JAXRSServiceRestMetadataResolver.java | 4 +
.../SpringMvcServiceRestMetadataResolver.java | 5 +
.../JAXRSServiceRestMetadataResolverTest.java | 3 +-
.../SpringMvcServiceRestMetadataResolverTest.java | 3 +-
.../processing/builder/TypeDefinitionBuilder.java | 6 +-
.../rest/AbstractServiceRestMetadataResolver.java | 5 +-
.../ServiceRestMetadataAnnotationProcessor.java | 6 +-
.../monitor/dubbo/DubboMonitorFactoryTest.java | 3 +-
.../dubbo/monitor/dubbo/MetricsFilterTest.java | 5 +-
.../apache/dubbo/remoting/exchange/Exchangers.java | 4 +-
.../exchange/support/ExchangeHandlerAdapter.java | 4 +
.../support/ExchangeHandlerDispatcher.java | 11 +-
.../telnet/support/TelnetHandlerAdapter.java | 7 +-
.../telnet/support/command/HelpTelnetHandler.java | 7 +-
.../apache/dubbo/remoting/ChanelHandlerTest.java | 2 +
.../dubbo/remoting/PerformanceClientTest.java | 4 +
.../dubbo/remoting/PerformanceServerTest.java | 5 +-
.../telnet/support/HelpTelnetHandlerTest.java | 3 +-
.../telnet/support/TelnetHandlerAdapterTest.java | 3 +-
.../transport/netty/ClientReconnectTest.java | 5 +
.../transport/netty4/ClientReconnectTest.java | 5 +
.../dubbo/rpc/protocol/dubbo/DubboProtocol.java | 213 +++++++++++----------
.../dubbo/status/ThreadPoolStatusChecker.java | 10 +-
.../protocol/dubbo/DubboInvokerAvailableTest.java | 3 +-
.../dubbo/decode/DubboTelnetDecodeTest.java | 12 +-
.../dubbo/status/ThreadPoolStatusCheckerTest.java | 3 +-
.../dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java | 4 +-
.../boot/actuate/health/DubboHealthIndicator.java | 4 +-
.../spring/context/MockSpringInitCustomizer.java | 4 +-
34 files changed, 242 insertions(+), 157 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/Parameters.java b/dubbo-common/src/main/java/org/apache/dubbo/common/Parameters.java
index 711a64ea61..42f7bd5459 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/Parameters.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/Parameters.java
@@ -62,21 +62,37 @@ public class Parameters {
return parameters;
}
+ /**
+ * @deprecated will be removed in 3.3.0
+ */
+ @Deprecated
public <T> T getExtension(Class<T> type, String key) {
String name = getParameter(key);
return ExtensionLoader.getExtensionLoader(type).getExtension(name);
}
+ /**
+ * @deprecated will be removed in 3.3.0
+ */
+ @Deprecated
public <T> T getExtension(Class<T> type, String key, String defaultValue) {
String name = getParameter(key, defaultValue);
return ExtensionLoader.getExtensionLoader(type).getExtension(name);
}
+ /**
+ * @deprecated will be removed in 3.3.0
+ */
+ @Deprecated
public <T> T getMethodExtension(Class<T> type, String method, String key) {
String name = getMethodParameter(method, key);
return ExtensionLoader.getExtensionLoader(type).getExtension(name);
}
+ /**
+ * @deprecated will be removed in 3.3.0
+ */
+ @Deprecated
public <T> T getMethodExtension(Class<T> type, String method, String key, String defaultValue) {
String name = getMethodParameter(method, key, defaultValue);
return ExtensionLoader.getExtensionLoader(type).getExtension(name);
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/convert/multiple/MultiValueConverter.java b/dubbo-common/src/main/java/org/apache/dubbo/common/convert/multiple/MultiValueConverter.java
index 9b5210d541..358f56d360 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/convert/multiple/MultiValueConverter.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/convert/multiple/MultiValueConverter.java
@@ -20,10 +20,10 @@ import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.extension.ExtensionScope;
import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.common.lang.Prioritized;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import java.util.Collection;
-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;
/**
@@ -72,9 +72,12 @@ public interface MultiValueConverter<S> extends Prioritized {
* @return <code>null</code> if not found
* @see ExtensionLoader#getSupportedExtensionInstances()
* @since 2.7.8
+ * @deprecated will be removed in 3.3.0
*/
+ @Deprecated
static MultiValueConverter<?> find(Class<?> sourceType, Class<?> targetType) {
- return getExtensionLoader(MultiValueConverter.class)
+ return FrameworkModel.defaultModel()
+ .getExtensionLoader(MultiValueConverter.class)
.getSupportedExtensionInstances()
.stream()
.filter(converter -> converter.accept(sourceType, targetType))
@@ -82,6 +85,10 @@ public interface MultiValueConverter<S> extends Prioritized {
.orElse(null);
}
+ /**
+ * @deprecated will be removed in 3.3.0
+ */
+ @Deprecated
static <T> T convertIfPossible(Object source, Class<?> multiValueType, Class<?> elementType) {
Class<?> sourceType = source.getClass();
MultiValueConverter converter = find(sourceType, multiValueType);
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/param/DynamicParamTable.java b/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/param/DynamicParamTable.java
index a86919ff94..56fa54079b 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/param/DynamicParamTable.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/param/DynamicParamTable.java
@@ -16,7 +16,7 @@
*/
package org.apache.dubbo.common.url.component.param;
-import org.apache.dubbo.common.extension.ExtensionLoader;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import java.util.Arrays;
import java.util.Comparator;
@@ -89,7 +89,7 @@ public final class DynamicParamTable {
keys.add("");
values.add(new DynamicValues(null));
- ExtensionLoader.getExtensionLoader(DynamicParamSource.class)
+ FrameworkModel.defaultModel().getExtensionLoader(DynamicParamSource.class)
.getSupportedExtensionInstances().forEach(source -> source.init(keys, values));
TreeMap<String, ParamValue> resultMap = new TreeMap<>(Comparator.comparingInt(System::identityHashCode));
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java
index eb48bdaa21..70434278da 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.config.annotation.DubboService;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.metadata.definition.MethodDefinitionBuilder;
import org.apache.dubbo.metadata.definition.model.MethodDefinition;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
@@ -38,7 +39,6 @@ import java.util.function.Consumer;
import static java.util.Collections.emptyList;
import static java.util.Collections.sort;
import static java.util.Collections.unmodifiableMap;
-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
import static org.apache.dubbo.common.function.ThrowableFunction.execute;
import static org.apache.dubbo.common.utils.AnnotationUtils.isAnyAnnotationPresent;
import static org.apache.dubbo.common.utils.ClassUtils.forName;
@@ -57,8 +57,8 @@ public abstract class AbstractServiceRestMetadataResolver implements ServiceRest
private final Map<String, List<AnnotatedMethodParameterProcessor>> parameterProcessorsMap;
- public AbstractServiceRestMetadataResolver() {
- this.parameterProcessorsMap = loadAnnotatedMethodParameterProcessors();
+ public AbstractServiceRestMetadataResolver(ApplicationModel applicationModel) {
+ this.parameterProcessorsMap = loadAnnotatedMethodParameterProcessors(applicationModel);
}
@Override
@@ -329,9 +329,9 @@ public abstract class AbstractServiceRestMetadataResolver implements ServiceRest
Class<?> serviceInterfaceClass, RestMethodMetadata metadata) {
}
- private static Map<String, List<AnnotatedMethodParameterProcessor>> loadAnnotatedMethodParameterProcessors() {
+ private static Map<String, List<AnnotatedMethodParameterProcessor>> loadAnnotatedMethodParameterProcessors(ApplicationModel applicationModel) {
Map<String, List<AnnotatedMethodParameterProcessor>> parameterProcessorsMap = new LinkedHashMap<>();
- getExtensionLoader(AnnotatedMethodParameterProcessor.class)
+ applicationModel.getExtensionLoader(AnnotatedMethodParameterProcessor.class)
.getSupportedExtensionInstances()
.forEach(processor -> {
List<AnnotatedMethodParameterProcessor> processors =
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java
index ce53dd883e..926fc64d4c 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java
@@ -16,6 +16,8 @@
*/
package org.apache.dubbo.metadata.rest;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+
import java.lang.reflect.Method;
import java.util.Set;
@@ -26,6 +28,9 @@ import java.util.Set;
* @since 2.7.6
*/
public class DefaultServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {
+ public DefaultServiceRestMetadataResolver(ApplicationModel applicationModel) {
+ super(applicationModel);
+ }
@Override
protected boolean supports0(Class<?> serviceType) {
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java
index 78d174e05e..35df2e7a7a 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.metadata.rest.jaxrs;
import org.apache.dubbo.metadata.rest.AbstractServiceRestMetadataResolver;
import org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
@@ -40,6 +41,9 @@ import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.PRODUC
* @since 2.7.6
*/
public class JAXRSServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {
+ public JAXRSServiceRestMetadataResolver(ApplicationModel applicationModel) {
+ super(applicationModel);
+ }
@Override
protected boolean supports0(Class<?> serviceType) {
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java
index de64592ab8..bd94509e7a 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.metadata.rest.springmvc;
import org.apache.dubbo.metadata.rest.AbstractServiceRestMetadataResolver;
import org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
@@ -48,6 +49,10 @@ public class SpringMvcServiceRestMetadataResolver extends AbstractServiceRestMet
private static final int FIRST_ELEMENT_INDEX = 0;
+ public SpringMvcServiceRestMetadataResolver(ApplicationModel applicationModel) {
+ super(applicationModel);
+ }
+
@Override
protected boolean supports0(Class<?> serviceType) {
return isAnnotationPresent(serviceType, CONTROLLER_ANNOTATION_CLASS);
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolverTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolverTest.java
index 1e1acb1cf3..fe18bbb5c4 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolverTest.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolverTest.java
@@ -23,6 +23,7 @@ import org.apache.dubbo.metadata.rest.RestService;
import org.apache.dubbo.metadata.rest.ServiceRestMetadata;
import org.apache.dubbo.metadata.rest.SpringRestService;
import org.apache.dubbo.metadata.rest.StandardRestService;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import org.junit.jupiter.api.Test;
@@ -39,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
class JAXRSServiceRestMetadataResolverTest {
- private JAXRSServiceRestMetadataResolver instance = new JAXRSServiceRestMetadataResolver();
+ private JAXRSServiceRestMetadataResolver instance = new JAXRSServiceRestMetadataResolver(ApplicationModel.defaultModel());
@Test
void testSupports() {
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java
index e7d0ba42ca..388030d4d9 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java
@@ -23,6 +23,7 @@ import org.apache.dubbo.metadata.rest.RestService;
import org.apache.dubbo.metadata.rest.ServiceRestMetadata;
import org.apache.dubbo.metadata.rest.SpringRestService;
import org.apache.dubbo.metadata.rest.StandardRestService;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import org.junit.jupiter.api.Test;
@@ -39,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
class SpringMvcServiceRestMetadataResolverTest {
- private SpringMvcServiceRestMetadataResolver instance = new SpringMvcServiceRestMetadataResolver();
+ private SpringMvcServiceRestMetadataResolver instance = new SpringMvcServiceRestMetadataResolver(ApplicationModel.defaultModel());
@Test
void testSupports() {
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/builder/TypeDefinitionBuilder.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/builder/TypeDefinitionBuilder.java
index ff389ae976..b717037145 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/builder/TypeDefinitionBuilder.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/builder/TypeDefinitionBuilder.java
@@ -18,14 +18,13 @@ package org.apache.dubbo.metadata.annotation.processing.builder;
import org.apache.dubbo.common.lang.Prioritized;
import org.apache.dubbo.metadata.definition.model.TypeDefinition;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.Element;
import javax.lang.model.type.TypeMirror;
import java.util.Map;
-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
-
/**
* A class builds the instance of {@link TypeDefinition}
*
@@ -57,7 +56,8 @@ public interface TypeDefinitionBuilder<T extends TypeMirror> extends Prioritized
static TypeDefinition build(ProcessingEnvironment processingEnv, TypeMirror type, Map<String, TypeDefinition> typeCache) {
// Build by all instances of TypeDefinitionBuilder that were loaded By Java SPI
- TypeDefinition typeDefinition = getExtensionLoader(TypeBuilder.class)
+ TypeDefinition typeDefinition = ApplicationModel.defaultModel()
+ .getExtensionLoader(TypeBuilder.class)
.getSupportedExtensionInstances()
.stream()
// load(TypeDefinitionBuilder.class, TypeDefinitionBuilder.class.getClassLoader())
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/AbstractServiceRestMetadataResolver.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/AbstractServiceRestMetadataResolver.java
index 9609d93b6d..c4d85e98a9 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/AbstractServiceRestMetadataResolver.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/AbstractServiceRestMetadataResolver.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.metadata.definition.model.MethodDefinition;
import org.apache.dubbo.metadata.rest.RequestMetadata;
import org.apache.dubbo.metadata.rest.RestMethodMetadata;
import org.apache.dubbo.metadata.rest.ServiceRestMetadata;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.AnnotationMirror;
@@ -44,7 +45,6 @@ import static java.util.Collections.emptyList;
import static java.util.Collections.sort;
import static java.util.Optional.empty;
import static java.util.Optional.of;
-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
import static org.apache.dubbo.metadata.annotation.processing.builder.MethodDefinitionBuilder.build;
import static org.apache.dubbo.metadata.annotation.processing.util.LoggerUtils.info;
import static org.apache.dubbo.metadata.annotation.processing.util.MethodUtils.getOverrideMethod;
@@ -268,7 +268,8 @@ public abstract class AbstractServiceRestMetadataResolver implements ServiceRest
// load(AnnotatedMethodParameterProcessor.class, AnnotatedMethodParameterProcessor.class.getClassLoader())
- getExtensionLoader(AnnotatedMethodParameterProcessor.class)
+ ApplicationModel.defaultModel()
+ .getExtensionLoader(AnnotatedMethodParameterProcessor.class)
.getSupportedExtensionInstances()
.forEach(processor -> {
List<AnnotatedMethodParameterProcessor> processors =
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/ServiceRestMetadataAnnotationProcessor.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/ServiceRestMetadataAnnotationProcessor.java
index 739c813dfb..e4d904a1cb 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/ServiceRestMetadataAnnotationProcessor.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/ServiceRestMetadataAnnotationProcessor.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.metadata.annotation.processing.rest;
import org.apache.dubbo.metadata.annotation.processing.AbstractServiceAnnotationProcessor;
import org.apache.dubbo.metadata.rest.ServiceRestMetadata;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.Processor;
@@ -28,7 +29,6 @@ import java.util.LinkedHashSet;
import java.util.Set;
import static javax.lang.model.util.ElementFilter.typesIn;
-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
import static org.apache.dubbo.metadata.annotation.processing.util.ServiceAnnotationUtils.isServiceAnnotationPresent;
/**
@@ -49,7 +49,9 @@ public class ServiceRestMetadataAnnotationProcessor extends AbstractServiceAnnot
@Override
public synchronized void init(ProcessingEnvironment processingEnv) {
super.init(processingEnv);
- this.metadataProcessors = getExtensionLoader(ServiceRestMetadataResolver.class).getSupportedExtensionInstances();
+ this.metadataProcessors = ApplicationModel.defaultModel()
+ .getExtensionLoader(ServiceRestMetadataResolver.class)
+ .getSupportedExtensionInstances();
this.serviceRestMetadataWriter = new ServiceRestMetadataStorage(processingEnv);
}
diff --git a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
index f7b1f0734b..d5fdb3b4a6 100644
--- a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
+++ b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorFactoryTest.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.URL;
import org.apache.dubbo.monitor.Monitor;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.ProxyFactory;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;
import org.junit.jupiter.api.BeforeEach;
@@ -45,7 +46,7 @@ class DubboMonitorFactoryTest {
public void setUp() throws Exception {
initMocks(this);
this.dubboMonitorFactory = new DubboMonitorFactory();
- this.dubboMonitorFactory.setProtocol(new DubboProtocol());
+ this.dubboMonitorFactory.setProtocol(new DubboProtocol(FrameworkModel.defaultModel()));
this.dubboMonitorFactory.setProxyFactory(proxyFactory);
}
diff --git a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
index 154e0848c3..d1ec4113f7 100644
--- a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
+++ b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/MetricsFilterTest.java
@@ -28,6 +28,7 @@ import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.RpcInvocation;
import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;
import com.alibaba.metrics.FastCompass;
@@ -247,7 +248,7 @@ class MetricsFilterTest {
//ignore
}
}
- Protocol protocol = new DubboProtocol();
+ Protocol protocol = new DubboProtocol(FrameworkModel.defaultModel());
// using host name might cause connection failure because multiple addresses might be configured to the same name!
url = URL.valueOf("dubbo://" + NetUtils.getLocalHost() + ":" + port + "/" + MetricsService.class.getName());
Invoker<MetricsService> invoker = protocol.refer(MetricsService.class, url);
@@ -306,7 +307,7 @@ class MetricsFilterTest {
}
}
- Protocol protocol = new DubboProtocol();
+ Protocol protocol = new DubboProtocol(FrameworkModel.defaultModel());
// using host name might cause connection failure because multiple addresses might be configured to the same name!
url = URL.valueOf("dubbo://" + NetUtils.getLocalHost() + ":" + port + "/" + MetricsService.class.getName());
Invoker<MetricsService> invoker = protocol.refer(MetricsService.class, url);
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Exchangers.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Exchangers.java
index 2d181dd451..950b06ac48 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Exchangers.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Exchangers.java
@@ -51,7 +51,7 @@ public class Exchangers {
}
public static ExchangeServer bind(URL url, ChannelHandler handler, Replier<?> replier) throws RemotingException {
- return bind(url, new ExchangeHandlerDispatcher(replier, handler));
+ return bind(url, new ExchangeHandlerDispatcher(url.getOrDefaultFrameworkModel(), replier, handler));
}
public static ExchangeServer bind(String url, ExchangeHandler handler) throws RemotingException {
@@ -90,7 +90,7 @@ public class Exchangers {
}
public static ExchangeClient connect(URL url, ChannelHandler handler, Replier<?> replier) throws RemotingException {
- return connect(url, new ExchangeHandlerDispatcher(replier, handler));
+ return connect(url, new ExchangeHandlerDispatcher(url.getOrDefaultFrameworkModel(), replier, handler));
}
public static ExchangeClient connect(String url, ExchangeHandler handler) throws RemotingException {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java
index bc3e33ae5e..6b923cfb5e 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.remoting.RemotingException;
import org.apache.dubbo.remoting.exchange.ExchangeChannel;
import org.apache.dubbo.remoting.exchange.ExchangeHandler;
import org.apache.dubbo.remoting.telnet.support.TelnetHandlerAdapter;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import java.util.concurrent.CompletableFuture;
@@ -27,6 +28,9 @@ import java.util.concurrent.CompletableFuture;
* ExchangeHandlerAdapter
*/
public abstract class ExchangeHandlerAdapter extends TelnetHandlerAdapter implements ExchangeHandler {
+ public ExchangeHandlerAdapter(FrameworkModel frameworkModel) {
+ super(frameworkModel);
+ }
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) throws RemotingException {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java
index ea1736c2af..066c700187 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java
@@ -24,6 +24,7 @@ import org.apache.dubbo.remoting.exchange.ExchangeHandler;
import org.apache.dubbo.remoting.telnet.TelnetHandler;
import org.apache.dubbo.remoting.telnet.support.TelnetHandlerAdapter;
import org.apache.dubbo.remoting.transport.ChannelHandlerDispatcher;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import java.util.concurrent.CompletableFuture;
@@ -39,21 +40,21 @@ public class ExchangeHandlerDispatcher implements ExchangeHandler {
private final TelnetHandler telnetHandler;
public ExchangeHandlerDispatcher() {
- this(null, null);
+ this(FrameworkModel.defaultModel(), null, (ChannelHandler) null);
}
public ExchangeHandlerDispatcher(Replier<?> replier) {
- this(replier, null);
+ this(FrameworkModel.defaultModel(), replier, (ChannelHandler) null);
}
public ExchangeHandlerDispatcher(ChannelHandler... handlers) {
- this(null, handlers);
+ this(FrameworkModel.defaultModel(), null, handlers);
}
- public ExchangeHandlerDispatcher(Replier<?> replier, ChannelHandler... handlers) {
+ public ExchangeHandlerDispatcher(FrameworkModel frameworkModel, Replier<?> replier, ChannelHandler... handlers) {
replierDispatcher = new ReplierDispatcher(replier);
handlerDispatcher = new ChannelHandlerDispatcher(handlers);
- telnetHandler = new TelnetHandlerAdapter();
+ telnetHandler = new TelnetHandlerAdapter(frameworkModel);
}
public ExchangeHandlerDispatcher addChannelHandler(ChannelHandler handler) {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java
index 9168a87c05..cb18ed7cb1 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java
@@ -24,13 +24,18 @@ import org.apache.dubbo.remoting.Constants;
import org.apache.dubbo.remoting.RemotingException;
import org.apache.dubbo.remoting.telnet.TelnetHandler;
import org.apache.dubbo.remoting.transport.ChannelHandlerAdapter;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;
import static org.apache.dubbo.remoting.Constants.TELNET_KEY;
public class TelnetHandlerAdapter extends ChannelHandlerAdapter implements TelnetHandler {
- private final ExtensionLoader<TelnetHandler> extensionLoader = ExtensionLoader.getExtensionLoader(TelnetHandler.class);
+ private final ExtensionLoader<TelnetHandler> extensionLoader;
+
+ public TelnetHandlerAdapter(FrameworkModel frameworkModel) {
+ extensionLoader = frameworkModel.getExtensionLoader(TelnetHandler.class);
+ }
@Override
public String telnet(Channel channel, String message) throws RemotingException {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java
index 720b0efeb0..04c8142766 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java
@@ -23,6 +23,7 @@ import org.apache.dubbo.remoting.Channel;
import org.apache.dubbo.remoting.telnet.TelnetHandler;
import org.apache.dubbo.remoting.telnet.support.Help;
import org.apache.dubbo.remoting.telnet.support.TelnetUtils;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import java.util.ArrayList;
import java.util.List;
@@ -36,12 +37,16 @@ import java.util.WeakHashMap;
@Help(parameter = "[command]", summary = "Show help.", detail = "Show help.")
public class HelpTelnetHandler implements TelnetHandler {
- private final ExtensionLoader<TelnetHandler> extensionLoader = ExtensionLoader.getExtensionLoader(TelnetHandler.class);
+ private final ExtensionLoader<TelnetHandler> extensionLoader;
private static final String MAIN_HELP = "mainHelp";
private static Map<String, String> processedTable = new WeakHashMap<>();
+ public HelpTelnetHandler(FrameworkModel frameworkModel) {
+ extensionLoader = frameworkModel.getExtensionLoader(TelnetHandler.class);
+ }
+
@Override
public String telnet(Channel channel, String message) {
if (message.length() > 0) {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/ChanelHandlerTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/ChanelHandlerTest.java
index e9ce85825c..f17bced5ca 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/ChanelHandlerTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/ChanelHandlerTest.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.serialize.support.DefaultSerializationSelector;
import org.apache.dubbo.remoting.exchange.ExchangeClient;
import org.apache.dubbo.remoting.exchange.Exchangers;
import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Test;
@@ -100,6 +101,7 @@ class ChanelHandlerTest {
* @param url
*/
public PeformanceTestHandler(String url) {
+ super(FrameworkModel.defaultModel());
this.url = url;
}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java
index 152d6c5dd9..a81b835ec8 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.serialize.support.DefaultSerializationSelector;
import org.apache.dubbo.remoting.exchange.ExchangeClient;
import org.apache.dubbo.remoting.exchange.Exchangers;
import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Test;
@@ -218,6 +219,9 @@ class PerformanceClientTest {
}
static class PeformanceTestHandler extends ExchangeHandlerAdapter {
+ public PeformanceTestHandler() {
+ super(FrameworkModel.defaultModel());
+ }
@Override
public void connected(Channel channel) throws RemotingException {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceServerTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceServerTest.java
index 5298f449e1..90af441c7a 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceServerTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceServerTest.java
@@ -24,6 +24,7 @@ import org.apache.dubbo.remoting.exchange.ExchangeServer;
import org.apache.dubbo.remoting.exchange.Exchangers;
import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;
import org.apache.dubbo.remoting.transport.dispatcher.execution.ExecutionDispatcher;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Test;
@@ -82,7 +83,7 @@ class PerformanceServerTest {
ExchangeServer server = Exchangers.bind("exchange://0.0.0.0:" + port + "?transporter="
+ transporter + "&serialization="
+ serialization + "&threadpool=" + threadpool
- + "&threads=" + threads + "&iothreads=" + iothreads + "&buffer=" + buffer + "&channel.handler=" + channelHandler, new ExchangeHandlerAdapter() {
+ + "&threads=" + threads + "&iothreads=" + iothreads + "&buffer=" + buffer + "&channel.handler=" + channelHandler, new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
public String telnet(Channel channel, String message) throws RemotingException {
return "echo: " + message + "\r\ntelnet> ";
}
@@ -106,7 +107,7 @@ class PerformanceServerTest {
private static ExchangeServer statTelnetServer(int port) throws Exception {
// Start server
- ExchangeServer telnetserver = Exchangers.bind("exchange://0.0.0.0:" + port, new ExchangeHandlerAdapter() {
+ ExchangeServer telnetserver = Exchangers.bind("exchange://0.0.0.0:" + port, new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
public String telnet(Channel channel, String message) throws RemotingException {
if (message.equals("help")) {
return "support cmd: \r\n\tstart \r\n\tstop \r\n\tshutdown \r\n\trestart times [alive] [sleep] \r\ntelnet>";
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/HelpTelnetHandlerTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/HelpTelnetHandlerTest.java
index 45193504eb..a5b77dd8ef 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/HelpTelnetHandlerTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/HelpTelnetHandlerTest.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.remoting.telnet.support;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.remoting.Channel;
import org.apache.dubbo.remoting.telnet.support.command.HelpTelnetHandler;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -30,7 +31,7 @@ class HelpTelnetHandlerTest {
Channel channel = Mockito.mock(Channel.class);
Mockito.when(channel.getUrl()).thenReturn(URL.valueOf("dubbo://127.0.0.1:12345"));
- HelpTelnetHandler helpTelnetHandler = new HelpTelnetHandler();
+ HelpTelnetHandler helpTelnetHandler = new HelpTelnetHandler(FrameworkModel.defaultModel());
// default output
String prompt = "Please input \"help [command]\" show detail.\r\n";
Assertions.assertTrue(helpTelnetHandler.telnet(channel, "").contains(prompt));
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapterTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapterTest.java
index b530827980..40afb734be 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapterTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapterTest.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.remoting.Channel;
import org.apache.dubbo.remoting.RemotingException;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -38,7 +39,7 @@ class TelnetHandlerAdapterTest {
param.put("telnet", "status");
URL url = new URL("p1", "127.0.0.1", 12345, "path1", param);
Mockito.when(channel.getUrl()).thenReturn(url);
- TelnetHandlerAdapter telnetHandlerAdapter = new TelnetHandlerAdapter();
+ TelnetHandlerAdapter telnetHandlerAdapter = new TelnetHandlerAdapter(FrameworkModel.defaultModel());
String message = "--no-prompt status ";
String expectedResult = "OK\r\n";
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/test/java/org/apache/dubbo/remoting/transport/netty/ClientReconnectTest.java b/dubbo-remoting/dubbo-remoting-netty/src/test/java/org/apache/dubbo/remoting/transport/netty/ClientReconnectTest.java
index 81717a0e1e..a90828dbad 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/test/java/org/apache/dubbo/remoting/transport/netty/ClientReconnectTest.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/test/java/org/apache/dubbo/remoting/transport/netty/ClientReconnectTest.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.remoting.RemotingException;
import org.apache.dubbo.remoting.RemotingServer;
import org.apache.dubbo.remoting.exchange.Exchangers;
import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -81,6 +82,10 @@ class ClientReconnectTest {
}
static class HandlerAdapter extends ExchangeHandlerAdapter {
+ public HandlerAdapter() {
+ super(FrameworkModel.defaultModel());
+ }
+
@Override
public void connected(Channel channel) throws RemotingException {
}
diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ClientReconnectTest.java b/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ClientReconnectTest.java
index 6bccd39fb1..03918da077 100644
--- a/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ClientReconnectTest.java
+++ b/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ClientReconnectTest.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.remoting.RemotingException;
import org.apache.dubbo.remoting.RemotingServer;
import org.apache.dubbo.remoting.exchange.Exchangers;
import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -83,6 +84,10 @@ class ClientReconnectTest {
}
static class HandlerAdapter extends ExchangeHandlerAdapter {
+ public HandlerAdapter() {
+ super(FrameworkModel.defaultModel());
+ }
+
@Override
public void connected(Channel channel) throws RemotingException {
}
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java
index 7952143f62..eb17a4f1e4 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java
@@ -19,7 +19,6 @@ package org.apache.dubbo.rpc.protocol.dubbo;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.URLBuilder;
import org.apache.dubbo.common.config.ConfigurationUtils;
-import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.url.component.ServiceConfigURL;
import org.apache.dubbo.common.utils.CollectionUtils;
import org.apache.dubbo.common.utils.NetUtils;
@@ -44,6 +43,7 @@ import org.apache.dubbo.rpc.Result;
import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.RpcInvocation;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.model.ScopeModel;
import org.apache.dubbo.rpc.protocol.AbstractProtocol;
@@ -111,132 +111,133 @@ public class DubboProtocol extends AbstractProtocol {
private final AtomicBoolean destroyed = new AtomicBoolean();
- private final ExchangeHandler requestHandler = new ExchangeHandlerAdapter() {
+ private final ExchangeHandler requestHandler;
- @Override
- public CompletableFuture<Object> reply(ExchangeChannel channel, Object message) throws RemotingException {
+ public DubboProtocol(FrameworkModel frameworkModel) {
+ requestHandler = new ExchangeHandlerAdapter(frameworkModel) {
- if (!(message instanceof Invocation)) {
- throw new RemotingException(channel, "Unsupported request: "
- + (message == null ? null : (message.getClass().getName() + ": " + message))
- + ", channel: consumer: " + channel.getRemoteAddress() + " --> provider: " + channel.getLocalAddress());
- }
+ @Override
+ public CompletableFuture<Object> reply(ExchangeChannel channel, Object message) throws RemotingException {
- Invocation inv = (Invocation) message;
- Invoker<?> invoker = getInvoker(channel, inv);
- inv.setServiceModel(invoker.getUrl().getServiceModel());
- // switch TCCL
- if (invoker.getUrl().getServiceModel() != null) {
- Thread.currentThread().setContextClassLoader(invoker.getUrl().getServiceModel().getClassLoader());
- }
- // need to consider backward-compatibility if it's a callback
- if (Boolean.TRUE.toString().equals(inv.getObjectAttachmentWithoutConvert(IS_CALLBACK_SERVICE_INVOKE))) {
- String methodsStr = invoker.getUrl().getParameters().get("methods");
- boolean hasMethod = false;
- if (methodsStr == null || !methodsStr.contains(",")) {
- hasMethod = inv.getMethodName().equals(methodsStr);
- } else {
- String[] methods = methodsStr.split(",");
- for (String method : methods) {
- if (inv.getMethodName().equals(method)) {
- hasMethod = true;
- break;
+ if (!(message instanceof Invocation)) {
+ throw new RemotingException(channel, "Unsupported request: "
+ + (message == null ? null : (message.getClass().getName() + ": " + message))
+ + ", channel: consumer: " + channel.getRemoteAddress() + " --> provider: " + channel.getLocalAddress());
+ }
+
+ Invocation inv = (Invocation) message;
+ Invoker<?> invoker = getInvoker(channel, inv);
+ inv.setServiceModel(invoker.getUrl().getServiceModel());
+ // switch TCCL
+ if (invoker.getUrl().getServiceModel() != null) {
+ Thread.currentThread().setContextClassLoader(invoker.getUrl().getServiceModel().getClassLoader());
+ }
+ // need to consider backward-compatibility if it's a callback
+ if (Boolean.TRUE.toString().equals(inv.getObjectAttachmentWithoutConvert(IS_CALLBACK_SERVICE_INVOKE))) {
+ String methodsStr = invoker.getUrl().getParameters().get("methods");
+ boolean hasMethod = false;
+ if (methodsStr == null || !methodsStr.contains(",")) {
+ hasMethod = inv.getMethodName().equals(methodsStr);
+ } else {
+ String[] methods = methodsStr.split(",");
+ for (String method : methods) {
+ if (inv.getMethodName().equals(method)) {
+ hasMethod = true;
+ break;
+ }
}
}
+ if (!hasMethod) {
+ logger.warn(PROTOCOL_FAILED_REFER_INVOKER, "", "", new IllegalStateException("The methodName " + inv.getMethodName()
+ + " not found in callback service interface ,invoke will be ignored."
+ + " please update the api interface. url is:"
+ + invoker.getUrl()) + " ,invocation is :" + inv);
+ return null;
+ }
}
- if (!hasMethod) {
- logger.warn(PROTOCOL_FAILED_REFER_INVOKER, "", "", new IllegalStateException("The methodName " + inv.getMethodName()
- + " not found in callback service interface ,invoke will be ignored."
- + " please update the api interface. url is:"
- + invoker.getUrl()) + " ,invocation is :" + inv);
- return null;
- }
+ RpcContext.getServiceContext().setRemoteAddress(channel.getRemoteAddress());
+ Result result = invoker.invoke(inv);
+ return result.thenApply(Function.identity());
}
- RpcContext.getServiceContext().setRemoteAddress(channel.getRemoteAddress());
- Result result = invoker.invoke(inv);
- return result.thenApply(Function.identity());
- }
- @Override
- public void received(Channel channel, Object message) throws RemotingException {
- if (message instanceof Invocation) {
- reply((ExchangeChannel) channel, message);
+ @Override
+ public void received(Channel channel, Object message) throws RemotingException {
+ if (message instanceof Invocation) {
+ reply((ExchangeChannel) channel, message);
- } else {
- super.received(channel, message);
+ } else {
+ super.received(channel, message);
+ }
}
- }
- @Override
- public void connected(Channel channel) throws RemotingException {
- invoke(channel, ON_CONNECT_KEY);
- }
-
- @Override
- public void disconnected(Channel channel) throws RemotingException {
- if (logger.isDebugEnabled()) {
- logger.debug("disconnected from " + channel.getRemoteAddress() + ",url:" + channel.getUrl());
+ @Override
+ public void connected(Channel channel) throws RemotingException {
+ invoke(channel, ON_CONNECT_KEY);
}
- invoke(channel, ON_DISCONNECT_KEY);
- }
- private void invoke(Channel channel, String methodKey) {
- Invocation invocation = createInvocation(channel, channel.getUrl(), methodKey);
- if (invocation != null) {
- try {
- if (Boolean.TRUE.toString().equals(invocation.getAttachment(STUB_EVENT_KEY))) {
- tryToGetStubService(channel, invocation);
- }
- received(channel, invocation);
- } catch (Throwable t) {
- logger.warn(PROTOCOL_FAILED_REFER_INVOKER, "", "", "Failed to invoke event method " + invocation.getMethodName() + "(), cause: " + t.getMessage(), t);
+ @Override
+ public void disconnected(Channel channel) throws RemotingException {
+ if (logger.isDebugEnabled()) {
+ logger.debug("disconnected from " + channel.getRemoteAddress() + ",url:" + channel.getUrl());
}
+ invoke(channel, ON_DISCONNECT_KEY);
}
- }
- private void tryToGetStubService(Channel channel, Invocation invocation) throws RemotingException {
- try {
- Invoker<?> invoker = getInvoker(channel, invocation);
- } catch (RemotingException e) {
- String serviceKey = serviceKey(
- 0,
- (String) invocation.getObjectAttachmentWithoutConvert(PATH_KEY),
- (String) invocation.getObjectAttachmentWithoutConvert(VERSION_KEY),
- (String) invocation.getObjectAttachmentWithoutConvert(GROUP_KEY)
- );
- throw new RemotingException(channel, "The stub service[" + serviceKey + "] is not found, it may not be exported yet");
+ private void invoke(Channel channel, String methodKey) {
+ Invocation invocation = createInvocation(channel, channel.getUrl(), methodKey);
+ if (invocation != null) {
+ try {
+ if (Boolean.TRUE.toString().equals(invocation.getAttachment(STUB_EVENT_KEY))) {
+ tryToGetStubService(channel, invocation);
+ }
+ received(channel, invocation);
+ } catch (Throwable t) {
+ logger.warn(PROTOCOL_FAILED_REFER_INVOKER, "", "", "Failed to invoke event method " + invocation.getMethodName() + "(), cause: " + t.getMessage(), t);
+ }
+ }
}
- }
- /**
- * FIXME channel.getUrl() always binds to a fixed service, and this service is random.
- * we can choose to use a common service to carry onConnect event if there's no easy way to get the specific
- * service this connection is binding to.
- * @param channel
- * @param url
- * @param methodKey
- * @return
- */
- private Invocation createInvocation(Channel channel, URL url, String methodKey) {
- String method = url.getParameter(methodKey);
- if (method == null || method.length() == 0) {
- return null;
+ private void tryToGetStubService(Channel channel, Invocation invocation) throws RemotingException {
+ try {
+ Invoker<?> invoker = getInvoker(channel, invocation);
+ } catch (RemotingException e) {
+ String serviceKey = serviceKey(
+ 0,
+ (String) invocation.getObjectAttachmentWithoutConvert(PATH_KEY),
+ (String) invocation.getObjectAttachmentWithoutConvert(VERSION_KEY),
+ (String) invocation.getObjectAttachmentWithoutConvert(GROUP_KEY)
+ );
+ throw new RemotingException(channel, "The stub service[" + serviceKey + "] is not found, it may not be exported yet");
+ }
}
- RpcInvocation invocation = new RpcInvocation(url.getServiceModel(), method, url.getParameter(INTERFACE_KEY), "", new Class<?>[0], new Object[0]);
- invocation.setAttachment(PATH_KEY, url.getPath());
- invocation.setAttachment(GROUP_KEY, url.getGroup());
- invocation.setAttachment(INTERFACE_KEY, url.getParameter(INTERFACE_KEY));
- invocation.setAttachment(VERSION_KEY, url.getVersion());
- if (url.getParameter(STUB_EVENT_KEY, false)) {
- invocation.setAttachment(STUB_EVENT_KEY, Boolean.TRUE.toString());
- }
+ /**
+ * FIXME channel.getUrl() always binds to a fixed service, and this service is random.
+ * we can choose to use a common service to carry onConnect event if there's no easy way to get the specific
+ * service this connection is binding to.
+ * @param channel
+ * @param url
+ * @param methodKey
+ * @return
+ */
+ private Invocation createInvocation(Channel channel, URL url, String methodKey) {
+ String method = url.getParameter(methodKey);
+ if (method == null || method.length() == 0) {
+ return null;
+ }
- return invocation;
- }
- };
+ RpcInvocation invocation = new RpcInvocation(url.getServiceModel(), method, url.getParameter(INTERFACE_KEY), "", new Class<?>[0], new Object[0]);
+ invocation.setAttachment(PATH_KEY, url.getPath());
+ invocation.setAttachment(GROUP_KEY, url.getGroup());
+ invocation.setAttachment(INTERFACE_KEY, url.getParameter(INTERFACE_KEY));
+ invocation.setAttachment(VERSION_KEY, url.getVersion());
+ if (url.getParameter(STUB_EVENT_KEY, false)) {
+ invocation.setAttachment(STUB_EVENT_KEY, Boolean.TRUE.toString());
+ }
- public DubboProtocol() {
+ return invocation;
+ }
+ };
}
/**
@@ -244,7 +245,7 @@ public class DubboProtocol extends AbstractProtocol {
*/
@Deprecated
public static DubboProtocol getDubboProtocol() {
- return (DubboProtocol) ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(DubboProtocol.NAME, false);
+ return (DubboProtocol) FrameworkModel.defaultModel().getExtensionLoader(Protocol.class).getExtension(DubboProtocol.NAME, false);
}
public static DubboProtocol getDubboProtocol(ScopeModel scopeModel) {
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java
index d6c1a12fe2..cccf18f733 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java
@@ -18,10 +18,10 @@ package org.apache.dubbo.rpc.protocol.dubbo.status;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
-import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.status.Status;
import org.apache.dubbo.common.status.StatusChecker;
import org.apache.dubbo.common.store.DataStore;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import java.util.Map;
import java.util.concurrent.ExecutorService;
@@ -33,9 +33,15 @@ import java.util.concurrent.ThreadPoolExecutor;
@Activate
public class ThreadPoolStatusChecker implements StatusChecker {
+ private final ApplicationModel applicationModel;
+
+ public ThreadPoolStatusChecker(ApplicationModel applicationModel) {
+ this.applicationModel = applicationModel;
+ }
+
@Override
public Status check() {
- DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();
+ DataStore dataStore = applicationModel.getExtensionLoader(DataStore.class).getDefaultExtension();
Map<String, Object> executors = dataStore.get(CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY);
StringBuilder msg = new StringBuilder();
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
index 3f01cbc2fb..96ca315069 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvailableTest.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.remoting.exchange.ExchangeClient;
import org.apache.dubbo.rpc.Exporter;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.ProxyFactory;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.protocol.dubbo.support.ProtocolUtils;
import org.junit.jupiter.api.AfterAll;
@@ -51,7 +52,7 @@ class DubboInvokerAvailableTest {
@BeforeEach
public void setUp() throws Exception {
- protocol = new DubboProtocol();
+ protocol = new DubboProtocol(FrameworkModel.defaultModel());
}
@AfterAll
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/decode/DubboTelnetDecodeTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/decode/DubboTelnetDecodeTest.java
index f6f08ab3ec..cecc45dad9 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/decode/DubboTelnetDecodeTest.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/decode/DubboTelnetDecodeTest.java
@@ -106,7 +106,7 @@ class DubboTelnetDecodeTest {
MockHandler mockHandler = new MockHandler(null,
new MultiMessageHandler(
new DecodeHandler(
- new HeaderExchangeHandler(new ExchangeHandlerAdapter() {
+ new HeaderExchangeHandler(new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) {
if (checkDubboDecoded(msg)) {
@@ -157,7 +157,7 @@ class DubboTelnetDecodeTest {
},
new MultiMessageHandler(
new DecodeHandler(
- new HeaderExchangeHandler(new ExchangeHandlerAdapter() {
+ new HeaderExchangeHandler(new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) {
return getDefaultFuture();
@@ -220,7 +220,7 @@ class DubboTelnetDecodeTest {
},
new MultiMessageHandler(
new DecodeHandler(
- new HeaderExchangeHandler(new ExchangeHandlerAdapter() {
+ new HeaderExchangeHandler(new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) {
if (checkDubboDecoded(msg)) {
@@ -292,7 +292,7 @@ class DubboTelnetDecodeTest {
},
new MultiMessageHandler(
new DecodeHandler(
- new HeaderExchangeHandler(new ExchangeHandlerAdapter() {
+ new HeaderExchangeHandler(new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) {
return getDefaultFuture();
@@ -359,7 +359,7 @@ class DubboTelnetDecodeTest {
MockHandler mockHandler = new MockHandler(null,
new MultiMessageHandler(
new DecodeHandler(
- new HeaderExchangeHandler(new ExchangeHandlerAdapter() {
+ new HeaderExchangeHandler(new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) {
if (checkDubboDecoded(msg)) {
@@ -430,7 +430,7 @@ class DubboTelnetDecodeTest {
},
new MultiMessageHandler(
new DecodeHandler(
- new HeaderExchangeHandler(new ExchangeHandlerAdapter() {
+ new HeaderExchangeHandler(new ExchangeHandlerAdapter(FrameworkModel.defaultModel()) {
@Override
public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) {
if (checkDubboDecoded(msg)) {
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusCheckerTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusCheckerTest.java
index 246c3a9c48..6b26f368d3 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusCheckerTest.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusCheckerTest.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.status.Status;
import org.apache.dubbo.common.store.DataStore;
+import org.apache.dubbo.rpc.model.ApplicationModel;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -40,7 +41,7 @@ class ThreadPoolStatusCheckerTest {
dataStore.put(CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY, "8888", executorService1);
dataStore.put(CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY, "8889", executorService2);
- ThreadPoolStatusChecker threadPoolStatusChecker = new ThreadPoolStatusChecker();
+ ThreadPoolStatusChecker threadPoolStatusChecker = new ThreadPoolStatusChecker(ApplicationModel.defaultModel());
Status status = threadPoolStatusChecker.check();
Assertions.assertEquals(status.getLevel(), Status.Level.WARN);
Assertions.assertEquals(status.getMessage(),
diff --git a/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java b/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java
index a0685b2da7..ea8b34c964 100644
--- a/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java
+++ b/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java
@@ -17,13 +17,13 @@
package org.apache.dubbo.rpc.protocol.grpc;
import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.threadpool.ThreadPool;
import org.apache.dubbo.common.utils.CollectionUtils;
import org.apache.dubbo.config.SslConfig;
import org.apache.dubbo.config.context.ConfigManager;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.protocol.grpc.interceptors.ClientInterceptor;
import org.apache.dubbo.rpc.protocol.grpc.interceptors.GrpcConfigurator;
import org.apache.dubbo.rpc.protocol.grpc.interceptors.ServerInterceptor;
@@ -236,7 +236,7 @@ public class GrpcOptionsUtils {
private static Optional<GrpcConfigurator> getConfigurator() {
// Give users the chance to customize ServerBuilder
- Set<GrpcConfigurator> configurators = ExtensionLoader.getExtensionLoader(GrpcConfigurator.class)
+ Set<GrpcConfigurator> configurators = FrameworkModel.defaultModel().getExtensionLoader(GrpcConfigurator.class)
.getSupportedExtensionInstances();
if (CollectionUtils.isNotEmpty(configurators)) {
return Optional.of(configurators.iterator().next());
diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
index 58f4c5a424..135ef96f8f 100644
--- a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
+++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
@@ -35,8 +35,6 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
-
/**
* Dubbo {@link HealthIndicator}
*
@@ -63,7 +61,7 @@ public class DubboHealthIndicator extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
- ExtensionLoader<StatusChecker> extensionLoader = getExtensionLoader(StatusChecker.class);
+ ExtensionLoader<StatusChecker> extensionLoader = applicationModel.getExtensionLoader(StatusChecker.class);
Map<String, String> statusCheckerNamesMap = resolveStatusCheckerNamesMap();
diff --git a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/context/MockSpringInitCustomizer.java b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/context/MockSpringInitCustomizer.java
index c4a055f25d..e2ec79e800 100644
--- a/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/context/MockSpringInitCustomizer.java
+++ b/dubbo-test/dubbo-test-spring/src/main/java/org/apache/dubbo/test/spring/context/MockSpringInitCustomizer.java
@@ -16,9 +16,9 @@
*/
package org.apache.dubbo.test.spring.context;
-import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.config.spring.context.DubboSpringInitContext;
import org.apache.dubbo.config.spring.context.DubboSpringInitCustomizer;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import org.junit.jupiter.api.Assertions;
import org.springframework.beans.BeansException;
@@ -61,7 +61,7 @@ public class MockSpringInitCustomizer implements DubboSpringInitCustomizer {
}
public static void checkCustomizer(ConfigurableApplicationContext applicationContext) {
- Set<DubboSpringInitCustomizer> customizers = ExtensionLoader
+ Set<DubboSpringInitCustomizer> customizers = FrameworkModel.defaultModel()
.getExtensionLoader(DubboSpringInitCustomizer.class)
.getSupportedExtensionInstances();