public String getEJBClassName() { return this.getComponentClassName(); }
private void setupDependencies(final EJBComponentDescription description, final EEApplicationDescription applicationDescription, final ResourceRoot deploymentRoot, final String[] annotationValues) throws DeploymentUnitProcessingException { for (final String annotationValue : annotationValues) { final Set<ComponentDescription> components = applicationDescription.getComponents(annotationValue, deploymentRoot.getRoot()); if (components.isEmpty()) { throw EjbLogger.ROOT_LOGGER.failToFindEjbRefByDependsOn(annotationValue, description.getComponentClassName()); } else if (components.size() != 1) { throw EjbLogger.ROOT_LOGGER.failToCallEjbRefByDependsOn(annotationValue, description.getComponentClassName(), components); } final ComponentDescription component = components.iterator().next(); description.addDependency(component.getStartServiceName()); if (description instanceof SingletonComponentDescription) { ((SingletonComponentDescription)description).getDependsOn().add(component.getStartServiceName()); if (ROOT_LOGGER.isDebugEnabled()) { ROOT_LOGGER.debugf(description.getEJBName() + " bean is dependent on " + component.getComponentName()); } } } } }
/** * Handles setting up the ejbCreate and ejbRemove methods for stateless session beans and MDB's * * @param component The component * @param module The module * @param reflectionIndex The reflection index */ private void handleStatelessSessionBean(final EJBComponentDescription component, final Module module, final DeploymentReflectionIndex reflectionIndex) throws ClassNotFoundException, DeploymentUnitProcessingException { final Class<?> componentClass = ClassLoadingUtils.loadClass(component.getComponentClassName(), module); final MethodIdentifier ejbCreateId = MethodIdentifier.getIdentifier(void.class, "ejbCreate"); final Method ejbCreate = ClassReflectionIndexUtil.findMethod(reflectionIndex, componentClass, ejbCreateId); if (ejbCreate != null) { final InterceptorClassDescription.Builder builder = InterceptorClassDescription.builder(); builder.setPostConstruct(ejbCreateId); component.addInterceptorMethodOverride(ejbCreate.getDeclaringClass().getName(), builder.build()); } final MethodIdentifier ejbRemoveId = MethodIdentifier.getIdentifier(void.class, "ejbRemove"); final Method ejbRemove = ClassReflectionIndexUtil.findMethod(reflectionIndex, componentClass, ejbRemoveId); if (ejbRemove != null) { final InterceptorClassDescription.Builder builder = InterceptorClassDescription.builder(); builder.setPreDestroy(ejbRemoveId); component.addInterceptorMethodOverride(ejbRemove.getDeclaringClass().getName(), builder.build()); } }
final Class<?> componentClass; try { componentClass = module.getClassLoader().loadClass(ejbComponentDescription.getComponentClassName()); } catch (ClassNotFoundException e) { throw EjbLogger.ROOT_LOGGER.failToLoadComponentClass(e, ejbComponentDescription.getComponentClassName());
return; final Class<?> componentClass = ClassLoadingUtils.loadClass(component.getComponentClassName(), module);
public String getEJBClassName() { return this.getComponentClassName(); }
private void validateAndMarkBeanAsClustered(final EJBComponentDescription ejbComponentDescription, final ClusteringInfo clusteringInfo, final DeploymentUnit deploymentUnit) throws DeploymentUnitProcessingException { // https://issues.jboss.org/browse/AS7-2887 Disallow @Clustered on certain EJB types if (ejbComponentDescription instanceof MessageDrivenComponentDescription) { throw EjbMessages.MESSAGES.clusteredAnnotationIsNotApplicableForMDB(deploymentUnit, ejbComponentDescription.getComponentName(), ejbComponentDescription.getComponentClassName()); } if (ejbComponentDescription instanceof EntityBeanComponentDescription) { throw EjbMessages.MESSAGES.clusteredAnnotationIsNotApplicableForEntityBean(deploymentUnit, ejbComponentDescription.getComponentName(), ejbComponentDescription.getComponentClassName()); } if (ejbComponentDescription instanceof SingletonComponentDescription) { throw EjbMessages.MESSAGES.clusteredAnnotationNotYetImplementedForSingletonBean(deploymentUnit, ejbComponentDescription.getComponentName(), ejbComponentDescription.getComponentClassName()); } // make sure it's a session bean if (!(ejbComponentDescription instanceof SessionBeanComponentDescription)) { throw EjbMessages.MESSAGES.clusteredAnnotationIsNotApplicableForBean(deploymentUnit, ejbComponentDescription.getComponentName(), ejbComponentDescription.getComponentClassName()); } // mark the bean as clustered ((SessionBeanComponentDescription) ejbComponentDescription).setClustering(clusteringInfo); } }
@Override public void registerComponents(ResourceRoot resourceRoot, WildFlyBeanDeploymentArchive beanDeploymentArchive, DeploymentReflectionIndex reflectionIndex) { for (EJBComponentDescription ejb : ejbComponentDescriptions.get(resourceRoot)) { beanDeploymentArchive.addEjbDescriptor(new EjbDescriptorImpl<Object>(ejb, beanDeploymentArchive, reflectionIndex)); beanDeploymentArchive.addBeanClass(ejb.getComponentClassName()); } }
private void setupDependencies(final EJBComponentDescription description, final EEApplicationDescription applicationDescription, final ResourceRoot deploymentRoot, final String[] annotationValues) throws DeploymentUnitProcessingException { for (final String annotationValue : annotationValues) { final Set<ComponentDescription> components = applicationDescription.getComponents(annotationValue, deploymentRoot.getRoot()); if (components.isEmpty()) { throw MESSAGES.failToFindEjbRefByDependsOn(annotationValue, description.getComponentClassName()); } else if (components.size() != 1) { throw MESSAGES.failToCallEjbRefByDependsOn(annotationValue, description.getComponentClassName(), components); } final ComponentDescription component = components.iterator().next(); description.addDependency(component.getStartServiceName(), DependencyType.REQUIRED); if (description instanceof SingletonComponentDescription) { ((SingletonComponentDescription)description).getDependsOn().add(component.getStartServiceName()); if (ROOT_LOGGER.isDebugEnabled()) { ROOT_LOGGER.debugf(description.getEJBName() + " bean is dependent on " + component.getComponentName()); } } } } }
/** * Handles setting up the ejbCreate and ejbRemove methods for stateless session beans and MDB's * * @param component The component * @param classIndex The class index * @param reflectionIndex The reflection index */ private void handleStatelessSessionBean(final EJBComponentDescription component, final DeploymentClassIndex classIndex, final DeploymentReflectionIndex reflectionIndex) throws ClassNotFoundException, DeploymentUnitProcessingException { final ClassIndex componentClass = classIndex.classIndex(component.getComponentClassName()); final MethodIdentifier ejbCreateId = MethodIdentifier.getIdentifier(void.class, "ejbCreate"); final Method ejbCreate = ClassReflectionIndexUtil.findMethod(reflectionIndex, componentClass.getModuleClass(), ejbCreateId); if (ejbCreate != null) { final InterceptorClassDescription.Builder builder = InterceptorClassDescription.builder(); builder.setPostConstruct(ejbCreateId); component.addInterceptorMethodOverride(ejbCreate.getDeclaringClass().getName(), builder.build()); } final MethodIdentifier ejbRemoveId = MethodIdentifier.getIdentifier(void.class, "ejbRemove"); final Method ejbRemove = ClassReflectionIndexUtil.findMethod(reflectionIndex, componentClass.getModuleClass(), ejbRemoveId); if (ejbRemove != null) { final InterceptorClassDescription.Builder builder = InterceptorClassDescription.builder(); builder.setPreDestroy(ejbRemoveId); component.addInterceptorMethodOverride(ejbRemove.getDeclaringClass().getName(), builder.build()); } }
final Class<?> componentClass; try { componentClass = module.getClassLoader().loadClass(ejbComponentDescription.getComponentClassName()); } catch (ClassNotFoundException e) { throw MESSAGES.failToLoadComponentClass(ejbComponentDescription.getComponentClassName());
return; final ClassIndex componentClass = classIndex.classIndex(component.getComponentClassName());