Object invokeAPI(final String apiInterfaceName, final String methodName, final List<String> classNameParameters, final Object[] parametersValues, final Session session) throws Throwable { final Class<?>[] parameterTypes = getParameterTypes(classNameParameters); final Object apiImpl = accessResolver.getAPIImplementation(apiInterfaceName); final Method method = ClassReflector.getMethod(apiImpl.getClass(), methodName, parameterTypes); // No session required means that there is no transaction if (method.isAnnotationPresent(CustomTransactions.class) || method.isAnnotationPresent(NoSessionRequired.class)) { return invokeAPIOutsideTransaction(parametersValues, apiImpl, method, apiInterfaceName, session); } else { return invokeAPIInTransaction(parametersValues, apiImpl, method, session, apiInterfaceName); } }
Object invokeAPI(final String apiInterfaceName, final String methodName, final List<String> classNameParameters, final Object[] parametersValues, final Session session) throws Throwable { final Class<?>[] parameterTypes = getParameterTypes(classNameParameters); final Object apiImpl = accessResolver.getAPIImplementation(apiInterfaceName); final Method method = ClassReflector.getMethod(apiImpl.getClass(), methodName, parameterTypes); // No session required means that there is no transaction if (method.isAnnotationPresent(CustomTransactions.class) || method.isAnnotationPresent(NoSessionRequired.class)) { return invokeAPIOutsideTransaction(parametersValues, apiImpl, method, apiInterfaceName, session); } else { return invokeAPIInTransaction(parametersValues, apiImpl, method, session, apiInterfaceName); } }