@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()};
		}
	}
@ 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 ( ) } ; } }
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