public ClassResourceInfo getSubResource(Class<?> typedClass, Class<?> instanceClass, Object instance, boolean resolveContexts) { SubresourceKey key = new SubresourceKey(typedClass, instanceClass); ClassResourceInfo cri = subResources.get(key); if (cri == null) { cri = ResourceUtils.createClassResourceInfo(typedClass, instanceClass, this, false, resolveContexts, getBus()); if (cri != null) { subResources.putIfAbsent(key, cri); } } // this branch will run only if ResourceContext is used // or static resolution is enabled for subresources initialized // from within singleton root resources (not default) if (resolveContexts && cri != null && cri.isSingleton() && instance != null && cri.contextsAvailable()) { synchronized (this) { if (!injectedSubInstances.contains(instance.toString())) { InjectionUtils.injectContextProxies(cri, instance); injectedSubInstances.add(instance.toString()); } } } return cri; }
public void injectContexts(Object resourceObject, OperationResourceInfo ori, Message inMessage) { final boolean contextsAvailable = contextsAvailable(); final boolean paramsAvailable = paramsAvailable(); if (contextsAvailable || paramsAvailable) { Object realResourceObject = ClassHelper.getRealObject(resourceObject); if (paramsAvailable) { JAXRSUtils.injectParameters(ori, this, realResourceObject, inMessage); } if (contextsAvailable) { InjectionUtils.injectContexts(realResourceObject, this, inMessage); } } } }
if (resolveContexts && cri != null && cri.isSingleton() && instance != null && cri.contextsAvailable()) { synchronized (this) { if (!injectedSubInstances.contains(instance.toString())) {
final boolean contextsAvailable = cri.contextsAvailable(); final boolean paramsAvailable = cri.paramsAvailable(); if (contextsAvailable || paramsAvailable) {