private boolean checkEasyTransRequest(Invocation invocation) { if(invocation.getArguments().length == 3){ Object param3 = invocation.getArguments()[2]; if(param3 != null && param3.getClass().isArray()){ Object[] array = (Object[]) param3; if(array.length == 2 && array[0] instanceof EasyTransRequest && array[1] instanceof Map){ return true; } } } return false; }
@Override public EasyTransResult invoke(EasyTransFilterChain filterChain, Map<String,Object> header, EasyTransRequest<?, ?> request) { Result dubboInvoke = null; if(localInvocation instanceof RpcInvocation){ Object[] arguments = localInvocation.getArguments(); Object[] argReq = (Object[]) arguments[2]; argReq[0] = request; dubboInvoke = localInvoker.invoke(localInvocation); }else{ throw new RuntimeException("Do not support,please extend it"); } EasyTransResult easyTransResult = new EasyTransResult(); easyTransResult.setValue(dubboInvoke.getValue()); easyTransResult.setException(dubboInvoke.getException()); return easyTransResult; } }
@Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { DubboEasyTransRpcProviderImpl instance = DubboEasyTransRpcProviderImpl.getInstance(); if(checkEasyTransRequest(invocation)){ EasyTransRequest<?, ?> easyTransRequest = (EasyTransRequest<?, ?>) ((Object[])invocation.getArguments()[2])[0]; @SuppressWarnings("unchecked") Map<String,Object> header = (Map<String,Object>) ((Object[])invocation.getArguments()[2])[1]; BusinessIdentifer businessIdentifer = ReflectUtil.getBusinessIdentifer(easyTransRequest.getClass()); EasyTransFilterChain filterChain = instance.getFilterChainFactory().getFilterChainByFilters(businessIdentifer.appId(), businessIdentifer.busCode(), (String)(invocation.getArguments()[0]),instance.getFilters()); filterChain.addFilter(new EasyTransFilterAdapter(invoker, invocation)); EasyTransResult result; try { result = filterChain.invokeFilterChain(header,easyTransRequest); } catch (Exception e) { LOG.error("RPC EasyTrans FilterChain execute Error!",e); throw e; } if(result.hasException()){ return new RpcResult(result.getException()); }else{ return new RpcResult(result.getValue()); } }else{ return invoker.invoke(invocation); } }
ContextUtil.enter(resourceName, application); interfaceEntry = SphU.entry(interfaceName, EntryType.IN); methodEntry = SphU.entry(resourceName, EntryType.IN, 1, invocation.getArguments()); } finally { if (methodEntry != null) { methodEntry.exit(1, invocation.getArguments());
Object[] arguments = invocation.getArguments(); Xid xid = (Xid) arguments[0];
Object[] arguments = invocation.getArguments(); Xid xid = (Xid) arguments[0];
Class clazz = invoker.getInterface(); Class[] args = invocation.getParameterTypes(); final Object[] arguments = invocation.getArguments(); Method method = null; Hmily hmily = null;
when(map.get(anyString())).thenAnswer(new Answer<String>() { public String answer(Invocation invocation) { String arg = (String) invocation.getArguments()[0]; if (args.equals("abcd") return "defg"; // etc. else return "default"; // or throw new Exception() } });
public static Object[] getArguments(Invocation invocation) { if (Constants.$INVOKE.equals(invocation.getMethodName()) && invocation.getArguments() != null && invocation.getArguments().length > 2 && invocation.getArguments()[2] instanceof Object[]) { return (Object[]) invocation.getArguments()[2]; } return invocation.getArguments(); }
public static Object[] getArguments(Invocation invocation){ if(Constants.$INVOKE.equals(invocation.getMethodName()) && invocation.getArguments() != null && invocation.getArguments().length > 2 && invocation.getArguments()[2] instanceof Object[]){ return (Object[]) invocation.getArguments()[2]; } return invocation.getArguments(); }
public static String getMethodName(Invocation invocation) { if (Constants.$INVOKE.equals(invocation.getMethodName()) && invocation.getArguments() != null && invocation.getArguments().length > 0 && invocation.getArguments()[0] instanceof String) { return (String) invocation.getArguments()[0]; } return invocation.getMethodName(); }
public static String getMethodName(Invocation invocation) { if (Constants.$INVOKE.equals(invocation.getMethodName()) && invocation.getArguments() != null && invocation.getArguments().length > 0 && invocation.getArguments()[0] instanceof String) { return (String) invocation.getArguments()[0]; } return invocation.getMethodName(); }
@Override public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException { if (inv.getMethodName().equals(Constants.$ECHO) && inv.getArguments() != null && inv.getArguments().length == 1) return new RpcResult(inv.getArguments()[0]); return invoker.invoke(inv); }
@Override public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException { if (inv.getMethodName().equals(Constants.$ECHO) && inv.getArguments() != null && inv.getArguments().length == 1) return new RpcResult(inv.getArguments()[0]); return invoker.invoke(inv); }
public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException { if(inv.getMethodName().equals(Constants.$ECHO) && inv.getArguments() != null && inv.getArguments().length == 1 ) return new RpcResult(inv.getArguments()[0]); return invoker.invoke(inv); }
public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException { if(inv.getMethodName().equals(Constants.$ECHO) && inv.getArguments() != null && inv.getArguments().length == 1 ) return new RpcResult(inv.getArguments()[0]); return invoker.invoke(inv); }
public String getSpanName() { Service ls = (Service) invocation.getArguments()[0]; String serviceName = ls == null || ls.getName() == null?"unkown":ls.getName(); return serviceName; }
public Invoker<T> select(Invocation invocation) { String key = toKey(invocation.getArguments()); byte[] digest = md5(key); return selectForKey(hash(digest, 0)); }
@Override public Result invoke(Invocation invocation) throws RpcException { try { return new RpcResult(doInvoke(proxy, invocation.getMethodName(), invocation.getParameterTypes(), invocation.getArguments())); } catch (InvocationTargetException e) { return new RpcResult(e.getTargetException()); } catch (Throwable e) { throw new RpcException("Failed to invoke remote proxy method " + invocation.getMethodName() + " to " + getUrl() + ", cause: " + e.getMessage(), e); } }
public RpcContext setInvocation(Invocation invocation) { this.invocation = invocation; if (invocation != null) { setMethodName(invocation.getMethodName()); setParameterTypes(invocation.getParameterTypes()); setArguments(invocation.getArguments()); } return this; }