Compare commits
22 Commits
dubbo-3.3.
...
3.2
| Author | SHA1 | Date |
|---|---|---|
|
|
11d5bd9ffa | |
|
|
30bf8c4de8 | |
|
|
865e8b05cf | |
|
|
2dc0f9a374 | |
|
|
d98b1e821f | |
|
|
04c16fa944 | |
|
|
7d5fa50783 | |
|
|
99601a6198 | |
|
|
0a48e9d8dc | |
|
|
4be8594bde | |
|
|
9d333ba906 | |
|
|
c61cc9f719 | |
|
|
cd89d192b6 | |
|
|
8200f3ed2e | |
|
|
b76e0597f5 | |
|
|
87ab5a6964 | |
|
|
61effff7e8 | |
|
|
086cdd942c | |
|
|
dc2465fff7 | |
|
|
0ccd5a1953 | |
|
|
293711e591 | |
|
|
5ad25875b9 |
|
|
@ -43,7 +43,7 @@ jobs:
|
|||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
java-version: 8
|
||||
java-version: 21
|
||||
- uses: actions/cache@v3
|
||||
name: "Cache local Maven repository"
|
||||
with:
|
||||
|
|
|
|||
|
|
@ -34,4 +34,6 @@ public interface DataStore {
|
|||
void put(String componentName, String key, Object value);
|
||||
|
||||
void remove(String componentName, String key);
|
||||
|
||||
default void addListener(DataStoreUpdateListener dataStoreUpdateListener) {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* 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.common.store;
|
||||
|
||||
public interface DataStoreUpdateListener {
|
||||
void onUpdate(String componentName, String key, Object value);
|
||||
}
|
||||
|
|
@ -16,8 +16,13 @@
|
|||
*/
|
||||
package org.apache.dubbo.common.store.support;
|
||||
|
||||
import org.apache.dubbo.common.constants.LoggerCodeConstants;
|
||||
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
|
||||
import org.apache.dubbo.common.logger.LoggerFactory;
|
||||
import org.apache.dubbo.common.store.DataStore;
|
||||
import org.apache.dubbo.common.store.DataStoreUpdateListener;
|
||||
import org.apache.dubbo.common.utils.ConcurrentHashMapUtils;
|
||||
import org.apache.dubbo.common.utils.ConcurrentHashSet;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
|
@ -25,9 +30,11 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
public class SimpleDataStore implements DataStore {
|
||||
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(SimpleDataStore.class);
|
||||
|
||||
// <component name or id, <data-name, data-value>>
|
||||
private final ConcurrentMap<String, ConcurrentMap<String, Object>> data = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashSet<DataStoreUpdateListener> listeners = new ConcurrentHashSet<>();
|
||||
|
||||
@Override
|
||||
public Map<String, Object> get(String componentName) {
|
||||
|
|
@ -52,6 +59,7 @@ public class SimpleDataStore implements DataStore {
|
|||
Map<String, Object> componentData =
|
||||
ConcurrentHashMapUtils.computeIfAbsent(data, componentName, k -> new ConcurrentHashMap<>());
|
||||
componentData.put(key, value);
|
||||
notifyListeners(componentName, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -60,5 +68,27 @@ public class SimpleDataStore implements DataStore {
|
|||
return;
|
||||
}
|
||||
data.get(componentName).remove(key);
|
||||
notifyListeners(componentName, key, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(DataStoreUpdateListener dataStoreUpdateListener) {
|
||||
listeners.add(dataStoreUpdateListener);
|
||||
}
|
||||
|
||||
private void notifyListeners(String componentName, String key, Object value) {
|
||||
for (DataStoreUpdateListener listener : listeners) {
|
||||
try {
|
||||
listener.onUpdate(componentName, key, value);
|
||||
} catch (Throwable t) {
|
||||
logger.warn(
|
||||
LoggerCodeConstants.INTERNAL_ERROR,
|
||||
"",
|
||||
"",
|
||||
"Failed to notify data store update listener. " + "ComponentName: " + componentName + " Key: "
|
||||
+ key,
|
||||
t);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,11 @@ public interface Constants {
|
|||
|
||||
String SERVER_THREAD_POOL_NAME = "DubboServerHandler";
|
||||
|
||||
String SERVER_THREAD_POOL_PREFIX = SERVER_THREAD_POOL_NAME + "-";
|
||||
|
||||
String CLIENT_THREAD_POOL_NAME = "DubboClientHandler";
|
||||
|
||||
String CLIENT_THREAD_POOL_PREFIX = CLIENT_THREAD_POOL_NAME + "-";
|
||||
|
||||
String REST_PROTOCOL = "rest";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,9 +16,13 @@
|
|||
*/
|
||||
package org.apache.dubbo.common.store.support;
|
||||
|
||||
import org.apache.dubbo.common.store.DataStoreUpdateListener;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
|
|
@ -57,4 +61,30 @@ class SimpleDataStoreTest {
|
|||
dataStore.remove("component", "key");
|
||||
assertNotEquals(map, dataStore.get("component"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNotify() {
|
||||
DataStoreUpdateListener listener = Mockito.mock(DataStoreUpdateListener.class);
|
||||
dataStore.addListener(listener);
|
||||
|
||||
ArgumentCaptor<String> componentNameCaptor = ArgumentCaptor.forClass(String.class);
|
||||
ArgumentCaptor<String> keyCaptor = ArgumentCaptor.forClass(String.class);
|
||||
ArgumentCaptor<Object> valueCaptor = ArgumentCaptor.forClass(Object.class);
|
||||
|
||||
dataStore.put("name", "key", "1");
|
||||
Mockito.verify(listener).onUpdate(componentNameCaptor.capture(), keyCaptor.capture(), valueCaptor.capture());
|
||||
assertEquals("name", componentNameCaptor.getValue());
|
||||
assertEquals("key", keyCaptor.getValue());
|
||||
assertEquals("1", valueCaptor.getValue());
|
||||
|
||||
dataStore.remove("name", "key");
|
||||
Mockito.verify(listener, Mockito.times(2))
|
||||
.onUpdate(componentNameCaptor.capture(), keyCaptor.capture(), valueCaptor.capture());
|
||||
assertEquals("name", componentNameCaptor.getValue());
|
||||
assertEquals("key", keyCaptor.getValue());
|
||||
assertNull(valueCaptor.getValue());
|
||||
|
||||
dataStore.remove("name2", "key");
|
||||
Mockito.verify(listener, Mockito.times(0)).onUpdate("name2", "key", null);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<skip_maven_deploy>true</skip_maven_deploy>
|
||||
<spring-boot.version>2.7.18</spring-boot.version>
|
||||
<spring-boot-maven-plugin.version>2.7.18</spring-boot-maven-plugin.version>
|
||||
<micrometer-core.version>1.13.0</micrometer-core.version>
|
||||
<micrometer-core.version>1.13.1</micrometer-core.version>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
|
|
|||
|
|
@ -90,12 +90,12 @@
|
|||
<properties>
|
||||
<!-- Common libs -->
|
||||
<!-- <spring_version>4.3.30.RELEASE</spring_version> -->
|
||||
<spring_version>5.3.36</spring_version>
|
||||
<spring_security_version>5.8.12</spring_security_version>
|
||||
<spring_version>5.3.37</spring_version>
|
||||
<spring_security_version>5.8.13</spring_security_version>
|
||||
<javassist_version>3.30.2-GA</javassist_version>
|
||||
<bytebuddy.version>1.14.17</bytebuddy.version>
|
||||
<netty_version>3.2.10.Final</netty_version>
|
||||
<netty4_version>4.1.110.Final</netty4_version>
|
||||
<netty4_version>4.1.111.Final</netty4_version>
|
||||
<httpclient_version>4.5.14</httpclient_version>
|
||||
<httpcore_version>4.4.16</httpcore_version>
|
||||
<fastjson_version>1.2.83</fastjson_version>
|
||||
|
|
@ -119,13 +119,13 @@
|
|||
<snakeyaml_version>2.2</snakeyaml_version>
|
||||
<commons_lang3_version>3.14.0</commons_lang3_version>
|
||||
<envoy_api_version>0.1.35</envoy_api_version>
|
||||
<micrometer.version>1.13.0</micrometer.version>
|
||||
<micrometer.version>1.13.1</micrometer.version>
|
||||
|
||||
<micrometer-tracing.version>1.3.0</micrometer-tracing.version>
|
||||
<micrometer-tracing.version>1.3.1</micrometer-tracing.version>
|
||||
<t_digest.version>3.3</t_digest.version>
|
||||
<prometheus_client.version>0.16.0</prometheus_client.version>
|
||||
<reactive.version>1.0.4</reactive.version>
|
||||
<reactor.version>3.6.6</reactor.version>
|
||||
<reactor.version>3.6.7</reactor.version>
|
||||
<rxjava.version>2.2.21</rxjava.version>
|
||||
<okhttp_version>3.14.9</okhttp_version>
|
||||
|
||||
|
|
@ -170,7 +170,7 @@
|
|||
<spotless.action>check</spotless.action>
|
||||
<dubbo-shared-resources.version>1.0.0</dubbo-shared-resources.version>
|
||||
<palantirJavaFormat.version>2.38.0</palantirJavaFormat.version>
|
||||
<revision>3.2.14-SNAPSHOT</revision>
|
||||
<revision>3.2.15-SNAPSHOT</revision>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<revision>3.2.14-SNAPSHOT</revision>
|
||||
<revision>3.2.15-SNAPSHOT</revision>
|
||||
<maven_flatten_version>1.6.0</maven_flatten_version>
|
||||
<curator5_version>5.1.0</curator5_version>
|
||||
<zookeeper_version>3.8.4</zookeeper_version>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<revision>3.2.14-SNAPSHOT</revision>
|
||||
<revision>3.2.15-SNAPSHOT</revision>
|
||||
<maven_flatten_version>1.6.0</maven_flatten_version>
|
||||
<curator_version>4.3.0</curator_version>
|
||||
<zookeeper_version>3.4.14</zookeeper_version>
|
||||
|
|
|
|||
|
|
@ -33,13 +33,13 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>3.9.7</version>
|
||||
<version>3.9.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-core</artifactId>
|
||||
<version>3.9.7</version>
|
||||
<version>3.9.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ package org.apache.dubbo.metrics.collector.sample;
|
|||
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
|
||||
import org.apache.dubbo.common.logger.LoggerFactory;
|
||||
import org.apache.dubbo.common.store.DataStore;
|
||||
import org.apache.dubbo.common.store.DataStoreUpdateListener;
|
||||
import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository;
|
||||
import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;
|
||||
import org.apache.dubbo.common.utils.ConcurrentHashMapUtils;
|
||||
|
|
@ -42,11 +43,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_METRICS_COLLECTOR_EXCEPTION;
|
||||
import static org.apache.dubbo.config.Constants.CLIENT_THREAD_POOL_NAME;
|
||||
import static org.apache.dubbo.config.Constants.CLIENT_THREAD_POOL_PREFIX;
|
||||
import static org.apache.dubbo.config.Constants.SERVER_THREAD_POOL_NAME;
|
||||
import static org.apache.dubbo.config.Constants.SERVER_THREAD_POOL_PREFIX;
|
||||
import static org.apache.dubbo.metrics.model.MetricsCategory.THREAD_POOL;
|
||||
|
||||
public class ThreadPoolMetricsSampler implements MetricsSampler {
|
||||
public class ThreadPoolMetricsSampler implements MetricsSampler, DataStoreUpdateListener {
|
||||
|
||||
private final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ThreadPoolMetricsSampler.class);
|
||||
|
||||
|
|
@ -61,14 +63,28 @@ public class ThreadPoolMetricsSampler implements MetricsSampler {
|
|||
this.collector = collector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate(String componentName, String key, Object value) {
|
||||
if (EXECUTOR_SERVICE_COMPONENT_KEY.equals(componentName)) {
|
||||
if (value instanceof ThreadPoolExecutor) {
|
||||
addExecutors(SERVER_THREAD_POOL_PREFIX + key, (ThreadPoolExecutor) value);
|
||||
}
|
||||
} else if (CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY.equals(componentName)) {
|
||||
if (value instanceof ThreadPoolExecutor) {
|
||||
addExecutors(CLIENT_THREAD_POOL_PREFIX + key, (ThreadPoolExecutor) value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void addExecutors(String name, ExecutorService executorService) {
|
||||
Optional.ofNullable(executorService)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(e -> e instanceof ThreadPoolExecutor)
|
||||
.map(e -> (ThreadPoolExecutor) e)
|
||||
.ifPresent(threadPoolExecutor -> {
|
||||
sampleThreadPoolExecutor.put(name, threadPoolExecutor);
|
||||
samplesChanged.set(true);
|
||||
if (sampleThreadPoolExecutor.put(name, threadPoolExecutor) == null) {
|
||||
samplesChanged.set(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -152,18 +168,20 @@ public class ThreadPoolMetricsSampler implements MetricsSampler {
|
|||
}
|
||||
|
||||
if (dataStore != null) {
|
||||
dataStore.addListener(this);
|
||||
|
||||
Map<String, Object> executors = dataStore.get(EXECUTOR_SERVICE_COMPONENT_KEY);
|
||||
for (Map.Entry<String, Object> entry : executors.entrySet()) {
|
||||
ExecutorService executor = (ExecutorService) entry.getValue();
|
||||
if (executor instanceof ThreadPoolExecutor) {
|
||||
this.addExecutors(SERVER_THREAD_POOL_NAME + "-" + entry.getKey(), executor);
|
||||
this.addExecutors(SERVER_THREAD_POOL_PREFIX + entry.getKey(), executor);
|
||||
}
|
||||
}
|
||||
executors = dataStore.get(CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY);
|
||||
for (Map.Entry<String, Object> entry : executors.entrySet()) {
|
||||
ExecutorService executor = (ExecutorService) entry.getValue();
|
||||
if (executor instanceof ThreadPoolExecutor) {
|
||||
this.addExecutors(CLIENT_THREAD_POOL_NAME + "-" + entry.getKey(), executor);
|
||||
this.addExecutors(CLIENT_THREAD_POOL_PREFIX + entry.getKey(), executor);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ package org.apache.dubbo.metrics.collector.sample;
|
|||
import org.apache.dubbo.common.beans.factory.ScopeBeanFactory;
|
||||
import org.apache.dubbo.common.extension.ExtensionLoader;
|
||||
import org.apache.dubbo.common.store.DataStore;
|
||||
import org.apache.dubbo.common.store.DataStoreUpdateListener;
|
||||
import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository;
|
||||
import org.apache.dubbo.metrics.collector.DefaultMetricsCollector;
|
||||
import org.apache.dubbo.metrics.model.ThreadPoolMetric;
|
||||
|
|
@ -37,11 +38,13 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@SuppressWarnings("all")
|
||||
|
|
@ -178,4 +181,32 @@ public class ThreadPoolMetricsSamplerTest {
|
|||
serverExecutor.shutdown();
|
||||
clientExecutor.shutdown();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDataSourceNotify() throws Exception {
|
||||
ArgumentCaptor<DataStoreUpdateListener> captor = ArgumentCaptor.forClass(DataStoreUpdateListener.class);
|
||||
when(scopeBeanFactory.getBean(FrameworkExecutorRepository.class)).thenReturn(frameworkExecutorRepository);
|
||||
when(frameworkExecutorRepository.getSharedExecutor()).thenReturn(null);
|
||||
sampler2.registryDefaultSampleThreadPoolExecutor();
|
||||
|
||||
Field f = ThreadPoolMetricsSampler.class.getDeclaredField("sampleThreadPoolExecutor");
|
||||
f.setAccessible(true);
|
||||
Map<String, ThreadPoolExecutor> executors = (Map<String, ThreadPoolExecutor>) f.get(sampler2);
|
||||
|
||||
Assertions.assertEquals(0, executors.size());
|
||||
|
||||
verify(dataStore).addListener(captor.capture());
|
||||
Assertions.assertEquals(sampler2, captor.getValue());
|
||||
|
||||
ExecutorService executorService = Executors.newFixedThreadPool(5);
|
||||
sampler2.onUpdate(EXECUTOR_SERVICE_COMPONENT_KEY, "20880", executorService);
|
||||
|
||||
executors = (Map<String, ThreadPoolExecutor>) f.get(sampler2);
|
||||
Assertions.assertEquals(1, executors.size());
|
||||
Assertions.assertTrue(executors.containsKey("DubboServerHandler-20880"));
|
||||
|
||||
sampler2.onUpdate(CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY, "client", executorService);
|
||||
Assertions.assertEquals(2, executors.size());
|
||||
Assertions.assertTrue(executors.containsKey("DubboClientHandler-client"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,13 +35,13 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>3.9.7</version>
|
||||
<version>3.9.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-core</artifactId>
|
||||
<version>3.9.7</version>
|
||||
<version>3.9.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,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.ConsumerModel;
|
||||
import org.apache.dubbo.rpc.model.MethodDescriptor;
|
||||
import org.apache.dubbo.rpc.model.ServiceModel;
|
||||
import org.apache.dubbo.rpc.protocol.AbstractInvoker;
|
||||
|
|
@ -317,11 +318,18 @@ public class InjvmInvoker<T> extends AbstractInvoker<T> {
|
|||
}
|
||||
|
||||
Object value = originValue;
|
||||
ClassLoader cl = Thread.currentThread().getContextClassLoader();
|
||||
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
|
||||
try {
|
||||
ServiceModel consumerServiceModel = getUrl().getServiceModel();
|
||||
if (consumerServiceModel != null) {
|
||||
Thread.currentThread().setContextClassLoader(consumerServiceModel.getClassLoader());
|
||||
// 1. By default, the classloader of the current Thread is the consumer class loader.
|
||||
ClassLoader consumerClassLoader = contextClassLoader;
|
||||
ServiceModel serviceModel = getUrl().getServiceModel();
|
||||
// 2. If there is a ConsumerModel in the url, the classloader of the ConsumerModel is consumerLoader
|
||||
if (Objects.nonNull(serviceModel) && serviceModel instanceof ConsumerModel) {
|
||||
consumerClassLoader = serviceModel.getClassLoader();
|
||||
}
|
||||
// 3. request result copy
|
||||
if (Objects.nonNull(consumerClassLoader)) {
|
||||
Thread.currentThread().setContextClassLoader(consumerClassLoader);
|
||||
Type[] returnTypes = RpcUtils.getReturnTypes(invocation);
|
||||
if (returnTypes == null) {
|
||||
return originValue;
|
||||
|
|
@ -334,7 +342,7 @@ public class InjvmInvoker<T> extends AbstractInvoker<T> {
|
|||
}
|
||||
return value;
|
||||
} finally {
|
||||
Thread.currentThread().setContextClassLoader(cl);
|
||||
Thread.currentThread().setContextClassLoader(contextClassLoader);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@
|
|||
</modules>
|
||||
|
||||
<properties>
|
||||
<micrometer.version>1.13.0</micrometer.version>
|
||||
<micrometer-tracing.version>1.3.0</micrometer-tracing.version>
|
||||
<micrometer.version>1.13.1</micrometer.version>
|
||||
<micrometer-tracing.version>1.3.1</micrometer-tracing.version>
|
||||
<opentelemetry.version>1.39.0</opentelemetry.version>
|
||||
<zipkin-reporter.version>3.4.0</zipkin-reporter.version>
|
||||
<prometheus-client.version>0.16.0</prometheus-client.version>
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
<properties>
|
||||
<skip_maven_deploy>true</skip_maven_deploy>
|
||||
<slf4j-log4j12.version>1.7.33</slf4j-log4j12.version>
|
||||
<spring_version>5.3.36</spring_version>
|
||||
<spring_version>5.3.37</spring_version>
|
||||
<!--<spring_version>4.0.9.RELEASE</spring_version>-->
|
||||
<!--<spring_version>4.1.9.RELEASE</spring_version>-->
|
||||
<!--<spring_version>4.2.4.RELEASE</spring_version>-->
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<properties>
|
||||
<skip_maven_deploy>true</skip_maven_deploy>
|
||||
<spring_version>5.3.36</spring_version>
|
||||
<spring_version>5.3.37</spring_version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<properties>
|
||||
<skip_maven_deploy>true</skip_maven_deploy>
|
||||
<spring_version>5.3.36</spring_version>
|
||||
<spring_version>5.3.37</spring_version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<properties>
|
||||
<skip_maven_deploy>true</skip_maven_deploy>
|
||||
<spring_version>5.3.36</spring_version>
|
||||
<spring_version>5.3.37</spring_version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
|
|||
14
pom.xml
14
pom.xml
|
|
@ -141,9 +141,9 @@
|
|||
<java_target_version>1.8</java_target_version>
|
||||
<file_encoding>UTF-8</file_encoding>
|
||||
<!-- Maven plugins -->
|
||||
<maven_jar_version>3.4.1</maven_jar_version>
|
||||
<maven_surefire_version>3.2.5</maven_surefire_version>
|
||||
<maven_failsafe_version>3.2.5</maven_failsafe_version>
|
||||
<maven_jar_version>3.4.2</maven_jar_version>
|
||||
<maven_surefire_version>3.3.0</maven_surefire_version>
|
||||
<maven_failsafe_version>3.3.0</maven_failsafe_version>
|
||||
<maven_deploy_version>2.8.2</maven_deploy_version>
|
||||
<maven_compiler_version>3.13.0</maven_compiler_version>
|
||||
<maven_source_version>3.3.1</maven_source_version>
|
||||
|
|
@ -169,7 +169,7 @@
|
|||
<spotless.action>check</spotless.action>
|
||||
<dubbo-shared-resources.version>1.0.0</dubbo-shared-resources.version>
|
||||
<palantirJavaFormat.version>2.38.0</palantirJavaFormat.version>
|
||||
<revision>3.2.14-SNAPSHOT</revision>
|
||||
<revision>3.2.15-SNAPSHOT</revision>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
@ -281,7 +281,7 @@
|
|||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.3.2</version>
|
||||
<version>3.4.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.ops4j.pax.exam</groupId>
|
||||
|
|
@ -290,7 +290,7 @@
|
|||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.6.1</version>
|
||||
<version>3.7.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<!-- Do NOT upgrade -->
|
||||
|
|
@ -448,7 +448,7 @@
|
|||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<autoVersionSubmodules>true</autoVersionSubmodules>
|
||||
<useReleaseProfile>false</useReleaseProfile>
|
||||
|
|
|
|||
Loading…
Reference in New Issue