vgritsenko    2003/01/24 18:46:15

  Modified:    src/java/org/apache/cocoon/acting
                        AbstractConfigurableAction.java
                        HttpHeaderAction.java LocaleAction.java
                        SessionPropagatorAction.java
  Log:
  conf is never null in configure(). fix bug (static config) in http action.
  optimize a bit.
  
  Revision  Changes    Path
  1.6       +7 -13     
xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractConfigurableAction.java
  
  Index: AbstractConfigurableAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractConfigurableAction.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractConfigurableAction.java   22 Feb 2002 06:59:26 -0000      1.5
  +++ AbstractConfigurableAction.java   25 Jan 2003 02:46:14 -0000      1.6
  @@ -81,18 +81,12 @@
        * For nested configurations, override this function in your action.
        */
       public void configure(Configuration conf) throws ConfigurationException {
  -        if (conf != null) {
  -            String key = null;
  -            String val = null;
  -            Configuration[] parameters = conf.getChildren();
  -            this.settings = new HashMap(parameters.length);
  -            for ( int i = 0; i < parameters.length; i++) {
  -                key = parameters[i].getName();
  -                val = parameters[i].getValue(null);
  -                if ( key != null )
  -                    this.settings.put(key, val);
  -            }
  +        Configuration[] parameters = conf.getChildren();
  +        this.settings = new HashMap(parameters.length);
  +        for (int i = 0; i < parameters.length; i++) {
  +            String key = parameters[i].getName();
  +            String val = parameters[i].getValue(null);
  +            this.settings.put(key, val);
           }
       }
  -
   }
  
  
  
  1.8       +17 -21    
