protected abstract Object remove(Class interfce, Method method, Object[] args, Object proxy) throws Throwable;
protected Object businessMethod(final Class<?> interfce, final Method method, final Object[] args, final Object proxy) throws Throwable {
final BeanContext beanContext = getBeanContext();
final AsynchronousPool asynchronousPool = beanContext.getModuleContext().getAppContext().getAsynchronousPool();
if (beanContext.isAsynchronous(method)) {
return asynchronousPool.invoke(new Callable<Object>() {
@Override
public Object call() throws Exception {
return synchronizedBusinessMethod(interfce, method, args);
}
}, method.getReturnType() == Void.TYPE);