public Ejb3Handler createHandler(ClassFile cf) throws Exception { return new Ejb3AnnotationHandler(di, cf); } }
protected String getAspectDomain(int ejbIndex, String defaultDomain) { JBossEnterpriseBeanMetaData enterpriseBean = ejbs.get(ejbIndex); if (enterpriseBean != null) { String aopDomainName = enterpriseBean.getAopDomainName(); if (aopDomainName != null) { log.debug("Found aop-domain-name element for annotation " + aopDomainName + " for ejbName " + enterpriseBean.getEjbName()); return aopDomainName; } } return super.getAspectDomain(ejbIndex, defaultDomain); }
populateBaseInfo(); if (ejbType == EJB_TYPE.STATELESS) EJBContainer container = getStatelessContainer(ejbIndex, getEnterpriseBeanMetaData(deployment, ejbName, JBossSessionBeanMetaData.class)); container.setJaccContextId(getJaccContextId()); containers.add(container); StatefulContainer container = getStatefulContainer(ejbIndex, getEnterpriseBeanMetaData(deployment, ejbName, JBossSessionBeanMetaData.class)); container.setJaccContextId(getJaccContextId()); containers.add(container); MDB container = getMDB(ejbIndex, getEnterpriseBeanMetaData(deployment, ejbName, JBossMessageDrivenBeanMetaData.class)); validateMDBTransactionAttribute(container); container.setJaccContextId(getJaccContextId()); containers.add(container); ServiceContainer container = getServiceContainer(ejbIndex, getEnterpriseBeanMetaData(deployment, ejbName, JBossServiceBeanMetaData.class)); container.setJaccContextId(getJaccContextId()); containers.add(container); ConsumerContainer container = getConsumerContainer(ejbIndex, getEnterpriseBeanMetaData(deployment, ejbName, JBossConsumerBeanMetaData.class)); container.setJaccContextId(getJaccContextId()); containers.add(container);
protected MDB getMDB(int ejbIndex, JBossMessageDrivenBeanMetaData beanMetaData) throws Exception { String domainName = getMDBDomainName(ejbIndex); String containerName = getAspectDomain(ejbIndex, domainName); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } MDB container = new MDB(ejbNames.get(ejbIndex), (Domain) domain.getManager(), di.getClassLoader(), className, ctxProperties, deployment, beanMetaData); // EJB 3.0 5.6.3: the class or any super-class may implement the ejbCreate method Method method = getMethod(container.getBeanClass(), "ejbCreate"); if(method != null) { addAnnotation(new PostConstructImpl(), container, method); } return container; }
@Override protected MDB getMDB(int ejbIndex, JBossMessageDrivenBeanMetaData enterpriseBean) throws Exception { String ejbName = ejbNames.get(ejbIndex); MDB container = super.getMDB(ejbIndex, enterpriseBean); container.setAssemblyDescriptor(dd.getAssemblyDescriptor()); if(enterpriseBean instanceof JBossMessageDrivenBeanMetaData) addMDBAnnotations(container, ejbName, (JBossMessageDrivenBeanMetaData) enterpriseBean); /* else if(enterpriseBean instanceof JBossGenericBeanMetaData) { // EJBTHREE-936: TODO: unsupported wickedness starts here JBossMessageDrivenBeanMetaData mdb = new JBossMessageDrivenBeanMetaData(); mdb.setDestinationJndiName(enterpriseBean.getMappedName()); addMDBAnnotations(container, ejbName, mdb); } */ // An MDB doesn't have business interfaces, or does it? //addInterfaces(container, enterpriseBean); addDescriptorAnnotations(container, enterpriseBean, ejbName); return container; }
ConsumerContainer container = super.getConsumerContainer(ejbIndex, consumer); ConsumerImpl annotation = new ConsumerImpl((Consumer) container .resolveAnnotation(Consumer.class));
@Override protected ServiceContainer getServiceContainer(int ejbIndex, JBossServiceBeanMetaData service) throws Exception { String ejbName = ejbNames.get(ejbIndex); ServiceContainer container = super.getServiceContainer(ejbIndex, service); ServiceImpl annotation = new ServiceImpl((Service) container .resolveAnnotation(Service.class)); container.setAssemblyDescriptor(dd.getAssemblyDescriptor()); if (service != null && !isAnnotatedBean()) { if (service.getObjectName() != null) annotation.setObjectName(service.getObjectName()); if (service.getEjbName() != null) annotation.setName(service.getEjbName()); if (service.getXmbean() != null) annotation.setXMBean(service.getXmbean()); addClassAnnotation(container, Service.class, annotation); } addInterfaces(container, service); addDescriptorAnnotations(container, service, ejbName); addServiceAnnotations(container, service); return container; }
protected ConsumerContainer getConsumerContainer(int ejbIndex, JBossConsumerBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultConsumerDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new ConsumerContainer(ejbNames.get(ejbIndex), (Domain) domain.getManager(), di.getClassLoader(), className, ctxProperties, deployment, beanMetaData); }
protected EJBContainer getStatelessContainer(int ejbIndex, JBossSessionBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultSLSBDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new StatelessContainer(di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain .getManager(), ctxProperties, deployment, beanMetaData, deployment.getAsynchronousProcessor()); }
protected ServiceContainer getServiceContainer(int ejbIndex, JBossServiceBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultServiceDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new ServiceContainer(deployment.getMbeanServer(), di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain.getManager(), ctxProperties, deployment, beanMetaData); }
protected StatefulContainer getStatefulContainer(int ejbIndex, JBossSessionBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultSFSBDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new StatefulContainer(di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain.getManager(), ctxProperties, deployment, beanMetaData, deployment .getAsynchronousProcessor()); }