dgraham     2003/08/11 17:38:40

  Modified:    src/share/org/apache/struts/action ActionServlet.java
  Log:
  Refactored initConfigDigester() into several smaller methods.
  
  Revision  Changes    Path
  1.168     +43 -20    
jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java
  
  Index: ActionServlet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionServlet.java,v
  retrieving revision 1.167
  retrieving revision 1.168
  diff -u -r1.167 -r1.168
  --- ActionServlet.java        10 Aug 2003 06:00:49 -0000      1.167
  +++ ActionServlet.java        12 Aug 2003 00:38:40 -0000      1.168
  @@ -942,23 +942,13 @@
               return (configDigester);
           }
   
  -        // Check the status of the "validating" initialization parameter
  -        boolean validating = true;
  -        String value = getServletConfig().getInitParameter("validating");
  -        if ("false".equalsIgnoreCase(value)
  -            || "no".equalsIgnoreCase(value)
  -            || "n".equalsIgnoreCase(value)
  -            || "0".equalsIgnoreCase(value)) {
  -
  -            validating = false;
  -        }
  -
           // Create a new Digester instance with standard capabilities
           configDigester = new Digester();
           configDigester.setNamespaceAware(true);
  -        configDigester.setValidating(validating);
  +        configDigester.setValidating(this.isValidating());
           configDigester.setUseContextClassLoader(true);
           configDigester.addRuleSet(new ConfigRuleSet());
  +        
           for (int i = 0; i < registrations.length; i += 2) {
               URL url = this.getClass().getResource(registrations[i+1]);
               if (url != null) {
  @@ -966,11 +956,25 @@
               }
           }
   
  -        // Add any custom RuleSet instances that have been specified
  +        this.addRuleSets();
  +
  +        // Return the completely configured Digester instance
  +        return (configDigester);
  +    }
  +
  +
  +    /**
  +     * Add any custom RuleSet instances to configDigester that have 
  +     * been specified in the <code>rulesets</code> init. parameter.
  +     * @throws ServletException
  +     */
  +    private void addRuleSets() throws ServletException {
  +        
           String rulesets = getServletConfig().getInitParameter("rulesets");
           if (rulesets == null) {
               rulesets = "";
           }
  +        
           rulesets = rulesets.trim();
           String ruleset = null;
           while (rulesets.length() > 0) {
  @@ -982,20 +986,39 @@
                   ruleset = rulesets.substring(0, comma).trim();
                   rulesets = rulesets.substring(comma + 1).trim();
               }
  +            
               if (log.isDebugEnabled()) {
                   log.debug("Configuring custom Digester Ruleset of type " + ruleset);
               }
  +            
               try {
                   RuleSet instance = (RuleSet) 
RequestUtils.applicationInstance(ruleset);
  -                configDigester.addRuleSet(instance);
  +                this.configDigester.addRuleSet(instance);
               } catch (Exception e) {
                   log.error("Exception configuring custom Digester RuleSet", e);
                   throw new ServletException(e);
               }
           }
  +    }
   
  -        // Return the completely configured Digester instance
  -        return (configDigester);
  +    /**
  +     * Check the status of the <code>validating</code> initialization parameter. 
  +     * @return true if the module Digester should validate.
  +     */
  +    private boolean isValidating() {
  +        
  +        boolean validating = true;
  +        String value = getServletConfig().getInitParameter("validating");
  +        
  +        if ("false".equalsIgnoreCase(value)
  +            || "no".equalsIgnoreCase(value)
  +            || "n".equalsIgnoreCase(value)
  +            || "0".equalsIgnoreCase(value)) {
  +        
  +            validating = false;
  +        }
  +        
  +        return validating;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to