User: salborini
  Date: 00/08/22 12:26:42

  Modified:    src/main/org/jboss/metadata ApplicationMetaData.java
                        BeanMetaData.java EjbRefMetaData.java
  Log:
  Fixed bug about internal/external ejb-refs.
  - Internal link: ejb-jar.xml must have a ejb-ref-link tag
  - External link: jboss.xml must have a jndi-name tag
  
  Revision  Changes    Path
  1.4       +2 -22     jboss/src/main/org/jboss/metadata/ApplicationMetaData.java
  
  Index: ApplicationMetaData.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/ApplicationMetaData.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ApplicationMetaData.java  2000/08/14 16:07:41     1.3
  +++ ApplicationMetaData.java  2000/08/22 19:26:41     1.4
  @@ -25,7 +25,7 @@
    *      
    *   @see <related>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class ApplicationMetaData extends MetaData {
        // Constants -----------------------------------------------------
  @@ -37,8 +37,7 @@
        private ArrayList securityRoles = new ArrayList();
        private ArrayList configurations = new ArrayList();
        private HashMap resources = new HashMap();
  -     private HashMap homeJndiMap = null;
  -     
  +
        
        // Static --------------------------------------------------------
        
  @@ -88,15 +87,7 @@
                return (String)resources.get(name);
        }
        
  -     public String getJndiFromHome(String homeClass) {
  -             // homeJndiName must be initialized once jboss.xml has been processed
  -             
  -             if (homeJndiMap == null) makeHomeJndiMap();
  -             return (String)homeJndiMap.get(homeClass);
  -     }
        
  -     
  -     
        public void importEjbJarXml (Element element) throws DeploymentException {
                
                // find the beans               
  @@ -273,17 +264,6 @@
        // Protected -----------------------------------------------------
        
        // Private -------------------------------------------------------
  -     private void makeHomeJndiMap() {
  -             homeJndiMap = new HashMap();
  -             
  -             Iterator iterator = getEnterpriseBeans();
  -             while (iterator.hasNext()) {
  -                     BeanMetaData bean = (BeanMetaData)iterator.next();
  -                     homeJndiMap.put(bean.getHome(), bean.getJndiName());
  -             }
  -     }
  -             
  -     
        
        // Inner classes -------------------------------------------------
   }
  
  
  
  1.6       +17 -5     jboss/src/main/org/jboss/metadata/BeanMetaData.java
  
  Index: BeanMetaData.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/metadata/BeanMetaData.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BeanMetaData.java 2000/08/15 01:40:57     1.5
  +++ BeanMetaData.java 2000/08/22 19:26:41     1.6
  @@ -21,7 +21,7 @@
    *      
    *   @see <related>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
  - *   @version $Revision: 1.5 $
  + *   @version $Revision: 1.6 $
    */
   public abstract class BeanMetaData extends MetaData {
       // Constants -----------------------------------------------------
  @@ -36,7 +36,7 @@
       private String ejbClass;
       protected boolean session;
        
  -     private ArrayList ejbReferences = new ArrayList();
  +     private HashMap ejbReferences = new HashMap();
        private ArrayList environmentEntries = new ArrayList();
       private ArrayList securityRoleReferences = new ArrayList();
        private HashMap resourceReferences = new HashMap();
  @@ -70,7 +70,7 @@
        
        public String getEjbName() { return ejbName; }
        
  -     public Iterator getEjbReferences() { return ejbReferences.iterator(); }
  +     public Iterator getEjbReferences() { return ejbReferences.values().iterator(); 
}
        
        public Iterator getEnvironmentEntries() { return 
environmentEntries.iterator(); }
        
  @@ -169,7 +169,7 @@
                        EjbRefMetaData ejbRefMetaData = new EjbRefMetaData();
                        ejbRefMetaData.importEjbJarXml(ejbRef);
                        
  -                     ejbReferences.add(ejbRefMetaData);
  +                     ejbReferences.put(ejbRefMetaData.getName(), ejbRefMetaData);
                }
                
                // set the security roles references
  @@ -214,7 +214,19 @@
                        String resourceName = 
getElementContent(getUniqueChild(resourceRef, "resource-name"));
                        ResourceRefMetaData resourceRefMetaData = 
(ResourceRefMetaData)resourceReferences.get(resRefName);
                    resourceRefMetaData.setResourceName(resourceName);
  -             }       
  +             }
  +             
  +             // set the external ejb-references (optional)
  +             iterator = getChildrenByTagName(element, "ejb-ref");
  +             while (iterator.hasNext()) {
  +                     Element ejbRef = (Element)iterator.next();
  +                     String ejbRefName = getElementContent(getUniqueChild(ejbRef, 
"ejb-ref-name"));
  +                     EjbRefMetaData ejbRefMetaData = 
(EjbRefMetaData)ejbReferences.get(ejbRefName);
  +                     if (ejbRefMetaData == null) {
  +                             throw new DeploymentException("ejb-ref " + ejbRefName 
+ " found in jboss.xml but not in ejb-jar.xml");
  +                     }
  +                     ejbRefMetaData.importJbossXml(ejbRef);
  +             }
        }
        
        
  
  
  
  1.2       +11 -2     jboss/src/main/org/jboss/metadata/EjbRefMetaData.java
  
  Index: EjbRefMetaData.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/EjbRefMetaData.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EjbRefMetaData.java       2000/08/12 00:37:58     1.1
  +++ EjbRefMetaData.java       2000/08/22 19:26:41     1.2
  @@ -15,7 +15,7 @@
    *      
    *   @see <related>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class EjbRefMetaData extends MetaData {
       // Constants -----------------------------------------------------
  @@ -32,9 +32,12 @@
       private String home;
       private String remote;
        
  -     // the jndi name: we must map "name" to "link"
  +     // internal link: map name to link
       private String link;
        
  +     // external link: map name to jndiName
  +     private String jndiName;
  +     
       // Static --------------------------------------------------------
       
       // Constructors --------------------------------------------------
  @@ -53,6 +56,8 @@
        
        public String getLink() { return link; }
   
  +    public String getJndiName() { return jndiName; }
  +
       public void importEjbJarXml(Element element) throws DeploymentException {
                name = getElementContent(getUniqueChild(element, "ejb-ref-name"));
                type = getElementContent(getUniqueChild(element, "ejb-ref-type"));
  @@ -61,6 +66,10 @@
                link = getElementContent(getOptionalChild(element, "ejb-link"));
        }               
       
  +     public void importJbossXml(Element element) throws DeploymentException {
  +             jndiName = getElementContent(getOptionalChild(element, "jndi-name"));
  +     }
  +     
        // Package protected ---------------------------------------------
       
       // Protected -----------------------------------------------------
  
  
  

Reply via email to