public void processAnnotations(Object instance) throws IllegalAccessException, InvocationTargetException, NamingException { // not data-race safe, however doesn't matter, as the injection target created for class A is interchangable for another injection target created for class A // TODO Make this a concurrent cache when we switch to google collections Class<?> clazz = instance.getClass(); if (!injectionTargets.containsKey(clazz)) { injectionTargets.put(clazz, manager.createInjectionTarget(manager.createAnnotatedType(clazz))); } CreationalContext<Object> cc = manager.createCreationalContext(null); InjectionTarget<Object> it = (InjectionTarget<Object>) injectionTargets.get(clazz); it.inject(instance, cc); }
@SuppressWarnings("unchecked") public static void injectNonContextualInstance(Object instance, WeldManager beanManager) { if (beanManager == null) throw new IllegalArgumentException("Null bean manager."); CreationalContext<Object> creationalContext = beanManager.createCreationalContext(null); InjectionTarget<Object> injectionTarget = (InjectionTarget<Object>) beanManager.fireProcessInjectionTarget(beanManager.createAnnotatedType(instance.getClass())); injectionTarget.inject(instance, creationalContext); } }
public <T> void inject(InjectionContext<T> injectionContext) throws InjectionException { WeldManager weldManager = initWeldManagerIfNecessary(); Object instance = injectionContext.getInjectionTarget(); if (weldManager == null) throw new IllegalArgumentException("Null bean manager."); CreationalContext<Object> creationalContext = weldManager.createCreationalContext(null); InjectionTarget<Object> injectionTarget = (InjectionTarget<Object>) weldManager.fireProcessInjectionTarget(weldManager.createAnnotatedType(instance.getClass())); injectionTarget.inject(instance, creationalContext); injectionContext.proceed(); }
public <T> void inject(InjectionContext<T> injectionContext) throws InjectionException { if (isInterceptor(injectionContext.getInjectionTarget())) { WeldManager weldManager = initWeldManagerIfNecessary(); Object instance = injectionContext.getInjectionTarget(); if (weldManager == null) throw new IllegalArgumentException("Null bean manager."); CreationalContext<Object> creationalContext = weldManager.createCreationalContext(null); InjectionTarget<Object> injectionTarget = (InjectionTarget<Object>) weldManager.fireProcessInjectionTarget(weldManager.createAnnotatedType(instance.getClass())); injectionTarget.inject(instance, creationalContext); } injectionContext.proceed(); }
protected AbstractInjector(WeldManager manager) { Preconditions.checkArgumentNotNull(manager, "manager"); this.manager = manager; this.cache = ComputingCacheBuilder.newBuilder().setWeakValues().build(clazz -> { AnnotatedType<?> type = manager.createAnnotatedType(clazz); return manager.createInjectionTargetBuilder(type) .setResourceInjectionEnabled(false) .setTargetClassLifecycleCallbacksEnabled(false) .build(); }); }
protected AbstractInjector(WeldManager manager) { Preconditions.checkArgumentNotNull(manager, "manager"); this.manager = manager; this.cache = ComputingCacheBuilder.newBuilder().setWeakValues().build(clazz -> { AnnotatedType<?> type = manager.createAnnotatedType(clazz); return manager.createInjectionTargetBuilder(type) .setResourceInjectionEnabled(false) .setTargetClassLifecycleCallbacksEnabled(false) .build(); }); }
protected AbstractInjector(WeldManager manager) { Preconditions.checkArgumentNotNull(manager, "manager"); this.manager = manager; this.cache = ComputingCacheBuilder.newBuilder().setWeakValues().build(clazz -> { AnnotatedType<?> type = manager.createAnnotatedType(clazz); return manager.createInjectionTargetBuilder(type) .setResourceInjectionEnabled(false) .setTargetClassLifecycleCallbacksEnabled(false) .build(); }); }
AnnotatedType annotatedType = beanManager.createAnnotatedType(interceptorClass); InjectionTarget it = beanManager.getInjectionTargetFactory(annotatedType).createInterceptorInjectionTarget();