/* package */ InjectionResolver<?> getInjectionResolverForInjectee(SystemInjecteeImpl injectee) { return injecteeToResolverCache.compute(injectee); }
@SuppressWarnings("unchecked") @Override public boolean containsKey(ActiveDescriptor<?> descriptor) { return valueCache.containsKey(new ContextualInput<Object>((ActiveDescriptor<Object>) descriptor, null)); }
/* package */ Context<?> resolveContext(Class<? extends Annotation> scope) throws IllegalStateException { if (scope.equals(Singleton.class)) return singletonContext; if (scope.equals(PerLookup.class)) return perLookupContext; Context<?> retVal = contextCache.compute(scope); if (retVal.isActive()) return retVal; // Not active anymore, maybe there is another. But first, clear the cache! contextCache.remove(scope); return contextCache.compute(scope); }
private void reupInjectionResolvers() { HashMap<Class<? extends Annotation>, InjectionResolver<?>> newResolvers = new HashMap<Class<? extends Annotation>, InjectionResolver<?>>(); Filter injectionResolverFilter = BuilderHelper.createContractFilter( InjectionResolver.class.getName()); List<ActiveDescriptor<?>> resolverDescriptors = protectedGetDescriptors(injectionResolverFilter); for (ActiveDescriptor<?> resolverDescriptor : resolverDescriptors) { Class<? extends Annotation> iResolve = Utilities.getInjectionResolverType(resolverDescriptor); if (iResolve != null && !newResolvers.containsKey(iResolve)) { InjectionResolver<?> resolver = (InjectionResolver<?>) getServiceHandle(resolverDescriptor).getService(); newResolvers.put(iResolve, resolver); } } synchronized (allResolvers) { allResolvers.clear(); allResolvers.putAll(newResolvers); } injecteeToResolverCache.clear(); }
/** * Release one system descriptor * * @param one The descriptor to release (may not be null). Further, the cache MUST be set */ @SuppressWarnings("unchecked") @Override public void destroyOne(ActiveDescriptor<?> one) { Object value; valueCache.remove(new ContextualInput<Object>((ActiveDescriptor<Object>) one, null)); value = one.getCache(); one.releaseCache(); if (value == null) return; try { ((ActiveDescriptor<Object>) one).dispose(value); } catch (Throwable th) { Logger.getLogger().debug("SingletonContext", "releaseOne", th); } }
private void reupInjectionResolvers() { HashMap<Class<? extends Annotation>, InjectionResolver<?>> newResolvers = new HashMap<Class<? extends Annotation>, InjectionResolver<?>>(); Filter injectionResolverFilter = BuilderHelper.createContractFilter( InjectionResolver.class.getName()); List<ActiveDescriptor<?>> resolverDescriptors = protectedGetDescriptors(injectionResolverFilter); for (ActiveDescriptor<?> resolverDescriptor : resolverDescriptors) { Class<? extends Annotation> iResolve = Utilities.getInjectionResolverType(resolverDescriptor); if (iResolve != null && !newResolvers.containsKey(iResolve)) { InjectionResolver<?> resolver = (InjectionResolver<?>) getServiceHandle(resolverDescriptor).getService(); newResolvers.put(iResolve, resolver); } } synchronized (allResolvers) { allResolvers.clear(); allResolvers.putAll(newResolvers); } injecteeToResolverCache.clear(); }
/** * Release one system descriptor * * @param one The descriptor to release (may not be null). Further, the cache MUST be set */ @SuppressWarnings("unchecked") @Override public void destroyOne(ActiveDescriptor<?> one) { Object value; valueCache.remove(new ContextualInput<Object>((ActiveDescriptor<Object>) one, null)); value = one.getCache(); one.releaseCache(); if (value == null) return; try { ((ActiveDescriptor<Object>) one).dispose(value); } catch (Throwable th) { Logger.getLogger().debug("SingletonContext", "releaseOne", th); } }
/* package */ InjectionResolver<?> getInjectionResolverForInjectee(SystemInjecteeImpl injectee) { return injecteeToResolverCache.compute(injectee); }
/* package */ Context<?> resolveContext(Class<? extends Annotation> scope) throws IllegalStateException { if (scope.equals(Singleton.class)) return singletonContext; if (scope.equals(PerLookup.class)) return perLookupContext; Context<?> retVal = contextCache.compute(scope); if (retVal.isActive()) return retVal; // Not active anymore, maybe there is another. But first, clear the cache! contextCache.remove(scope); return contextCache.compute(scope); }
private void reupInjectionResolvers() { HashMap<Class<? extends Annotation>, InjectionResolver<?>> newResolvers = new HashMap<Class<? extends Annotation>, InjectionResolver<?>>(); Filter injectionResolverFilter = BuilderHelper.createContractFilter( InjectionResolver.class.getName()); List<ActiveDescriptor<?>> resolverDescriptors = protectedGetDescriptors(injectionResolverFilter); for (ActiveDescriptor<?> resolverDescriptor : resolverDescriptors) { Class<? extends Annotation> iResolve = Utilities.getInjectionResolverType(resolverDescriptor); if (iResolve != null && !newResolvers.containsKey(iResolve)) { InjectionResolver<?> resolver = (InjectionResolver<?>) getServiceHandle(resolverDescriptor).getService(); newResolvers.put(iResolve, resolver); } } synchronized (allResolvers) { allResolvers.clear(); allResolvers.putAll(newResolvers); } injecteeToResolverCache.clear(); }
/** * Release one system descriptor * * @param one The descriptor to release (may not be null). Further, the cache MUST be set */ @SuppressWarnings("unchecked") @Override public void destroyOne(ActiveDescriptor<?> one) { Object value; valueCache.remove(new ContextualInput<Object>((ActiveDescriptor<Object>) one, null)); value = one.getCache(); one.releaseCache(); if (value == null) return; try { ((ActiveDescriptor<Object>) one).dispose(value); } catch (Throwable th) { Logger.getLogger().debug("SingletonContext", "releaseOne", th); } }
@SuppressWarnings("unchecked") @Override public boolean containsKey(ActiveDescriptor<?> descriptor) { return valueCache.containsKey(new ContextualInput<Object>((ActiveDescriptor<Object>) descriptor, null)); }
/* package */ InjectionResolver<?> getInjectionResolverForInjectee(SystemInjecteeImpl injectee) { return injecteeToResolverCache.compute(injectee); }
/* package */ Context<?> resolveContext(Class<? extends Annotation> scope) throws IllegalStateException { if (scope.equals(Singleton.class)) return singletonContext; if (scope.equals(PerLookup.class)) return perLookupContext; Context<?> retVal = contextCache.compute(scope); if (retVal.isActive()) return retVal; // Not active anymore, maybe there is another. But first, clear the cache! contextCache.remove(scope); return contextCache.compute(scope); }
private void reupInjectionResolvers() { HashMap<Class<? extends Annotation>, InjectionResolver<?>> newResolvers = new HashMap<Class<? extends Annotation>, InjectionResolver<?>>(); Filter injectionResolverFilter = BuilderHelper.createContractFilter( InjectionResolver.class.getName()); List<ActiveDescriptor<?>> resolverDescriptors = protectedGetDescriptors(injectionResolverFilter); for (ActiveDescriptor<?> resolverDescriptor : resolverDescriptors) { Class<? extends Annotation> iResolve = Utilities.getInjectionResolverType(resolverDescriptor); if (iResolve != null && !newResolvers.containsKey(iResolve)) { InjectionResolver<?> resolver = (InjectionResolver<?>) getServiceHandle(resolverDescriptor).getService(); newResolvers.put(iResolve, resolver); } } synchronized (allResolvers) { allResolvers.clear(); allResolvers.putAll(newResolvers); } injecteeToResolverCache.clear(); }
/** * Release one system descriptor * * @param one The descriptor to release (may not be null). Further, the cache MUST be set */ @SuppressWarnings("unchecked") @Override public void destroyOne(ActiveDescriptor<?> one) { Object value; valueCache.remove(new ContextualInput<Object>((ActiveDescriptor<Object>) one, null)); value = one.getCache(); one.releaseCache(); if (value == null) return; try { ((ActiveDescriptor<Object>) one).dispose(value); } catch (Throwable th) { Logger.getLogger().debug("SingletonContext", "releaseOne", th); } }
@SuppressWarnings("unchecked") @Override public boolean containsKey(ActiveDescriptor<?> descriptor) { return valueCache.containsKey(new ContextualInput<Object>((ActiveDescriptor<Object>) descriptor, null)); }
/* package */ InjectionResolver<?> getInjectionResolverForInjectee(SystemInjecteeImpl injectee) { return injecteeToResolverCache.compute(injectee); }
/* package */ Context<?> resolveContext(Class<? extends Annotation> scope) throws IllegalStateException { if (scope.equals(Singleton.class)) return singletonContext; if (scope.equals(PerLookup.class)) return perLookupContext; Context<?> retVal = contextCache.compute(scope); if (retVal.isActive()) return retVal; // Not active anymore, maybe there is another. But first, clear the cache! contextCache.remove(scope); return contextCache.compute(scope); }