@Override
public Object createServiceInstance(Method contextMethod, Method domainMethod) {
Class<? extends ServiceLocator> locatorType =
getTop().resolveServiceLocator(contextMethod, domainMethod);
ServiceLocator locator = newInstance(locatorType, ServiceLocator.class);
// Enclosing class may be a parent class, so invoke on service class
Class<?> declaringClass = contextMethod.getDeclaringClass();
Class<?> serviceClass =
getTop().resolveServiceClass(declaringClass.asSubclass(RequestContext.class));
return locator.getInstance(serviceClass);
}