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]