/** * Returns the handler's class or interfaces. The serviceName is used * to look up a registered handler. * * @param serviceName the optional name of a service * @return the class */ @Override protected Class<?>[] getHandlerInterfaces(String serviceName) { Class<?> remoteInterface = interfaceMap.get(serviceName); if (remoteInterface != null) { return new Class<?>[]{remoteInterface}; } else if (Proxy.isProxyClass(getHandler(serviceName).getClass())) { return getHandler(serviceName).getClass().getInterfaces(); } else { return new Class<?>[]{getHandler(serviceName).getClass()}; } }