User: oberg   
  Date: 00/05/18 06:12:11

  Modified:    src/main/org/jboss/ejb Container.java
  Log:
  Fixed invalid env. checking
  
  Revision  Changes    Path
  1.4       +104 -95   jboss/src/main/org/jboss/ejb/Container.java
  
  Index: Container.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/ejb/Container.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Container.java    2000/05/12 10:17:16     1.3
  +++ Container.java    2000/05/18 13:12:11     1.4
  @@ -47,7 +47,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public abstract class Container
   {
  @@ -284,101 +284,110 @@
      
      // Private -------------------------------------------------------
      private void setupEnvironment()
  -      throws NamingException
  +      throws DeploymentException
      {
  -      NamingServer root = new NamingServer();
  -      ((BeanClassLoader)getClassLoader()).setJNDIRoot(root);
  -      Context ctx = (Context)new InitialContext().lookup("java:/");
  -      ctx.createSubcontext("comp");
  -      ctx = ctx.createSubcontext("comp/env");
  -      
  -      // Bind environment properties
  -      {
  -         Iterator enum = getMetaData().getEnvironmentEntries();
  -         while(enum.hasNext())
  -         {
  -            EnvironmentEntry entry = (EnvironmentEntry)enum.next();
  -            if (entry.getType().equals("java.lang.Integer"))
  -            {
  -               bind(ctx, entry.getName(), new Integer(entry.getValue()));
  -            } else if (entry.getType().equals("java.lang.Long"))
  -            {
  -               bind(ctx, entry.getName(), new Long(entry.getValue()));
  -            } else if (entry.getType().equals("java.lang.Double"))
  -            {
  -               bind(ctx, entry.getName(), new Double(entry.getValue()));
  -            } else if (entry.getType().equals("java.lang.Float"))
  -            {
  -               bind(ctx, entry.getName(), new Float(entry.getValue()));
  -            } else if (entry.getType().equals("java.lang.Byte"))
  -            {
  -               bind(ctx, entry.getName(), new Byte(entry.getValue()));
  -            } else if (entry.getType().equals("java.lang.Short"))
  -            {
  -               bind(ctx, entry.getName(), new Short(entry.getValue()));
  -            } else if (entry.getType().equals("java.lang.Boolean"))
  -            {
  -               bind(ctx, entry.getName(), new Boolean(entry.getValue()));
  -            } else
  -            {
  -               // Default is string
  -               bind(ctx, entry.getName(), entry.getValue());
  -            }
  -         }
  -      }
  -      
  -      // Bind EJB references
  -      {
  -         Iterator enum = getMetaData().getEjbReferences();
  -         while(enum.hasNext())
  -         {
  -            EjbReference ref = (EjbReference)enum.next();
  -            
  -            Name n = ctx.getNameParser("").parse(ref.getLink());
  -            ContainerInvoker ci = getContainerInvoker();
  -            
  -            if (!ref.getJndiName().equals(""))
  -            {
  -               // External link
  -               Logger.debug("Binding "+ref.getName()+" to external JNDI source: 
"+ref.getJndiName());
  -               bind(ctx, ref.getName(), new LinkRef(ref.getJndiName()));
  -            }
  -            else
  -            {
  -               // Internal link
  -               Logger.debug("Bind "+ref.getName() +" to 
"+getApplication().getContainer(ref.getLink()).getContainerInvoker().getEJBHome());
  -               bind(ctx, ref.getName(), 
getApplication().getContainer(ref.getLink()).getContainerInvoker().getEJBHome());
  -            }
  -         }
  -      }
  -      
  -      // Bind resource references
  -      {
  -         Iterator enum = getMetaData().getResourceReferences();
  -         ResourceManagers rms = 
((EjbJar)getMetaData().getBeanContext().getBeanContext()).getResourceManagers();
  -         while(enum.hasNext())
  -         {
  -            ResourceReference ref = (ResourceReference)enum.next();
  -            
  -            ResourceManager rm = rms.getResourceManager(ref.getResourceName());
  -            
  -            if (rm.getType().equals("javax.sql.DataSource"))
  -            {
  -               JDBCResource res = (JDBCResource)rm;
  -               bind(ctx, res.getName(), new LinkRef(res.getJndiName()));
  -            } else if (rm.getType().equals("java.net.URL"))
  -            {
  -               try
  -               {
  -                  URLResource res = (URLResource)rm;
  -                  bind(ctx, res.getName(), new URL(res.getUrl()));
  -               } catch (MalformedURLException e)
  -               {
  -                  throw new NamingException("Malformed URL:"+e.getMessage());
  -               }
  -            }
  -         }
  -      }
  +             try
  +             {
  +           NamingServer root = new NamingServer();
  +           ((BeanClassLoader)getClassLoader()).setJNDIRoot(root);
  +           Context ctx = (Context)new InitialContext().lookup("java:/");
  +           ctx.createSubcontext("comp");
  +           ctx = ctx.createSubcontext("comp/env");
  +           
  +           // Bind environment properties
  +           {
  +              Iterator enum = getMetaData().getEnvironmentEntries();
  +              while(enum.hasNext())
  +              {
  +                 EnvironmentEntry entry = (EnvironmentEntry)enum.next();
  +                 if (entry.getType().equals("java.lang.Integer"))
  +                 {
  +                    bind(ctx, entry.getName(), new Integer(entry.getValue()));
  +                 } else if (entry.getType().equals("java.lang.Long"))
  +                 {
  +                    bind(ctx, entry.getName(), new Long(entry.getValue()));
  +                 } else if (entry.getType().equals("java.lang.Double"))
  +                 {
  +                    bind(ctx, entry.getName(), new Double(entry.getValue()));
  +                 } else if (entry.getType().equals("java.lang.Float"))
  +                 {
  +                    bind(ctx, entry.getName(), new Float(entry.getValue()));
  +                 } else if (entry.getType().equals("java.lang.Byte"))
  +                 {
  +                    bind(ctx, entry.getName(), new Byte(entry.getValue()));
  +                 } else if (entry.getType().equals("java.lang.Short"))
  +                 {
  +                    bind(ctx, entry.getName(), new Short(entry.getValue()));
  +                 } else if (entry.getType().equals("java.lang.Boolean"))
  +                 {
  +                    bind(ctx, entry.getName(), new Boolean(entry.getValue()));
  +                 } else
  +                 {
  +                    // Default is string
  +                    bind(ctx, entry.getName(), entry.getValue());
  +                 }
  +              }
  +           }
  +           
  +           // Bind EJB references
  +           {
  +              Iterator enum = getMetaData().getEjbReferences();
  +              while(enum.hasNext())
  +              {
  +                 EjbReference ref = (EjbReference)enum.next();
  +                 
  +                 Name n = ctx.getNameParser("").parse(ref.getLink());
  +                 ContainerInvoker ci = getContainerInvoker();
  +                 
  +                 if (!ref.getJndiName().equals(""))
  +                 {
  +                    // External link
  +                    Logger.debug("Binding "+ref.getName()+" to external JNDI 
source: "+ref.getJndiName());
  +                    bind(ctx, ref.getName(), new LinkRef(ref.getJndiName()));
  +                 }
  +                 else
  +                 {
  +                    // Internal link
  +                    Logger.debug("Bind "+ref.getName() +" to 
"+getApplication().getContainer(ref.getLink()).getContainerInvoker().getEJBHome());
  +                    bind(ctx, ref.getName(), 
getApplication().getContainer(ref.getLink()).getContainerInvoker().getEJBHome());
  +                 }
  +              }
  +           }
  +           
  +           // Bind resource references
  +           {
  +              Iterator enum = getMetaData().getResourceReferences();
  +              ResourceManagers rms = 
((EjbJar)getMetaData().getBeanContext().getBeanContext()).getResourceManagers();
  +              while(enum.hasNext())
  +              {
  +                 ResourceReference ref = (ResourceReference)enum.next();
  +                 
  +                 ResourceManager rm = rms.getResourceManager(ref.getResourceName());
  +                 
  +                                     if (rm == null)
  +                                             throw new DeploymentException("No 
resource manager named "+ref.getResourceName());
  +                                             
  +                 if (rm.getType().equals("javax.sql.DataSource"))
  +                 {
  +                    JDBCResource res = (JDBCResource)rm;
  +                    bind(ctx, res.getName(), new LinkRef(res.getJndiName()));
  +                 } else if (rm.getType().equals("java.net.URL"))
  +                 {
  +                    try
  +                    {
  +                       URLResource res = (URLResource)rm;
  +                       bind(ctx, res.getName(), new URL(res.getUrl()));
  +                    } catch (MalformedURLException e)
  +                    {
  +                       throw new NamingException("Malformed URL:"+e.getMessage());
  +                    }
  +                 }
  +              }
  +           }
  +             } catch (NamingException e)
  +             {
  +                     throw new DeploymentException("Could not set up environment", 
e);
  +             }
      }
      
      private void bind(Context ctx, String name, Object val)
  
  
  

Reply via email to