xml-cocoon2/src/java/org/apache/cocoon/acting/HttpHeaderAction.java
  
  Index: HttpHeaderAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/HttpHeaderAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HttpHeaderAction.java     13 Mar 2002 10:36:39 -0000      1.7
  +++ HttpHeaderAction.java     25 Jan 2003 02:46:14 -0000      1.8
  @@ -73,42 +73,38 @@
   extends AbstractConfigurableAction
   implements ThreadSafe {
   
  -    private static Object[] defaults = {};
  +    /**
  +     * Stores keys of global configuration.
  +     */
  +    private Object[] defaults = {};
   
       public void configure(Configuration conf) throws ConfigurationException {
  -        if (conf != null) {
  -            String[] names = {};
  -            super.configure(conf);
  -            defaults=(settings.keySet()).toArray();
  -        }
  +        super.configure(conf);
  +        this.defaults = super.settings.keySet().toArray();
       }
   
       public Map act(Redirector redirector, SourceResolver resolver,
                      Map objectModel, String source, Parameters parameters)
       throws Exception {
  -        Map results = new HashMap();
  -        HashMap isDone = new HashMap();
  -        Integer dummy = new Integer(1);
  +        final Map results = new HashMap();
   
           final Response response = ObjectModelHelper.getResponse(objectModel);
  -        final String[] names = parameters.getNames();
   
  -        // parameters
  -        for (int i=0; i<names.length; i++) {
  -            isDone.put(names[i], dummy);
  +        // Process local configuration parameters
  +        final String[] names = parameters.getNames();
  +        for (int i = 0; i < names.length; i++) {
               response.setHeader(names[i],parameters.getParameter(names[i]));
  -            results.put(names[i],parameters.getParameter(names[i]));
  +            results.put(names[i], parameters.getParameter(names[i]));
           }
   
  -        // defaults, that are not overridden
  -        for (int i=0; i<defaults.length; i++) {
  -            if (! isDone.containsKey(defaults[i])) {
  -                response.setHeader((String) defaults[i], (String) 
settings.get(defaults[i]));
  -                results.put((String) defaults[i],(String) 
settings.get(defaults[i]));
  +        // Process global defaults, that are not overridden
  +        for (int i = 0; i < defaults.length; i++) {
  +            if (!results.containsKey(this.defaults[i])) {
  +                response.setHeader((String) this.defaults[i], (String) 
this.settings.get(defaults[i]));
  +                results.put(this.defaults[i], this.settings.get(defaults[i]));
               }
           }
   
           return Collections.unmodifiableMap(results);
       }
  -
   }
  
  
  
  1.13      +61 -62    xml-cocoon2/src/java/org/apache/cocoon/acting/LocaleAction.java
  
  Index: LocaleAction.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/LocaleAction.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- LocaleAction.java 15 Dec 2002 16:46:12 -0000      1.12
  +++ LocaleAction.java 25 Jan 2003 02:46:15 -0000      1.13
  @@ -209,6 +209,26 @@
        */
       public static final String STORE_COOKIE = "store-in-cookie";
   
  +
  +    // Store the lang in request. Default is not to do this.
  +    private boolean storeInRequest = false;
  +
  +    // Store the lang in session, if available. Default is not to do this.
  +    private boolean storeInSession = false;
  +
  +    // Should we create a session if needed. Default is not to do this.
  +    private boolean createSession = false;
  +
  +    // Should we add a cookie with the lang. Default is not to do this.
  +    private boolean storeInCookie = false;
  +
  +    // Configuration attributes.
  +    private String langAttr;
  +    private String countryAttr;
  +    private String variantAttr;
  +    private String localeAttr;
  +
  +
       /**
        * Configure this action.
        *
  @@ -216,63 +236,60 @@
        */
       public void configure(Configuration conf)
       throws ConfigurationException {
  -        if (conf != null) {
  -
  -            Configuration child = conf.getChild(STORE_REQUEST);
  -            storeInRequest = child.getValueAsBoolean(false);
  +        Configuration child = conf.getChild(STORE_REQUEST);
  +        storeInRequest = child.getValueAsBoolean(false);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug((storeInRequest ? "will" : "won't") + " set 
values in request");
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug((storeInRequest ? "will" : "won't") + " set values in 
request");
  +        }
   
  -            child = conf.getChild(CREATE_SESSION);
  -            createSession = child.getValueAsBoolean(false);
  +        child = conf.getChild(CREATE_SESSION);
  +        createSession = child.getValueAsBoolean(false);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug((createSession ? "will" : "won't") + " create 
session");
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug((createSession ? "will" : "won't") + " create 
session");
  +        }
   
  -            child = conf.getChild(STORE_SESSION);
  -            storeInSession = child.getValueAsBoolean(false);
  +        child = conf.getChild(STORE_SESSION);
  +        storeInSession = child.getValueAsBoolean(false);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug((storeInSession ? "will" : "won't") + " set 
values in session");
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug((storeInSession ? "will" : "won't") + " set values in 
session");
  +        }
   
  -            child = conf.getChild(STORE_COOKIE);
  -            storeInCookie = child.getValueAsBoolean(false);
  +        child = conf.getChild(STORE_COOKIE);
  +        storeInCookie = child.getValueAsBoolean(false);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug((storeInCookie ? "will" : "won't") + " set values 
in cookies");
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug((storeInCookie ? "will" : "won't") + " set values in 
cookies");
  +        }
   
  -            child = conf.getChild(LANG_ATTR);
  -            langAttr = child.getValue(LANG);
  +        child = conf.getChild(LANG_ATTR);
  +        langAttr = child.getValue(LANG);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug("global language attribute name is " + langAttr);
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug("global language attribute name is " + langAttr);
  +        }
   
  -            child = conf.getChild(COUNTRY_ATTR);
  -            countryAttr = child.getValue(COUNTRY);
  +        child = conf.getChild(COUNTRY_ATTR);
  +        countryAttr = child.getValue(COUNTRY);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug("global country attribute name is " + 
countryAttr);
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug("global country attribute name is " + countryAttr);
  +        }
   
  -            child = conf.getChild(VARIANT_ATTR);
  -            variantAttr = child.getValue(VARIANT);
  +        child = conf.getChild(VARIANT_ATTR);
  +        variantAttr = child.getValue(VARIANT);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug("global variant attribute name is " + 
variantAttr);
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug("global variant attribute name is " + variantAttr);
  +        }
   
  -            child = conf.getChild(LOCALE_ATTR);
  -            localeAttr = child.getValue(LOCALE);
  +        child = conf.getChild(LOCALE_ATTR);
  +        localeAttr = child.getValue(LOCALE);
   
  -            if (getLogger().isDebugEnabled()) {
  -                getLogger().debug("global locale attribute name is " + localeAttr);
  -            }
  +        if (getLogger().isDebugEnabled()) {
  +            getLogger().debug("global locale attribute name is " + localeAttr);
           }
       }
   
  @@ -290,7 +307,7 @@
   
           // obtain locale information from params, session or cookies
           String lc = getLocaleAttribute(objectModel, localeAttr);
  -     Locale locale = I18nUtils.parseLocale(lc);
  +        Locale locale = I18nUtils.parseLocale(lc);
   
           if (getLogger().isDebugEnabled()) {
               getLogger().debug("obtained locale information, locale = " + lc);
  @@ -412,22 +429,4 @@
               "  " + STORE_COOKIE + " = " + storeInCookie + "\n"
           );
       }
  -
  -    // Store the lang in request. Default is not to do this.
  -    private boolean storeInRequest = false;
  -
  -    // Store the lang in session, if available. Default is not to do this.
  -    private boolean storeInSession = false;
  -
  -    // Should we create a session if needed. Default is not to do this.
  -    private boolean createSession = false;
  -
  -    // Should we add a cookie with the lang. Default is not to do this.
  -    private boolean storeInCookie = false;
  -
  -    // Configuration attributes.
  -    private String langAttr;
  -    private String countryAttr;
  -    private String variantAttr;
  -    private String localeAttr;
   }
  
  
  
  1.12      +19 -38    
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionPropagatorAction.java
  
  Index: SessionPropagatorAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionPropagatorAction.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- SessionPropagatorAction.java      7 Jan 2003 23:56:11 -0000       1.11
  +++ SessionPropagatorAction.java      25 Jan 2003 02:46:15 -0000      1.12
  @@ -81,57 +81,44 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Martin Man</a>
    * @version CVS $Id$
    */
  -public class SessionPropagatorAction extends AbstractConfigurableAction implements 
ThreadSafe
  -{
  +public class SessionPropagatorAction extends AbstractConfigurableAction implements 
ThreadSafe {
   
       private Object[] defaults = {};
   
       public void configure(Configuration conf) throws ConfigurationException {
  -        if (conf != null) {
  -        String[] names = {};
           super.configure(conf);
  -        defaults=(settings.keySet()).toArray();
  -    };
  +        this.defaults = super.settings.keySet().toArray();
       }
   
       /**
        * Main invocation routine.
        */
       public Map act (Redirector redirector, SourceResolver resolver, Map 
objectModel, String src,
  -            Parameters parameters) throws Exception {
  +                    Parameters parameters) throws Exception {
           Request req = ObjectModelHelper.getRequest(objectModel);
           HashMap actionMap = new HashMap ();
   
  -        HashMap isDone = new HashMap();
  -        Integer dummy = new Integer(1);
  -
           /* check session validity */
           Session session = req.getSession (false);
           if (session == null) {
  -            if (this.getLogger().isDebugEnabled()) {
  -                getLogger ().debug ("SESSIONPROPAGATOR: no session object");
  +            if (getLogger().isDebugEnabled()) {
  +                getLogger().debug("No session object");
               }
               return null;
           }
   
           try {
  -
               String[] names = parameters.getNames();
   
               // parameters
               for (int i = 0; i < names.length; i++) {
                   String sessionParamName = names[i];
  -                if (sessionParamName == null
  -                    || "".equals(sessionParamName.trim()))
  -                    return null;
  -                isDone.put(sessionParamName, dummy);
                   String value = parameters.getParameter(sessionParamName);
  -                if (this.getLogger().isDebugEnabled()) {
  -                    getLogger().debug(
  -                    "SESSIONPROPAGATOR: propagating value "
  -                        + value
  -                        + " to session attribute "
  -                        + sessionParamName);
  +                if (getLogger().isDebugEnabled()) {
  +                    getLogger().debug("Propagating value "
  +                                      + value
  +                                      + " to session attribute "
  +                                      + sessionParamName);
                   }
                   session.setAttribute(sessionParamName, value);
                   actionMap.put(sessionParamName, value);
  @@ -139,27 +126,21 @@
   
               // defaults, that are not overridden
               for (int i = 0; i < defaults.length; i++) {
  -                if (!isDone.containsKey(defaults[i])) {
  +                if (!actionMap.containsKey(defaults[i])) {
                       String sessionParamName = (String) defaults[i];
  -                    if (sessionParamName == null
  -                        || "".equals(sessionParamName.trim()))
  -                        return null;
  -                    isDone.put(sessionParamName, dummy);
                       String value = parameters.getParameter(sessionParamName);
  -                    if (this.getLogger().isDebugEnabled()) {
  -                        getLogger().debug(
  -                            "SESSIONPROPAGATOR: propagating value "
  -                                + value
  -                                + " to session attribute "
  -                                + sessionParamName);
  +                    if (getLogger().isDebugEnabled()) {
  +                        getLogger().debug("Propagating value "
  +                                          + value
  +                                          + " to session attribute "
  +                                          + sessionParamName);
                       }  
                       session.setAttribute(sessionParamName, value);
                       actionMap.put(sessionParamName, value);
                   }
               }
  -            if (this.getLogger().isDebugEnabled()) {
  -                getLogger().debug(
  -                    "SESSIONPROPAGATOR: all params propagated " + "to session");
  +            if (getLogger().isDebugEnabled()) {
  +                getLogger().debug("All params propagated " + "to session");
               }
               return Collections.unmodifiableMap(actionMap);
           } catch (Exception e) {
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to