FileDocCategorySizeDatePackage
EjbEncInjector.javaAPI DocJBoss 4.2.13748Fri Jul 13 20:53:46 BST 2007org.jboss.injection

EjbEncInjector

public class EjbEncInjector extends Object implements EncInjector
Comment
author
Bill Burke
version
$Revision: 60233 $

Fields Summary
private static final Logger
log
private String
ejbLink
private Class
refClass
private String
jndiName
private String
error
private String
encName
Constructors Summary
public EjbEncInjector(String name, String mappedName, String error)


         
   
      this.jndiName = mappedName;
      this.error = error;
      this.encName = name;
   
public EjbEncInjector(String name, Class refClass, String ejbLink, String error)

      this.refClass = refClass;
      String refClassName = refClass == null ? "NULL" : refClass.getName();
      this.ejbLink = ejbLink;
      this.error = error;
      this.encName = name;
      if (refClass == null && ejbLink == null) throw new RuntimeException("cannot have null refClass and ejbLink for encName: " + name);
   
Methods Summary
public voidinject(InjectionContainer container)

      if (jndiName == null || jndiName.equals(""))
      {
         if (ejbLink != null && !"".equals(ejbLink))
         {
            jndiName = container.getEjbJndiName(ejbLink, refClass);
         }
         else
         {
            try
            {
               if (refClass != null)
               {
                  jndiName = container.getEjbJndiName(refClass);
               }
               else
               {
                  throw new RuntimeException("searching for @EJB" + encName + " has null refClass and null ejbLink.");
               }
            }
            catch (NameNotFoundException e)
            {
               throw new RuntimeException("could not resolve global JNDI name for " + error + " for container " + container.getIdentifier() + ": reference class: " + refClass.getName() + " ejbLink: " + ejbLink + " " + e.getMessage());
            }
         }
      }
      try
      {
         if (jndiName == null) throw new RuntimeException("Failed to populate ENC: " + encName + " global jndi name was null");
         log.debug(" " + encName + " --> " + jndiName);
         Util.rebind(container.getEnc(), encName, new LinkRef(jndiName));
      }
      catch (NamingException e)
      {
         throw new RuntimeException("could not bind enc name '" +  encName + "' for " + error + " for container " + container.getIdentifier() + ": reference class: " + refClass.getName() + " ejbLink: " + ejbLink + " " + e.getMessage());
      }