public void addInterceptorBinding(InterceptorBindingMetaData interceptorBinding) { this.interceptorBindings.add(interceptorBinding); this.allInterceptors.addAll(interceptorBinding.getInterceptors()); this.classifyInterceptorBinding(interceptorBinding); }
private void classifyInterceptorBinding(InterceptorBindingMetaData interceptorBinding) { if (interceptorBinding.isClassLevelBinding()) { this.classLevelInterceptors.addAll(interceptorBinding.getInterceptors()); } else { MethodMetadata method = interceptorBinding.getMethod(); this.methodLevelInterceptorBindings.put(method, interceptorBinding); } }
/** * Creates a {@link ManagedBeanDeploymentMetaData} for the passed <code>classes</code> * * @throws IllegalArgumentException If the passed <code>classes</code> is null or empty */ @Override public ManagedBeanDeploymentMetaData create(Collection<Class<?>> classes) { if (classes == null || classes.isEmpty()) { throw new IllegalArgumentException("Cannot create managed bean deployment metadata out of null or empty classes"); } ManagedBeanDeploymentMetaData managedBeanDeploymentMetaData = new ManagedBeanDeploymentMetaDataImpl(); // pass it through the processor(s) this.processMetaData(classes, managedBeanDeploymentMetaData); // return the processed metadata return managedBeanDeploymentMetaData; }
@Override public void process(ManagedBeanMetaDataImpl managedBean, T annotatedElement) { Interceptors interceptors = annotatedElement.getAnnotation(Interceptors.class); if (interceptors == null) { return; } List<InterceptorMetadata<?>> interceptorsMetadata = new ArrayList<InterceptorMetadata<?>>(); for (Class<?> interceptor : interceptors.value()) { InterceptorMetadata<?> interceptorMetaData = new DefaultMetadataCachingReader().getInterceptorMetadata(interceptor); interceptorsMetadata.add(interceptorMetaData); } InterceptorBindingMetaData interceptorBinding = new InterceptorBindingMetaData(interceptorsMetadata); if (annotatedElement instanceof Method) { Method method = (Method) annotatedElement; MethodMetadata methodMetadata = new MethodMetadataImpl(method); interceptorBinding.setMethod(methodMetadata); } ExcludeClassInterceptors excludeClass = finder.getAnnotation(annotatedElement, ExcludeClassInterceptors.class); interceptorBinding.setExcludeClassInterceptors(excludeClass != null); ExcludeDefaultInterceptors excludeDefaults = finder.getAnnotation(annotatedElement, ExcludeDefaultInterceptors.class); interceptorBinding.setExcludeDefaultInterceptors(excludeDefaults != null); managedBean.addInterceptorBinding(interceptorBinding); }
ManagedBeanMetaDataImpl managedBeanMetaData = new ManagedBeanMetaDataImpl(); managedBeanMetaData.setManagedBeanClass(managedBeanClass.getName()); managedBeanMetaData.setName(explicitName); managedBeanMetaData.setName(managedBeanClass.getSimpleName()); EnvironmentRefsGroupMetaData env = managedBeanMetaData.getEnvironment(); if(env == null) managedBeanMetaData.setEnvironment(env);
public List<InterceptorMetadata<?>> getAroundInvokes(Method method) { if (method == null) { return Collections.emptyList(); } List<InterceptorMetadata<?>> applicableInterceptors = new ArrayList<InterceptorMetadata<?>>(); MethodMetadata methodMetadata = new MethodMetadataImpl(method); InterceptorBindingMetaData methodApplicableInterceptorBinding = this.methodLevelInterceptorBindings.get(methodMetadata); if (methodApplicableInterceptorBinding == null) { applicableInterceptors.addAll(this.classLevelInterceptors); } else { if (!methodApplicableInterceptorBinding.isExcludeClassInterceptors()) { applicableInterceptors.addAll(this.classLevelInterceptors); } applicableInterceptors.addAll(methodApplicableInterceptorBinding.getInterceptors()); } applicableInterceptors.addAll(this.aroundInvokes); return applicableInterceptors; }
if (managedBeanMetaData.getEnvironment() != null) JndiEnvironmentRefsGroup jndiEnvironment = new JndiEnvironmentImpl(managedBeanMetaData.getEnvironment(), unit .getClassLoader()); + managedBeanMetaData.getName(); BeanMetaData injectorBMD = this.createInjectorBMD(injectorMCBeanName, eeInjector, switchBoard); unit.addAttachment(BeanMetaData.class + ":" + injectorMCBeanName, injectorBMD);
@Override public void process(ManagedBeanMetaDataImpl managedBean, Method method) { PostConstruct postConstruct = method.getAnnotation(PostConstruct.class); if (postConstruct == null) { return; } if (!method.getDeclaringClass().getName().equals(managedBean.getManagedBeanClass())) { return; } InterceptorMetadata<?> interceptorMetaData = new DefaultMetadataCachingReader().getTargetClassInterceptorMetadata(method.getDeclaringClass()); managedBean.setPostConstructMethod(interceptorMetaData); }
@Override public void process(ManagedBeanMetaDataImpl managedBean, Method method) { AroundInvoke aroundInvoke = method.getAnnotation(AroundInvoke.class); if (aroundInvoke == null) { return; } if (!method.getDeclaringClass().getName().equals(managedBean.getManagedBeanClass())) { return; } InterceptorMetadata<?> interceptorMetaData = new DefaultMetadataCachingReader().getTargetClassInterceptorMetadata(method.getDeclaringClass()); managedBean.addAroundInvoke(interceptorMetaData); }
@Override protected void internalDeploy(DeploymentUnit unit) throws DeploymentException { ManagedBeanDeploymentMetaData managedBeanDeployment = unit.getAttachment(ManagedBeanDeploymentMetaData.class); Collection<ManagedBeanMetaData> managedBeans = managedBeanDeployment.getManagedBeans(); if (managedBeans == null || managedBeans.isEmpty()) { return; } Collection<Environment> environments = new HashSet<Environment>(); for (ManagedBeanMetaData managedBean : managedBeans) { // Hack! if (managedBean instanceof ManagedBeanMetaDataImpl) { ManagedBeanMetaDataImpl mbMetadata = (ManagedBeanMetaDataImpl) managedBean; if (mbMetadata.getEnvironment() != null) { environments.add(mbMetadata.getEnvironment()); } } } this.process(unit, environments); }