User: salborini
  Date: 00/10/25 16:04:16

  Modified:    src/main/org/jboss/metadata ApplicationMetaData.java
                        ConfigurationMetaData.java
  Log:
  Allow jboss.xml to modify a configuration defined in standardjboss.xml
  
  Revision  Changes    Path
  1.8       +20 -15    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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ApplicationMetaData.java  2000/09/09 02:46:21     1.7
  +++ ApplicationMetaData.java  2000/10/25 23:04:15     1.8
  @@ -25,7 +25,7 @@
    *      
    *   @see <related>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
  - *   @version $Revision: 1.7 $
  + *   @version $Revision: 1.8 $
    */
   public class ApplicationMetaData extends MetaData {
       // Constants -----------------------------------------------------
  @@ -35,7 +35,7 @@
   
       private ArrayList beans = new ArrayList();
       private ArrayList securityRoles = new ArrayList();
  -    private ArrayList configurations = new ArrayList();
  +    private HashMap configurations = new HashMap();
       private HashMap resources = new HashMap();
        private HashMap plugins = new HashMap();
   
  @@ -70,17 +70,11 @@
       }
       
       public Iterator getConfigurations() {
  -       return configurations.iterator();
  +       return configurations.values().iterator();
       }
       
       public ConfigurationMetaData getConfigurationMetaDataByName(String name) {
  -       Iterator iterator = getConfigurations();
  -       while (iterator.hasNext()) {
  -         ConfigurationMetaData current = (ConfigurationMetaData) iterator.next();
  -         if (current.getName().equals(name)) return current;
  -       }
  -       // not found
  -       return null;
  +       return (ConfigurationMetaData)configurations.get(name);
       }
       
       public String getResourceByName(String name) {
  @@ -237,17 +231,28 @@
          
          // find the container configurations (we need them first to use them in the 
beans)
          Element confs = getOptionalChild(element, "container-configurations");
  -       if (confs != null) {
  +        if (confs != null) {
            iterator = getChildrenByTagName(confs, "container-configuration");
  -         while (iterator.hasNext()) {
  +         
  +              while (iterator.hasNext()) {
             Element conf = (Element)iterator.next();
  -          ConfigurationMetaData configurationMetaData = new ConfigurationMetaData();
  -          try {
  +               String confName = getElementContent(getUniqueChild(conf, 
"container-name"));
  +               
  +               // find the configuration if it has already been defined
  +               // (allow jboss.xml to modify a standard conf)
  +          ConfigurationMetaData configurationMetaData = 
getConfigurationMetaDataByName(confName);
  +          
  +               // create it if necessary
  +               if (configurationMetaData == null) {
  +                     configurationMetaData = new ConfigurationMetaData(confName);
  +                     configurations.put(confName, configurationMetaData);
  +               }
  +               
  +               try {
                 configurationMetaData.importJbossXml(conf);
             } catch (DeploymentException e) {
                 throw new DeploymentException("Error in jboss.xml for 
container-configuration " + configurationMetaData.getName() + ": " + e.getMessage());
             }
  -          configurations.add(configurationMetaData);
            }
          }
          
  
  
  
  1.5       +8 -7      jboss/src/main/org/jboss/metadata/ConfigurationMetaData.java
  
  Index: ConfigurationMetaData.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/ConfigurationMetaData.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ConfigurationMetaData.java        2000/10/14 15:03:13     1.4
  +++ ConfigurationMetaData.java        2000/10/25 23:04:15     1.5
  @@ -15,7 +15,7 @@
    *      
    *   @see <related>
    *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
  - *   @version $Revision: 1.4 $
  + *   @version $Revision: 1.5 $
    */
   public class ConfigurationMetaData extends MetaData {
       
  @@ -56,7 +56,8 @@
       // Static --------------------------------------------------------
       
       // Constructors --------------------------------------------------
  -    public ConfigurationMetaData () {
  +    public ConfigurationMetaData (String name) {
  +             this.name = name;
        }
        
       // Public --------------------------------------------------------
  @@ -87,15 +88,15 @@
        
        
        public void importJbossXml(Element element) throws DeploymentException {
  -             
  -             // set the configuration name
  -             name = getElementContent(getUniqueChild(element, "container-name"));
  +
  +             // everything is optional to allow jboss.xml to modify part of a 
configuration
  +             // defined in standardjboss.xml
                
                // set call logging
  -             callLogging = 
Boolean.valueOf(getElementContent(getUniqueChild(element, 
"call-logging"))).booleanValue();
  +             callLogging = 
Boolean.valueOf(getElementContent(getOptionalChild(element, 
"call-logging"))).booleanValue();
                
                // set the container invoker
  -             containerInvoker = getElementContent(getUniqueChild(element, 
"container-invoker"));
  +             containerInvoker = getElementContent(getOptionalChild(element, 
"container-invoker"));
                
                // set the instance pool
                instancePool = getElementContent(getOptionalChild(element, 
"instance-pool"));
  
  
  

Reply via email to