Package org.jboss.metadata.ejb.jboss

Examples of org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData


                 injector = new Jsr299SimpleNonContextualInjector(bdaId);
                 builder = BeanMetaDataBuilder.createBuilder(getJsr299InjectorMcBeanName(unit), Jsr299SimpleNonContextualInjector.class.getName());
             }
             else
             {
                 JBossEnterpriseBeanMetaData enterpriseBeanMetaData = unit.getAttachment(JBossEnterpriseBeanMetaData.class);
                 if (enterpriseBeanMetaData != null && enterpriseBeanMetaData.getJBossMetaData().isEJB3x())
                 {
                     injector = new Jsr299InterceptorInjector(bdaId, enterpriseBeanMetaData);
                     builder = BeanMetaDataBuilder.createBuilder(getJsr299InjectorMcBeanName(unit), Jsr299InterceptorInjector.class.getName());
                 }
             }
View Full Code Here


      {
         return true;
      }
      else
      {
         JBossEnterpriseBeanMetaData enterpriseBeanMetaData = deploymentUnit.getAttachment(JBossEnterpriseBeanMetaData.class);
         return (enterpriseBeanMetaData != null && enterpriseBeanMetaData.getJBossMetaData().isEJB3x());
      }
   }
View Full Code Here

   protected void registerEJBContainer(Container container) throws Exception
   {
      // Add the jndi supplies
      MCDependencyPolicy dependsPolicy = (MCDependencyPolicy) container.getDependencyPolicy();
      EJBContainer ejbContainer = (EJBContainer) container;
      JBossEnterpriseBeanMetaData beanMD = ejbContainer.getXml();

      ContainerDependencyMetaData cdmd = null;
      if(endpoints != null)
      {
         String ejbKey = "ejb/" + jbossUnit.getRelativePath() + "#" + container.getEjbName();
View Full Code Here

   protected void setupInjectors(EJBContainer ejbContainer, InjectionManager injectionManager, Barrier switchBoard)
   {
      // Let's first create EEInjector (which pulls from ENC and pushes to EJB instance) for EJB
      // and then create a EEInjector for each of the interceptors for the bean

      JBossEnterpriseBeanMetaData beanMetaData = ejbContainer.getXml();
      // convert JBMETA metadata to jboss-injection specific metadata
      JndiEnvironmentRefsGroup jndiEnvironment = new JndiEnvironmentImpl(beanMetaData, ejbContainer.getClassloader());
      // For optimization, we'll create an Injector only if there's atleast one InjectionTarget
      if (this.hasInjectionTargets(jndiEnvironment))
      {
         // create the injector
         EEInjector eeInjector = new EEInjector(jndiEnvironment);
         // add the injector the injection manager
         injectionManager.addInjector(eeInjector);
         // Deploy the Injector as a MC bean (so that the fully populated naming context (obtained via the SwitchBoard
         // Barrier) gets injected.
         String injectorMCBeanName = this.getInjectorMCBeanNamePrefix() + ",bean=" + ejbContainer.getEjbName();
         BeanMetaData injectorBMD = this.createInjectorBMD(injectorMCBeanName, eeInjector, switchBoard);
         this.jbossUnit.addAttachment(BeanMetaData.class + ":" + injectorMCBeanName, injectorBMD);
        
         // Add the Injector dependency on the deployment (so that the DU doesn't
         // get started till the Injector is available)
         DependencyPolicy dependsPolicy = ejbContainer.getDependencyPolicy();
         dependsPolicy.addDependency(injectorMCBeanName);
         log.debug("Added Injector dependency: " + injectorMCBeanName + " for EJB: " + ejbContainer.getEjbName() + " in unit " + this.jbossUnit);
      }
     
      // Now setup injectors for the interceptors of the bean
      InterceptorsMetaData interceptors = JBossMetaData.getInterceptors(beanMetaData.getEjbName(), beanMetaData.getJBossMetaData());
      if (interceptors == null || interceptors.isEmpty())
      {
         return;
      }
      for (InterceptorMetaData interceptor : interceptors)
View Full Code Here

   }
  
   @Override
   protected DataSourcesMetaData getDataSources(DeploymentUnit unit)
   {
      JBossEnterpriseBeanMetaData enterpriseBean = unit.getAttachment(JBossEnterpriseBeanMetaData.class);
     
      if(!enterpriseBean.getJBossMetaData().isEJB31())
      {
         return null;
      }
      DataSourcesMetaData dataSources = new DataSourcesMetaData();
      // datasources on the EJB
      if (enterpriseBean.getDataSources() != null)
      {
         dataSources.addAll(enterpriseBean.getDataSources());
      }
      // datasources on the interceptors of the EJB
      InterceptorsMetaData interceptors = JBossMetaData.getInterceptors(enterpriseBean.getEjbName(), enterpriseBean.getJBossMetaData());
      if (interceptors != null)
      {
         for (InterceptorMetaData interceptor : interceptors)
         {
            if (interceptor == null || interceptor.getDataSources() == null)
View Full Code Here

   }

   public String getJndiName(EjbDeploymentSummary summary, String iface,
         KnownInterfaceType ifaceType)
   {
      JBossEnterpriseBeanMetaData beanMD = summary.getBeanMD();
      baseJndiName = beanMD.getMappedName();
      if(baseJndiName == null)
         baseJndiName = beanMD.determineJndiName();
      String jndiName = null;
      String localJndiName = beanMD.getLocalJndiName();
      boolean is3x = beanMD.getJBossMetaData().isEJB3x();
      boolean hasJndiName = false;
      if(beanMD.isSession())
      {
         JBossSessionBeanMetaData sbeanMD = (JBossSessionBeanMetaData) beanMD;
         String givenJndiName = sbeanMD.getJndiName();
         if(givenJndiName != null && givenJndiName.trim().length() > 0)
            hasJndiName = true;
      }
      String appName = summary.getDeploymentScopeBaseName();
      if(appName == null)
         appName = "";
      else
         appName += "/";

      String ejbName = beanMD.getEjbName();
      switch(ifaceType)
      {
         case BUSINESS_LOCAL:
            if(localJndiName == null)
               jndiName = appName + ejbName + "/local";
            else
               jndiName = localJndiName;
            break;
         case BUSINESS_REMOTE:
            if(hasJndiName == false)
               jndiName = appName + ejbName + "/remote";
            else
               jndiName = baseJndiName;
            break;
         case LOCAL_HOME:
            if(is3x)
            {
               // TODO: Not really, hopefully no one uses this
               log.warn("Requested ejb3 local home for bean: "+beanMD.getEjbName());
               jndiName = ejbName + "/localHome";
            }
            else
               jndiName = beanMD.determineLocalJndiName();
            break;
         case REMOTE_HOME:
            if(is3x)
            {
               if (!hasJndiName)
               {
                  jndiName = ejbName + "/home";
               }
               else
               {
                  jndiName = baseJndiName;
                  // ejb3-core 0.1.0 behavior
                  //jndiName = baseJndiName + "Home";
               }
            }
            else
            {
               jndiName = baseJndiName;
            }
            break;
         case UNKNOWN:
            if(iface != null)
               log.warn("UKNOWN iface seen: "+iface+", for bean: "+beanMD.getEjbName());
            jndiName = baseJndiName;
            break;
      }
      return jndiName;
   }
View Full Code Here

               cdmd.addDependency(target);
               // Determine the jndi name for the reference interface
               String ifaceName = iface != null ? iface.getName() : null;
              
               //LegacyEjb3JndiPolicy policy = new LegacyEjb3JndiPolicy();
               JBossEnterpriseBeanMetaData beanMD = target.getBeanMetaData();
               String containerJndiName = null;
               if (beanMD.isSession() || beanMD.isService())
               {
                  SessionBeanJNDINameResolver jndiNameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver((JBossSessionBeanMetaData) beanMD, this.defaultJNDIBindingPolicy);
                  containerJndiName = jndiNameResolver.resolveJNDIName((JBossSessionBeanMetaData) beanMD, ifaceName);
               }
               else if (beanMD.isEntity())
               {
                  EntityBeanJNDINameResolver jndiNameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver((JBossEntityBeanMetaData) beanMD, this.defaultJNDIBindingPolicy);
                  containerJndiName = jndiNameResolver.resolveJNDIName((JBossEntityBeanMetaData) beanMD, ifaceName);
               }
               if(containerJndiName != null)
View Full Code Here

            else
            {
              
               // Need to look at the local jndi name
               String localInterface = ref.getLocal();
               JBossEnterpriseBeanMetaData md = target.getBeanMetaData();
              
               /*
                * If for a Session bean we've got a reference to an EJB2.x
                * Local Component interface, stop processing because these
                * are not bound in JNDI (only accessible via LocalHome.create()
                */
              
               // Session EJB?
               boolean useDefaultProxy = false;
               if(md.isSession())
               {
                  // Cast
                  JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData)md;
                 
                  // Get the name of the Component Local Interface
                  String ejb2xLocalInterface = smd.getLocal();
                 
                  // If the ejb-ref is to a EJB2.x Local Component Interface
                  if(localInterface.equals(ejb2xLocalInterface))
                  {
                     // Use the default proxy
                     useDefaultProxy = true;
                  }
               }
               
               // Get ejb-jar Metadata
               JBossMetaData ejbJarMd = md.getEnterpriseBeansMetaData().getEjbJarMetaData();
              
               // Resolve a local JNDI Name based on Spec type
               String localJndiName = null;
               if (ejbJarMd.isEJB3x())
               {
                  if (md.isSession() || md.isService())
                  {
                     SessionBeanJNDINameResolver sessionBeanJNDINameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver((JBossSessionBeanMetaData) md, this.defaultJNDIBindingPolicy);
                     if (useDefaultProxy)
                     {
                        localJndiName = sessionBeanJNDINameResolver
                              .resolveLocalBusinessDefaultJNDIName((JBossSessionBeanMetaData) md);  
                     }
                     else
                     {
                        localJndiName = sessionBeanJNDINameResolver.resolveJNDIName((JBossSessionBeanMetaData) md, localInterface);
                     }
                    
                  }
                  else if (md.isEntity())
                  {
                     EntityBeanJNDINameResolver entityBeanJNDINameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver((JBossEntityBeanMetaData) md, this.defaultJNDIBindingPolicy);
                     localJndiName = entityBeanJNDINameResolver.resolveJNDIName((JBossEntityBeanMetaData) md, localInterface);
                  }
               }
               else
               {
                  localJndiName = md.determineLocalJndiName();
               }

               // If we've got a resolved JNDI Name
               if (localJndiName != null)
               {
View Full Code Here

              
               // Obtain remote interface name
               String remoteInterface = ref.getRemote();
              
               // Get Metadata
               JBossEnterpriseBeanMetaData md = target.getBeanMetaData();
              
               /*
                * If for a Session bean we've got a reference to an EJB2.x
                * Remote Component interface, stop processing because these
                * are not bound in JNDI (only accessible via Home.create()
                */
              
               // Session EJB?
               boolean useDefaultProxy = false;
               if(md.isSession())
               {
                  // Cast
                  JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData)md;
                 
                  // Get the name of the Component Remote Interface
                  String ejb2xRemoteInterface = smd.getRemote();
                 
                  // If the ejb-ref is to a EJB2.x Remote Component Interface
                  if(remoteInterface.equals(ejb2xRemoteInterface))
                  {
                     // Use the default proxy
                     useDefaultProxy = true;
                  }
               }
              
               // Get ejb-jar metadata
               JBossMetaData ejbMarMd = md.getEnterpriseBeansMetaData().getEjbJarMetaData();
              
               // Resolve a JNDI name
               String remoteJNDIName = null;
               if (ejbMarMd.isEJB3x())
               {
                  if (md.isSession() || md.isService())
                  {
                     SessionBeanJNDINameResolver sessionBeanJNDINameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver((JBossSessionBeanMetaData) md, this.defaultJNDIBindingPolicy);
                     if (useDefaultProxy)
                     {
                        remoteJNDIName = sessionBeanJNDINameResolver.resolveRemoteBusinessDefaultJNDIName((JBossSessionBeanMetaData) md);  
                     }
                     else
                     {
                        remoteJNDIName = sessionBeanJNDINameResolver.resolveJNDIName((JBossSessionBeanMetaData) md, remoteInterface);
                     }
                    
                  }
                  else if (md.isEntity())
                  {
                     EntityBeanJNDINameResolver entityBeanJNDINameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver((JBossEntityBeanMetaData) md, this.defaultJNDIBindingPolicy);
                     remoteJNDIName = entityBeanJNDINameResolver.resolveJNDIName((JBossEntityBeanMetaData) md, remoteInterface);
                  }
                 
               }
               else
               {
                  remoteJNDIName = md.determineJndiName();
               }
              
               // If we've got a resolved name
               if(remoteJNDIName != null)
               {
View Full Code Here

         log.warn(unit+" has no ContainerDependencyMetaData attachment");
      String vfsPath = unit.getRelativePath();
      ArrayList<BeanMetaData> mcBeanMD = new ArrayList<BeanMetaData>();
      while( beansIter.hasNext() )
      {
         JBossEnterpriseBeanMetaData bmd = beansIter.next();
         Set<String> depends = bmd.getDepends();
         if (depends != null)
            beanDepends.addAll(depends);
         String configName = bmd.getConfigurationName();
         ContainerConfigurationMetaData cmd = bmd.determineContainerConfiguration();
         Set<String> invokers = cmd.getInvokerProxyBindingNames();
         if(invokers != null)
         for(String iname : invokers)
         {
            InvokerProxyBindingMetaData imd = deployment.getInvokerProxyBinding(iname);
            if (imd == null)
               throw new DeploymentException("Failed to locate invoker: "+iname);
            String invokerName = imd.getInvokerMBean();
            if( invokerName.equalsIgnoreCase("default") )
            {
               // TODO: JBAS-4306 hack to ingore the invalid default invoker-mbean
               continue;
            }
            if( invokerNames.contains(invokerName) == false )
            {
               invokerNames.add(invokerName);
               ServiceDependencyMetaData invoker = new ServiceDependencyMetaData();
               invoker.setIDependOn(invokerName);
               dependencies.add(invoker);
            }
         }

         // Create mc beans that declare the container ejb jndi name supplies
         if(endpoints != null)
         {
            String ejbKey = "ejb/" + vfsPath + "#" + bmd.getEjbName();
            ContainerDependencyMetaData cdmd = endpoints.get(ejbKey);
            if(cdmd != null)
            {
               // Create the metadata for the bean to install
               String mcname = ejbKey + ",uid"+System.identityHashCode(bmd);
View Full Code Here

TOP

Related Classes of org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.