final List<InterceptorBindingMetaData> bindingsForAllEJBs = new ArrayList<InterceptorBindingMetaData>(); for (final InterceptorBindingMetaData containerInterceptorBinding : containerInterceptorBindings) { if (containerInterceptorBinding.getEjbName().equals("*")) { if (containerInterceptorBinding.getMethod() != null) { throw EjbLogger.ROOT_LOGGER.defaultInterceptorsNotBindToMethod(); if (containerInterceptorBinding.getInterceptorOrder() != null) { throw EjbLogger.ROOT_LOGGER.defaultInterceptorsNotSpecifyOrder(); List<InterceptorBindingMetaData> bindings = bindingsPerEJB.get(containerInterceptorBinding.getEjbName()); if (bindings == null) { bindings = new ArrayList<InterceptorBindingMetaData>(); bindingsPerEJB.put(containerInterceptorBinding.getEjbName(), bindings); if (binding.getInterceptorClasses() != null) { for (final String clazz : binding.getInterceptorClasses()) { interceptorDescriptionsForAllEJBs.add(new InterceptorDescription(clazz)); if (bindingsApplicableForCurrentEJB != null) { for (final InterceptorBindingMetaData binding : bindingsApplicableForCurrentEJB) { if (binding.getMethod() == null) { if (binding.isExcludeDefaultInterceptors()) { classLevelExcludeDefaultInterceptors = true; if (binding.isTotalOrdering()) { if (classLevelAbsoluteOrder) { throw EjbLogger.ROOT_LOGGER.twoEjbBindingsSpecifyAbsoluteOrder(componentClass.toString());
InterceptorBindingMetaData interceptor = new InterceptorBindingMetaData(); interceptor.setEjbName(ejbName); interceptor.setExcludeClassInterceptors(excludeClass != null); interceptor.setExcludeDefaultInterceptors(excludeDefaults != null); if(method != null) MethodParametersMetaData methodParams = ProcessorUtils.getMethodParameters(method); namedMethod.setMethodParams(methodParams); interceptor.setMethod(namedMethod); interceptor.setInterceptorClasses(classes); interceptor.setDescriptions(descriptions); metaData.add(interceptor);
if (!"*".equals(interceptorBinding.getEjbName()) && null != interceptorBinding.getEjbName() && !interceptorBinding.getEjbName().trim().equals("")) if (interceptorBinding.getMethod() == null) if (null != interceptorBinding.getMethod()) if (!methodInterceptorBinding.isExcludeClassInterceptors()) for (InterceptorBindingMetaData classInterceptorBinding : classInterceptorBindings) if (methodInterceptorBinding.getEjbName().equals(classInterceptorBinding.getEjbName())) replacementInterceptorBindings.add(0, createBinding(classInterceptorBinding.getInterceptorClasses(), classInterceptorBinding.getInterceptorOrder(), methodInterceptorBinding.getEjbName(), methodInterceptorBinding.getMethod())); interceptorBindings.add(createBinding(BINDINGS_INTERCEPTOR_CLASS_NAME, methodInterceptorBinding.getEjbName(), methodInterceptorBinding.getMethod(), methodInterceptorBinding.isExcludeClassInterceptors())); processedMethodMetadatas.add(methodInterceptorBinding.getMethod()); methodInterceptorBinding.setExcludeClassInterceptors(true);
private InterceptorBindingMetaData createBinding(InterceptorClassesMetaData classesMetaData, InterceptorOrderMetaData orderMetaData, String ejbName, NamedMethodMetaData method) { InterceptorBindingMetaData ibmd = new InterceptorBindingMetaData(); ibmd.setInterceptorClasses(classesMetaData); ibmd.setEjbName(ejbName); if (orderMetaData != null) { ibmd.setInterceptorOrder(orderMetaData); } if (method != null) { ibmd.setMethod(method); } return ibmd; }
if (binding.isTotalOrdering()) classes = binding.getInterceptorOrder(); classes = binding.getInterceptorClasses();
if (binding.getEjbName().equals(ejbName)) if(binding.getMethod() == null)
if (interceptorBinding.getInterceptorOrder() != null && !interceptorBinding.getInterceptorOrder().isEmpty()) if (!INJECTION_INTERCEPTOR_CLASS_NAME.equals(interceptorBinding.getInterceptorOrder().iterator().next())) log.warn("The Weld SessionBeanInterceptor is not the inner most EJB interceptor in this deployment. JSR299 injection may not work correctly. Specify " + INJECTION_INTERCEPTOR_CLASS_NAME + " as the first interceptor in the interceptor ordering for " + interceptorBinding.getEjbName());
/** * Interceptors are additive. What's in the annotations and in the XML is * merged */ private void addClassLevelInterceptorBindingAnnotations( EJBContainer container, InterceptorBindingMetaData binding) throws ClassNotFoundException { Interceptors interceptors = (Interceptors) container .resolveAnnotation(Interceptors.class); if (binding != null) { Interceptors impl = createInterceptorsFromInterceptorBinding(interceptors, binding); addClassAnnotation(container, impl.annotationType(), impl); } boolean exclude = false; if (binding != null) exclude = binding.isExcludeDefaultInterceptors(); if (exclude && container.resolveAnnotation(ExcludeDefaultInterceptors.class) == null) { addClassAnnotation(container, ExcludeDefaultInterceptors.class, new ExcludeDefaultInterceptorsImpl()); } }
InterceptorBindingMetaData interceptor = new InterceptorBindingMetaData(); interceptor.setEjbName(ejbName); interceptor.setExcludeClassInterceptors(excludeClass != null); interceptor.setExcludeDefaultInterceptors(excludeDefaults != null); if(method != null) MethodParametersMetaData methodParams = ProcessorUtils.getMethodParameters(method); namedMethod.setMethodParams(methodParams); interceptor.setMethod(namedMethod); interceptor.setInterceptorClasses(classes); interceptor.setDescriptions(descriptions); metaData.add(interceptor);
if (binding.getEjbName().equals("*")) { if (binding.getMethod() != null) { throw EjbLogger.ROOT_LOGGER.defaultInterceptorsNotBindToMethod(); if(binding.getInterceptorOrder() != null) { throw EjbLogger.ROOT_LOGGER.defaultInterceptorsNotSpecifyOrder(); Pattern pattern = Pattern.compile(binding.getEjbName()); for (final ComponentDescription componentDescription : eeModuleDescription.getComponentDescriptions()) { if(componentDescription instanceof EJBComponentDescription) { List<InterceptorBindingMetaData> bindings = bindingsPerComponent.get(binding.getEjbName()); if (bindings == null) { bindingsPerComponent.put(binding.getEjbName(), bindings = new ArrayList<InterceptorBindingMetaData>()); if (binding.getInterceptorClasses() != null) { for (final String clazz : binding.getInterceptorClasses()) { if (binding.getMethod() == null) { classLevelBindings.add(binding); if (binding.isExcludeDefaultInterceptors()) { classLevelExcludeDefaultInterceptors = true; if (binding.isTotalOrdering()) { if (classLevelAbsoluteOrder) { throw EjbLogger.ROOT_LOGGER.twoEjbBindingsSpecifyAbsoluteOrder(componentClass.toString()); final NamedMethodMetaData methodData = binding.getMethod();
InterceptorBindingMetaData interceptor = new InterceptorBindingMetaData(); interceptor.setEjbName(ejbName); interceptor.setExcludeClassInterceptors(excludeClass != null); interceptor.setExcludeDefaultInterceptors(excludeDefaults != null); if(method != null) MethodParametersMetaData methodParams = ProcessorUtils.getMethodParameters(method); namedMethod.setMethodParams(methodParams); interceptor.setMethod(namedMethod); interceptor.setInterceptorClasses(classes); interceptor.setDescriptions(descriptions); metaData.add(interceptor);
final List<InterceptorBindingMetaData> bindingsForAllEJBs = new ArrayList<InterceptorBindingMetaData>(); for (final InterceptorBindingMetaData containerInterceptorBinding : containerInterceptorBindings) { if (containerInterceptorBinding.getEjbName().equals("*")) { if (containerInterceptorBinding.getMethod() != null) { throw MESSAGES.defaultInterceptorsNotBindToMethod(); if (containerInterceptorBinding.getInterceptorOrder() != null) { throw MESSAGES.defaultInterceptorsNotSpecifyOrder(); List<InterceptorBindingMetaData> bindings = bindingsPerEJB.get(containerInterceptorBinding.getEjbName()); if (bindings == null) { bindings = new ArrayList<InterceptorBindingMetaData>(); bindingsPerEJB.put(containerInterceptorBinding.getEjbName(), bindings); if (binding.getInterceptorClasses() != null) { for (final String clazz : binding.getInterceptorClasses()) { interceptorDescriptionsForAllEJBs.add(new InterceptorDescription(clazz)); if (bindingsApplicableForCurrentEJB != null) { for (final InterceptorBindingMetaData binding : bindingsApplicableForCurrentEJB) { if (binding.getMethod() == null) { if (binding.isExcludeDefaultInterceptors()) { classLevelExcludeDefaultInterceptors = true; if (binding.isTotalOrdering()) { if (classLevelAbsoluteOrder) { throw MESSAGES.twoEjbBindingsSpecifyAbsoluteOrder(componentClass.toString());
if (binding.getEjbName().equals("*")) { if (binding.getMethod() != null) { throw MESSAGES.defaultInterceptorsNotBindToMethod(); if(binding.getInterceptorOrder() != null) { throw MESSAGES.defaultInterceptorsNotSpecifyOrder(); List<InterceptorBindingMetaData> bindings = bindingsPerComponent.get(binding.getEjbName()); if (bindings == null) { bindingsPerComponent.put(binding.getEjbName(), bindings = new ArrayList<InterceptorBindingMetaData>()); if (binding.getInterceptorClasses() != null) { for (final String clazz : binding.getInterceptorClasses()) { if (binding.getMethod() == null) { classLevelBindings.add(binding); if (binding.isExcludeDefaultInterceptors()) { classLevelExcludeDefaultInterceptors = true; if (binding.isTotalOrdering()) { if (classLevelAbsoluteOrder) { throw MESSAGES.twoEjbBindingsSpecifyAbsoluteOrder(componentClass.toString()); final NamedMethodMetaData methodData = binding.getMethod(); final ClassReflectionIndex<?> classIndex = index.getClassIndex(componentClass); Method resolvedMethod = null; if (binding.isExcludeDefaultInterceptors()) {