public static void refreshPartialBeanClass(ClassLoader classLoader, Object partialBean) { ClassLoader oldContextClassLoader = Thread.currentThread().getContextClassLoader(); ProxyClassLoadingDelegate.beginProxyRegeneration(); try { Thread.currentThread().setContextClassLoader(classLoader); Object lifecycle = (Object) ReflectionHelper.get(partialBean, "lifecycle"); if (lifecycle != null) { Class<?> targetClass = (Class) ReflectionHelper.get(lifecycle, "targetClass"); PartialBeanProxyFactory proxyFactory = PartialBeanProxyFactory.getInstance(); try { // Deltaspike 1.5 Method m3 = PartialBeanProxyFactory.class.getMethod("getProxyClass", new Class[] { BeanManager.class, Class.class, Class.class} ); Class<? extends InvocationHandler> delegateInvocationHandlerClass = (Class) ReflectionHelper.get(lifecycle, "delegateInvocationHandlerClass"); m3.invoke(proxyFactory, new Object[] {BeanManagerProvider.getInstance().getBeanManager(), targetClass, delegateInvocationHandlerClass} ); } catch (NoSuchMethodException e) { // Deltaspike 1.7 Method m2 = PartialBeanProxyFactory.class.getMethod("getProxyClass", new Class[] { BeanManager.class, Class.class } ); m2.invoke(proxyFactory, new Object[] {BeanManagerProvider.getInstance().getBeanManager(), targetClass} ); } } } catch (Exception e) { LOGGER.error("Deltaspike proxy redefinition failed", e); } finally { Thread.currentThread().setContextClassLoader(oldContextClassLoader); ProxyClassLoadingDelegate.endProxyRegeneration(); } } }
/** * Internal method to resolve the BeanManager via the {@link BeanManagerProvider}. * * @return current BeanManager */ private static BeanManager getBeanManager() { return BeanManagerProvider.getInstance().getBeanManager(); } }
@PrePersist public void persist(Object entity) { BeanManager beanManager = BeanManagerProvider.getInstance().getBeanManager(); Set<Bean<?>> beans = beanManager.getBeans(PrePersistAuditListener.class); for (Bean<?> bean : beans) { PrePersistAuditListener result = (PrePersistAuditListener) beanManager.getReference( bean, PrePersistAuditListener.class, beanManager.createCreationalContext(bean)); result.prePersist(entity); } }
public static Converter resolveManagedConverter(Class<? extends Converter> converterClass) { if (JAVAX_FACES_CONVERT_PACKAGE_NAME.equals(converterClass.getPackage().getName())) { return null; } return getContextualReference(BeanManagerProvider.getInstance().getBeanManager(), converterClass); }
public static Validator resolveManagedValidator(Class<? extends Validator> validatorClass) { if (JAVAX_FACES_VALIDATOR_PACKAGE_NAME.equals(validatorClass.getPackage().getName())) { return null; } return getContextualReference(BeanManagerProvider.getInstance().getBeanManager(), validatorClass); }
public static Converter resolveManagedConverter(Class<? extends Converter> converterClass) { if (JAVAX_FACES_CONVERT_PACKAGE_NAME.equals(converterClass.getPackage().getName())) { return null; } return getContextualReference(BeanManagerProvider.getInstance().getBeanManager(), converterClass); }
public static BeanManager getBeanManager() { BeanManagerProvider provider = BeanManagerProvider.getInstance(); if (BeanManagerProvider.isActive()) { return provider.getBeanManager(); } throw new RuntimeException("Unable to locate the BeanManager"); }
@PreUpdate public void update(Object entity) { BeanManager beanManager = BeanManagerProvider.getInstance().getBeanManager(); Set<Bean<?>> beans = beanManager.getBeans(PreUpdateAuditListener.class); for (Bean<?> bean : beans) { PreUpdateAuditListener result = (PreUpdateAuditListener) beanManager.getReference( bean, PreUpdateAuditListener.class, beanManager.createCreationalContext(bean)); result.preUpdate(entity); } }
/** * Checks if the context for the given scope annotation is active. * * @param scopeAnnotationClass The scope annotation (e.g. @RequestScoped.class) * @return If the context is active. */ public static boolean isContextActive(Class<? extends Annotation> scopeAnnotationClass) { return isContextActive(scopeAnnotationClass, BeanManagerProvider.getInstance().getBeanManager()); }
/** * Checks if the context for the given scope annotation is active. * * @param scopeAnnotationClass The scope annotation (e.g. @RequestScoped.class) * @return If the context is active. */ public static boolean isContextActive(Class<? extends Annotation> scopeAnnotationClass) { return isContextActive(scopeAnnotationClass, BeanManagerProvider.getInstance().getBeanManager()); }
@Override public void processEvent(SystemEvent e) throws AbortProcessingException { if (!this.isActivated) { return; } BeanManager beanManager = BeanManagerProvider.getInstance().getBeanManager(); beanManager.fireEvent(e); } }
private void lazyInit() { if (queryInOutMapperIsNormalScope == null) { init(BeanManagerProvider.getInstance().getBeanManager()); } }
private synchronized void init() { if (this.beanManager == null) { this.beanManager = BeanManagerProvider.getInstance().getBeanManager(); this.navigationParameterContext = BeanProvider.getContextualReference(NavigationParameterContext.class); this.viewConfigResolver = BeanProvider.getContextualReference(ViewConfigResolver.class); } } }
private Set<SecurityViolation> performNamedRoleChecks(Annotation customNamedCheck, AccessDecisionVoterContext context) { Set<SecurityViolation> result = new HashSet<SecurityViolation>(); BeanManager beanmanager = BeanManagerProvider.getInstance().getBeanManager(); for (Object permissionConstant : AnnotationUtil.getRoleValues(customNamedCheck)) { String beanName = nameFactory.generateRoleBeanName(((NamedRole) permissionConstant).name()); GenericPermissionVoter voter = CDIUtil.getContextualReferenceByName(beanmanager, beanName , GenericPermissionVoter.class); result.addAll(voter.checkPermission(context)); } return result; }
/** * This method will properly destroy the @Dependent scoped instance. * It will have no effect if the bean is NormalScoped as those have their * own lifecycle which we must not disrupt. */ public void destroy() { if (!BeanManagerProvider.getInstance().getBeanManager().isNormalScope(bean.getScope())) { bean.destroy(instance, creationalContext); } }
/** * This method will properly destroy the @Dependent scoped instance. * It will have no effect if the bean is NormalScoped as those have their * own lifecycle which we must not disrupt. */ public void destroy() { if (!BeanManagerProvider.getInstance().getBeanManager().isNormalScope(bean.getScope())) { bean.destroy(instance, creationalContext); } }
@Override public void sessionDestroyed(ClientSession clientSession) { Assert.requireNonNull(clientSession, "clientSession"); BeanManager bm = BeanManagerProvider.getInstance().getBeanManager(); ClientScopeContext clientContext = (ClientScopeContext) bm.getContext(ClientScoped.class); clientContext.destroy(); } }
public EntityViewRepositoryComponent(Class<?> repoClass, RepositoryEntity repositoryEntity, EntityViewManager evm) { super(repoClass, repositoryEntity); this.repoClass = repoClass; this.repositoryEntity = repositoryEntity; this.entityManagerResolver = extractEntityManagerResolver(repoClass); this.entityManagerFlushMode = extractEntityManagerFlushMode(repoClass); this.entityViewManagerResolver = extractEntityViewManagerResolver(repoClass); init(BeanManagerProvider.getInstance().getBeanManager(), evm); }
@Override protected void save(Subject subject) { super.save(subject); if (subject.isRemembered()) { // Ok, now the DAO has stored the Subject in the Session and thus HttpSession is created. // We now can sent an event (required for example for the ApplicationUsage) that there is a RememberedLogon. BeanManagerProvider.getInstance().getBeanManager().fireEvent(new RememberMeLogonEvent(subject)); } }
public EntityViewRepositoryComponent(Class<?> repoClass, RepositoryEntity repositoryEntity, EntityViewManager evm) { super(repoClass, repositoryEntity); this.repoClass = repoClass; this.repositoryEntity = repositoryEntity; this.entityManagerResolver = extractEntityManagerResolver(repoClass); this.entityManagerFlushMode = extractEntityManagerFlushMode(repoClass); this.entityViewManagerResolver = extractEntityViewManagerResolver(repoClass); init(BeanManagerProvider.getInstance().getBeanManager(), evm); }