@Override public Class<?> resolveServiceClass(Class<? extends RequestContext> requestContextClass) { return getNext().resolveServiceClass(requestContextClass); }
@Override public Object createServiceInstance(Class<? extends RequestContext> requestContext) { Class<? extends ServiceLocator> locatorType = getTop().resolveServiceLocator(requestContext); ServiceLocator locator = getTop().createServiceLocator(locatorType); Class<?> serviceClass = getTop().resolveServiceClass(requestContext); return locator.getInstance(serviceClass); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
@Override public Class<?> resolveServiceClass(Class<? extends RequestContext> requestContextClass) { return getNext().resolveServiceClass(requestContextClass); }
@Override public Class<?> resolveServiceClass(Class<? extends RequestContext> requestContextClass) { return getNext().resolveServiceClass(requestContextClass); }
@Override public Class<?> resolveServiceClass(Class<? extends RequestContext> requestContextClass) { return getNext().resolveServiceClass(requestContextClass); }
@Override public Object createServiceInstance(Class<? extends RequestContext> requestContext) { // We are in OSGi context we use OSGiServiceLocator // Class<? extends ServiceLocator> locatorType = getTop().resolveServiceLocator(requestContext); // ServiceLocator locator = getTop().createServiceLocator(locatorType); Class<?> serviceClass = getTop().resolveServiceClass(requestContext); // return locator.getInstance(serviceClass); return serviceLocator.getInstance(serviceClass); }
@Override public Object createServiceInstance(Class<? extends RequestContext> requestContext) { Class<? extends ServiceLocator> locatorType = getTop().resolveServiceLocator(requestContext); ServiceLocator locator = getTop().createServiceLocator(locatorType); Class<?> serviceClass = getTop().resolveServiceClass(requestContext); return locator.getInstance(serviceClass); }
@Override public Object createServiceInstance(Class<? extends RequestContext> requestContext) { Class<? extends ServiceLocator> locatorType = getTop().resolveServiceLocator(requestContext); ServiceLocator locator = getTop().createServiceLocator(locatorType); Class<?> serviceClass = getTop().resolveServiceClass(requestContext); return locator.getInstance(serviceClass); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
@Override public Object createServiceInstance(Class<? extends RequestContext> requestContext) { Class<? extends ServiceLocator> locatorType = getTop().resolveServiceLocator(requestContext); ServiceLocator locator = getTop().createServiceLocator(locatorType); Class<?> serviceClass = getTop().resolveServiceClass(requestContext); return locator.getInstance(serviceClass); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }