/** * * @param injectionTarget * @param componentDescription * @param beanManager * @return the processed injection target * @see #isProcessing(ComponentDescription) */ default <T> InjectionTarget<T> processInjectionTarget(WeldInjectionTarget<T> injectionTarget, ComponentDescription componentDescription, WeldManager beanManager) { return beanManager.fireProcessInjectionTarget(injectionTarget.getAnnotatedType(), injectionTarget); }
public <T> T create(Class<T> clazz, Object[] objects) throws IllegalArgumentException, InvalidConstructionParamsException, BeanInstantiationException { WeldManager weldManager = getWeldManager(); EjbDescriptor<Object> ejbDescriptor = weldManager.getEjbDescriptor(enterpriseBeanMetaData.getEjbName()); if (ejbDescriptor.getBeanClass().equals(clazz)) { SessionBean<Object> bean = (SessionBean) weldManager.getBean(ejbDescriptor); InjectionTarget<Object> injectionTarget = weldManager.createInjectionTarget(ejbDescriptor); CreationalContext<Object> creationalContext = weldManager.createCreationalContext(bean); T instance = (T) injectionTarget.produce(creationalContext); return instance; } else { return super.create(clazz, objects); } }
@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); } }
WeldManager beanManager = bootstrap.getManager(bda); org.jboss.weld.ejb.spi.EjbDescriptor ejbDesc = beanManager.getEjbDescriptor( ejb.getName()); Bean<?> bean = beanManager.getBean(ejbDesc); creationalContext = beanManager.createCreationalContext(bean); ejbContext.setCreationalContext( creationalContext ); Object instance = beanManager.getReference( interceptor, interceptorClass, creationalContext ); return ( T ) instance; Set<Bean<?>> availableBeans = beanManager.getBeans( interceptorClass); if ( availableBeans != null && !availableBeans.isEmpty()) { Bean<?> interceptorBean = beanManager.resolve( availableBeans ); Object instance = beanManager.getReference(interceptorBean, interceptorClass, creationalContext ); return ( T ) instance; creationalContext = beanManager.createCreationalContext(null); AnnotatedType annotatedType = beanManager.createAnnotatedType(interceptorClass); InjectionTarget it = beanManager.getInjectionTargetFactory(annotatedType).createInterceptorInjectionTarget(); T interceptorInstance = (T) it.produce(creationalContext); it.inject(interceptorInstance, creationalContext);
this.persistenceUnitInfo = getPersistenceUnitInfo(name); assert this.persistenceUnitInfo != null; final ExecutorService taskExecutorService = ((WeldManager)CDI.current().getBeanManager()).getServices().get(ExecutorServices.class).getTaskExecutor(); assert taskExecutorService != null; if (this.isResourceLocal()) {
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") private void addInterceptorInstance(Interceptor<Object> interceptor, InvocationContext invocationContext) { CreationalContext<Object> creationalContext = (CreationalContext<Object>) invocationContext.getContextData().get(SessionBeanInterceptor.CREATIONAL_CONTEXT); Object instance = beanManager.getContext(interceptor.getScope()).get(interceptor, creationalContext); SerializableContextualInstance<Interceptor<Object>,Object> serializableContextualInstance = beanManager.getServices().get(ContextualStore.class).getSerializableContextualInstance(interceptor, instance, creationalContext); interceptorInstances.put(interceptor.getBeanClass().getName(), serializableContextualInstance); }
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 void inject(Object instance) { final InjectionTarget<Object> it = cast(cache.getValue(instance.getClass())); CreationalContext<Object> cc = manager.createCreationalContext(null); it.inject(instance, cc); }
jspApplicationContext.addELResolver(manager.getELResolver()); manager.wrapExpressionFactory(jspApplicationContext.getExpressionFactory()));
public static <T extends Context> T getActiveContext(WeldManager beanManager, Class<T> type) { for (T context : beanManager.instance().select(type)) { if (context.isActive()) { return context; } } throw new ContextNotActiveException(); }
/** * Returns an unmodifiable collection of all currently active {@link Context}s. This is just a convenient method. * * Note that for each scope, there might be more than one {@link Context}, but there can be at most one active at a time. * * @return Collection of all currently active {@link Context}s */ default Collection<Context> getActiveContexts() { return getScopes().stream() .filter(this::isContextActive) .map(this::getContext) .collect(Collectors.toSet()); }
/** * Gets the underlying target and calls the post-construct method * * @param invocationContext The invocation context * @throws Exception */ @PostConstruct public void postConstruct(InvocationContext invocationContext) throws Exception { String ejbName = getEjbName(); EjbDescriptor<Object> descriptor = beanManager.getEjbDescriptor(ejbName); injectionTarget = beanManager.createInjectionTarget(descriptor); Bean<Object> bean = beanManager.getBean(descriptor); creationalContext = beanManager.createCreationalContext(bean); injectionTarget.inject(invocationContext.getTarget(), creationalContext); invocationContext.getContextData().put(CREATIONAL_CONTEXT, creationalContext); invocationContext.getContextData().put(EJB_DESCRIPTOR, descriptor); invocationContext.proceed(); }
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(); }
@Override public InterceptorBindings getInterceptorBindings(String ejbName, WeldManager manager) { EjbServices ejbServices = manager.getServices().get(EjbServices.class); if (ejbServices instanceof ForwardingEjbServices) { ejbServices = ((ForwardingEjbServices) ejbServices).delegate(); } if (ejbServices instanceof WeldEjbServices) { return ((WeldEjbServices) ejbServices).getBindings(ejbName); } return null; }
@SuppressWarnings("unchecked") private void addInterceptorInstance(Interceptor<Object> interceptor, InvocationContext invocationContext) { CreationalContext<Object> creationalContext = (CreationalContext<Object>) invocationContext.getContextData().get(SessionBeanInterceptor.CREATIONAL_CONTEXT); Object instance = beanManager.getContext(interceptor.getScope()).get(interceptor, creationalContext); SerializableContextualInstance<Interceptor<Object>,Object> serializableContextualInstance = beanManager.getServices().get(ContextualStore.class).<Interceptor<Object>,Object>getSerializableContextualInstance(interceptor, instance, creationalContext); interceptorInstances.put(interceptor.getBeanClass().getName(), serializableContextualInstance); }
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 void inject(Object instance) { final InjectionTarget<Object> it = cast(cache.getValue(instance.getClass())); CreationalContext<Object> cc = manager.createCreationalContext(null); it.inject(instance, cc); }
jspApplicationContext.addELResolver(manager.getELResolver()); context.setAttribute(EXPRESSION_FACTORY_NAME, manager.wrapExpressionFactory(jspApplicationContext.getExpressionFactory()));
public void callback(Context context, Event event) throws Exception { WeldManager manager = context.get(WeldManager.class); if (manager == null) { throw new IllegalStateException("No " + WeldManager.class.getName() + " found in context"); } BoundSessionContext sessionContext = manager.instance().select(BoundSessionContext.class).get(); CDISessionMap map = new CDISessionMap(); sessionContext.associate(map); sessionContext.activate(); context.add(CDISessionMap.class, map); }