|
21 | 21 | import com.google.common.cache.CacheLoader;
|
22 | 22 | import com.google.common.cache.LoadingCache;
|
23 | 23 | import com.google.common.cache.RemovalListener;
|
| 24 | + |
| 25 | +import java.util.ArrayList; |
24 | 26 | import java.util.HashMap;
|
25 | 27 | import java.util.Map;
|
26 | 28 | import java.util.Objects;
|
27 | 29 | import java.util.Optional;
|
28 | 30 | import java.util.concurrent.ExecutionException;
|
29 | 31 | import jakarta.annotation.Nonnull;
|
| 32 | +import org.apache.commons.collections4.CollectionUtils; |
30 | 33 | import org.apache.commons.lang3.StringUtils;
|
31 | 34 | import org.apache.dubbo.common.constants.CommonConstants;
|
32 | 35 | import org.apache.dubbo.config.ApplicationConfig;
|
33 | 36 | import org.apache.dubbo.config.ConsumerConfig;
|
| 37 | +import org.apache.dubbo.config.MethodConfig; |
34 | 38 | import org.apache.dubbo.config.ReferenceConfig;
|
35 | 39 | import org.apache.dubbo.config.RegistryConfig;
|
36 | 40 | import org.apache.dubbo.rpc.service.GenericService;
|
|
39 | 43 | import org.apache.shenyu.common.dto.convert.plugin.DubboRegisterConfig;
|
40 | 44 | import org.apache.shenyu.common.exception.ShenyuException;
|
41 | 45 | import org.apache.shenyu.plugin.dubbo.common.cache.DubboConfigCache;
|
| 46 | +import org.apache.shenyu.plugin.dubbo.common.cache.DubboMethodParam; |
42 | 47 | import org.apache.shenyu.plugin.dubbo.common.cache.DubboParam;
|
43 | 48 | import org.slf4j.Logger;
|
44 | 49 | import org.slf4j.LoggerFactory;
|
@@ -235,6 +240,22 @@ private ReferenceConfig<GenericService> buildReference(final MetaData metaData,
|
235 | 240 | Optional.ofNullable(dubboParam.getTimeout()).ifPresent(reference::setTimeout);
|
236 | 241 | Optional.ofNullable(dubboParam.getRetries()).ifPresent(reference::setRetries);
|
237 | 242 | Optional.ofNullable(dubboParam.getSent()).ifPresent(reference::setSent);
|
| 243 | + // methods |
| 244 | + if (CollectionUtils.isNotEmpty(dubboParam.getMethods())) { |
| 245 | + reference.setMethods(new ArrayList<>()); |
| 246 | + for (DubboMethodParam dubboMethodParam : dubboParam.getMethods()) { |
| 247 | + MethodConfig methodConfig = new MethodConfig(); |
| 248 | + methodConfig.setName(dubboMethodParam.getName()); |
| 249 | + methodConfig.setLoadbalance("gray"); |
| 250 | + methodConfig.setRetries(dubboMethodParam.getRetries()); |
| 251 | + methodConfig.setTimeout(dubboMethodParam.getTimeout()); |
| 252 | + methodConfig.setSent(dubboMethodParam.getSent()); |
| 253 | + Map<String, String> methodsParameters = new HashMap<>(1); |
| 254 | + methodsParameters.put(Constants.DUBBO_LOAD_BALANCE, dubboMethodParam.getLoadbalance()); |
| 255 | + methodConfig.setParameters(methodsParameters); |
| 256 | + reference.getMethods().add(methodConfig); |
| 257 | + } |
| 258 | + } |
238 | 259 | }
|
239 | 260 | if (StringUtils.isNotBlank(namespace)) {
|
240 | 261 | RegistryConfig registryConfig = new RegistryConfig();
|
|
0 commit comments