public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Compensable compensable = method.getAnnotation(Compensable.class); if (compensable != null) { if (StringUtils.isEmpty(compensable.confirmMethod())) { ReflectionUtils.changeAnnotationValue(compensable, "confirmMethod", method.getName()); ReflectionUtils.changeAnnotationValue(compensable, "cancelMethod", method.getName()); ReflectionUtils.changeAnnotationValue(compensable, "transactionContextEditor", DubboTransactionContextEditor.class); ReflectionUtils.changeAnnotationValue(compensable, "propagation", Propagation.SUPPORTS); } ProceedingJoinPoint pjp = new MethodProceedingJoinPoint(proxy, target, method, args); return FactoryBuilder.factoryOf(ResourceCoordinatorAspect.class).getInstance().interceptTransactionContextMethod(pjp); } else { return super.invoke(target, method, args); } }
public static Session deserialize(String sessionStr) { if (StringUtils.isBlank(sessionStr)) { return null; } try { ByteArrayInputStream bis = new ByteArrayInputStream(Base64.decode(sessionStr)); ObjectInputStream ois = new ObjectInputStream(bis); return (Session) ois.readObject(); } catch (Exception e) { throw new RuntimeException("deserialize session error", e); } }
@Override public TransactionContext get(Object target, Method method, Object[] args) { String context = RpcContext.getContext().getAttachment(TransactionContextConstants.TRANSACTION_CONTEXT); if (StringUtils.isNotEmpty(context)) { return JSON.parseObject(context, TransactionContext.class); } return null; }
private String getMockExceptionMessage(Throwable t, Throwable mt) { String msg = "mock error : " + mt.getMessage(); if (t != null) { msg = msg + ", invoke error is :" + StringUtils.toString(t); } return msg; }
private HttpParam buildParam(HttpServletRequest request) { HttpParam param = new HttpParam(); //params Map<String, String[]> queryParamsTemp = request.getParameterMap(); Map<String, String> queryParams = new HashMap<String, String>(queryParamsTemp.size()); for (Map.Entry<String, String[]> entry : queryParamsTemp.entrySet()) { String key = entry.getKey(); String[] valueTemp = entry.getValue(); String value = StringUtils.join(valueTemp,","); queryParams.put(key, value); } param.setParam(queryParams); return param; } }
public Collection<Registry> getRegistries() { Collection<Registry> registries = AbstractRegistryFactory.getRegistries(); if ((registryConfigs.size() == registries.size()) && registries.size() != 0) { return registries; } registries = new ArrayList<>(); for (RegistryConfig registryConfig : registryConfigs) { String protocol = registryConfig.getProtocol(); String address = registryConfig.getAddress(); RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getExtension(protocol); if (StringUtils.isBlank(protocol)) { registryFactory.getRegistry(URL.valueOf(address)); } else if (StringUtils.isBlank(address) && !StringUtils.isBlank(protocol)) { registryFactory.getRegistry(URL.valueOf(protocol + "://" + NetUtils.getLocalHost())); } else { String[] addresses = address.split(","); if (addresses.length > 0) { Registry registry; if (addresses.length == 1) { registry = registryFactory.getRegistry(URL.valueOf(protocol + "://" + addresses[0])); } else { String[] backup = Arrays.copyOfRange(addresses, 1, addresses.length); registry = registryFactory.getRegistry(URL.valueOf(protocol + "://" + addresses[0] + "?buckup=" + StringUtils.join(backup, ","))); } registries.add(registry); } } } return registries; }
String service = serviceEntry.getKey(); if (this.getInterface(service).equals(url.getServiceInterface()) && (Constants.ANY_VALUE.equals(group) || StringUtils.isEquals(group, this.getGroup(service))) && (Constants.ANY_VALUE.equals(version) || StringUtils.isEquals(version, this.getVersion(service)))) { services.remove(service); if (StringUtils.isEmpty(interfaceName)) { interfaceName = url.getServiceInterface();
private String createProvideSideTraceId() { RpcContext rpcContext = RpcContext.getContext(); String isSample = rpcContext.getAttachment(DstConstants.DST_IS_SAMPLE); if(StringUtils.isNotEmpty(isSample)){ ContextHolder.setLocalSample(Boolean.valueOf(isSample)); } String traceId = rpcContext.getAttachment(DstConstants.DST_TRACE_ID); if (StringUtils.isBlank(traceId)) { ContextHolder.setTraceId(GUId.singleton().nextId()); } else { ContextHolder.setTraceId(traceId); } return ContextHolder.getTraceId(); }
public static int parseInteger(String str) { if (!isInteger(str)) return 0; return Integer.parseInt(str); }
public static boolean isMatch(URL consumerUrl, URL providerUrl) { String consumerInterface = consumerUrl.getServiceInterface(); String providerInterface = providerUrl.getServiceInterface(); if (!(Constants.ANY_VALUE.equals(consumerInterface) || StringUtils.isEquals(consumerInterface, providerInterface))) return false; if (!isMatchCategory(providerUrl.getParameter(Constants.CATEGORY_KEY, Constants.DEFAULT_CATEGORY), consumerUrl.getParameter(Constants.CATEGORY_KEY, Constants.DEFAULT_CATEGORY))) { return false; } if (!providerUrl.getParameter(Constants.ENABLED_KEY, true) && !Constants.ANY_VALUE.equals(consumerUrl.getParameter(Constants.ENABLED_KEY))) { return false; } String consumerGroup = consumerUrl.getParameter(Constants.GROUP_KEY); String consumerVersion = consumerUrl.getParameter(Constants.VERSION_KEY); String consumerClassifier = consumerUrl.getParameter(Constants.CLASSIFIER_KEY, Constants.ANY_VALUE); String providerGroup = providerUrl.getParameter(Constants.GROUP_KEY); String providerVersion = providerUrl.getParameter(Constants.VERSION_KEY); String providerClassifier = providerUrl.getParameter(Constants.CLASSIFIER_KEY, Constants.ANY_VALUE); return (Constants.ANY_VALUE.equals(consumerGroup) || StringUtils.isEquals(consumerGroup, providerGroup) || StringUtils.isContains(consumerGroup, providerGroup)) && (Constants.ANY_VALUE.equals(consumerVersion) || StringUtils.isEquals(consumerVersion, providerVersion)) && (consumerClassifier == null || Constants.ANY_VALUE.equals(consumerClassifier) || StringUtils.isEquals(consumerClassifier, providerClassifier)); }
public static String getKey(Map<String, String> paras, String methodName, String suffix) { return getKey(StringUtils.getServiceKey(paras), methodName, suffix); } private static String getKey(String servicekey, String methodName, String suffix) {
boolean needUpdatePublisherGroupFactory(PublisherGroupFactory factory, String address) { return !StringUtils.isEquals(factory.getRemoteEvents(), getSubscribEvents().get(address)); }
private String getMockExceptionMessage(Throwable t, Throwable mt) { String msg = "mock error : " + mt.getMessage(); if (t != null) { msg = msg + ", invoke error is :" + StringUtils.toString(t); } return msg; }
if ("filter".equals(property) || "listener".equals(property)) { parameterType = String.class; value = StringUtils.join((String[]) value, ","); } else if ("parameters".equals(property)) { parameterType = Map.class;
public static int parseInteger(String str) { if (!isInteger(str)) return 0; return Integer.parseInt(str); }
public static boolean isMatch(URL consumerUrl, URL providerUrl) { String consumerInterface = consumerUrl.getServiceInterface(); String providerInterface = providerUrl.getServiceInterface(); if (!(Constants.ANY_VALUE.equals(consumerInterface) || StringUtils.isEquals(consumerInterface, providerInterface))) return false; if (!isMatchCategory(providerUrl.getParameter(Constants.CATEGORY_KEY, Constants.DEFAULT_CATEGORY), consumerUrl.getParameter(Constants.CATEGORY_KEY, Constants.DEFAULT_CATEGORY))) { return false; } if (!providerUrl.getParameter(Constants.ENABLED_KEY, true) && !Constants.ANY_VALUE.equals(consumerUrl.getParameter(Constants.ENABLED_KEY))) { return false; } String consumerGroup = consumerUrl.getParameter(Constants.GROUP_KEY); String consumerVersion = consumerUrl.getParameter(Constants.VERSION_KEY); String consumerClassifier = consumerUrl.getParameter(Constants.CLASSIFIER_KEY, Constants.ANY_VALUE); String providerGroup = providerUrl.getParameter(Constants.GROUP_KEY); String providerVersion = providerUrl.getParameter(Constants.VERSION_KEY); String providerClassifier = providerUrl.getParameter(Constants.CLASSIFIER_KEY, Constants.ANY_VALUE); return (Constants.ANY_VALUE.equals(consumerGroup) || StringUtils.isEquals(consumerGroup, providerGroup) || StringUtils.isContains(consumerGroup, providerGroup)) && (Constants.ANY_VALUE.equals(consumerVersion) || StringUtils.isEquals(consumerVersion, providerVersion)) && (consumerClassifier == null || Constants.ANY_VALUE.equals(consumerClassifier) || StringUtils.isEquals(consumerClassifier, providerClassifier)); }
public static String getKey(Map<String, String> paras, String methodName, String suffix) { return getKey(StringUtils.getServiceKey(paras), methodName, suffix); } private static String getKey(String servicekey, String methodName, String suffix) {
public void addMethod(String methodCode){ if(mMethods==null){ mMethods = new ArrayList<String>(); } if(!StringUtils.isEmpty(methodCode)){ mMethods.add(methodCode); } }
public void setGroup(String group) { if (StringUtils.isBlank(group)) { return; } this.group = group; }
private String getMockExceptionMessage(Throwable t, Throwable mt){ String msg = "mock error : " + mt.getMessage(); if (t != null){ msg = msg + ", invoke error is :" + StringUtils.toString(t); } return msg; }