haul 01/09/18 07:47:00 Modified: xdocs matchers_selectors.xml webapp sitemap.xmap src/org/apache/cocoon Constants.java src/org/apache/cocoon/selection HeaderSelectorFactory.java RequestSelectorFactory.java src/org/apache/cocoon/matching WildcardHeaderMatcherFactory.java WildcardParameterValueMatcherFactory.java src/org/apache/cocoon/acting SessionStateAction.java Added: src/org/apache/cocoon/selection SessionAttributeSelectorFactory.java src/org/apache/cocoon/matching WildcardSessionAttributeMatcherFactory.java Removed: src/org/apache/cocoon/selection SessionStateSelectorFactory.java src/org/apache/cocoon/matching WildcardSessionStateMatcherFactory.java Log: - make SourceFactories fail in a friendlier way when parameters are missing - change *SessionState(Matcher|Selector)* to *SesstionAttribute(Matcher|Selector)* since they really are SessionAttribute thingies i.e. more general. updated docs + sample accordingly Revision Changes Path 1.5 +2 -2 xml-cocoon2/xdocs/matchers_selectors.xml Index: matchers_selectors.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/xdocs/matchers_selectors.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- matchers_selectors.xml 2001/07/28 03:13:53 1.4 +++ matchers_selectors.xml 2001/09/18 14:47:00 1.5 @@ -169,7 +169,7 @@ <![CDATA[ <map:match type="sessionstate" pattern="edit*"> <!-- here you could insert parameters for the above matcher --> - <map:parameter name="state-key" value="__sessionstate"/> + <map:parameter name="attribute-name" value="__sessionstate"/> <map:match type="next-page" pattern="ok*"> <!-- do something here, eg. database updates --> <map:redirect-to resource="simple-page1"/> @@ -326,7 +326,7 @@ <code>generateClassSource</code> processed pattern, the current environment (<code>objectModel</code>), and the parameters given for the corresponding match element. In the example above for nested matchers, this would be the -<code><![CDATA[<map:parameter name="state-key" value="__sessionstate"/>]]></code>. The +<code><![CDATA[<map:parameter name="attribute-name" value="__sessionstate"/>]]></code>. The <code>int []</code> part of the method signature was generated by <code>generateParameterSource</code>. </p> 1.51 +19 -17 xml-cocoon2/webapp/sitemap.xmap Index: sitemap.xmap =================================================================== RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v retrieving revision 1.50 retrieving revision 1.51 diff -u -r1.50 -r1.51 --- sitemap.xmap 2001/09/07 23:00:28 1.50 +++ sitemap.xmap 2001/09/18 14:47:00 1.51 @@ -101,7 +101,9 @@ <map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/> <map:matcher name="regexp" src="org.apache.cocoon.matching.RegexpURIMatcherFactory"/> <map:matcher name="request" src="org.apache.cocoon.matching.RequestParamMatcher"/> - <map:matcher name="sessionstate" src="org.apache.cocoon.matching.WildcardSessionStateMatcherFactory"/> + <map:matcher name="sessionstate" src="org.apache.cocoon.matching.WildcardSessionAttributeMatcherFactory"> + <attribute-name>org.apache.cocoon.SessionState</attribute-name> + </map:matcher> <map:matcher name="next-page" src="org.apache.cocoon.matching.WildcardParameterValueMatcherFactory"> <parameter-name>next-state</parameter-name> </map:matcher> @@ -162,7 +164,7 @@ <map:resource name="dynamic-page1"> <map:act type="session-state"> <map:parameter name="new-state" value="{../next-state}"/> - <map:redirect-to resource="dynamic-page" target="{../target}/state{../../../state}{../../next-state}"/> + <map:redirect-to resource="dynamic-page" target="{../target}/state{../../../org.apache.cocoon.SessionState}{../../next-state}"/> </map:act> </map:resource> @@ -580,25 +582,25 @@ <map:match pattern="session-state/example"> <map:act type="session-isvalid"> - <map:match type="sessionstate" pattern="1"> - <map:match type="next-page" pattern="1"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> - </map:match> - <map:match type="next-page" pattern="2"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + <map:match type="sessionstate" pattern="1"> + <map:match type="next-page" pattern="1"> + <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + </map:match> + <map:match type="next-page" pattern="2"> + <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + </map:match> </map:match> - </map:match> - <map:match type="sessionstate" pattern="2"> - <map:match type="next-page" pattern="1"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> - </map:match> - <map:match type="next-page" pattern="2"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + <map:match type="sessionstate" pattern="2"> + <map:match type="next-page" pattern="1"> + <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + </map:match> + <map:match type="next-page" pattern="2"> + <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + </map:match> </map:match> - </map:match> - <map:redirect-to resource="dynamic-page2" target="docs/samples/session-state/state0"/> + <map:redirect-to resource="dynamic-page2" target="docs/samples/session-state/state0"/> </map:act> <map:redirect-to resource="dynamic-page" target="docs/samples/session-state/start"/> </map:match> 1.12 +1 -3 xml-cocoon2/src/org/apache/cocoon/Constants.java Index: Constants.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/Constants.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Constants.java 2001/08/30 19:15:43 1.11 +++ Constants.java 2001/09/18 14:47:00 1.12 @@ -10,7 +10,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> - * @version CVS $Revision: 1.11 $ $Date: 2001/08/30 19:15:43 $ + * @version CVS $Revision: 1.12 $ $Date: 2001/09/18 14:47:00 $ */ public interface Constants { @@ -72,7 +72,5 @@ String CONTEXT_CONFIG_URL = "config-url"; boolean DESCRIPTOR_RELOADABLE_DEFAULT = true; - - String SESSION_STATE_ATTRIBUTE = "org.apache.cocoon.SessionState"; } 1.4 +31 -8 xml-cocoon2/src/org/apache/cocoon/selection/HeaderSelectorFactory.java Index: HeaderSelectorFactory.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/selection/HeaderSelectorFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- HeaderSelectorFactory.java 2001/08/20 13:55:16 1.3 +++ HeaderSelectorFactory.java 2001/09/18 14:47:00 1.4 @@ -22,7 +22,7 @@ * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.3 $ $Date: 2001/08/20 13:55:16 $ + * @version CVS $Revision: 1.4 $ $Date: 2001/09/18 14:47:00 $ */ public class HeaderSelectorFactory extends ParameterSelectorFactory { @@ -45,13 +45,36 @@ } StringBuffer sb = new StringBuffer(); - sb.append("String compareToString = null;") - .append("if (param == null) {") - .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, \""+parameterName+"\");") - .append("} else { ") - .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, param.getParameter(\"state-key\",\""+parameterName+"\"));") - .append("}") - .append("return compareToString != null && compareToString.equals (pattern);"); + sb + .append("String compareToString = null;") + .append("if (param.getNames().length == 0) {"); + if ( parameterName == null ) { + sb + .append(" getLogger().warn(\"No request header name and no default name given. FAILING\");") + .append("} else { ") + .append(" String parameterName = param.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request header name and no default name given. FAILING\");") + .append(" } else {") + .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, parameterName);") + .append(" }"); + } else { + sb + .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, \""+parameterName+"\");") + .append("} else { ") + .append(" String parameterName = param.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request header name given, will use default\");") + .append(" parameterName = \""+parameterName+"\";") + .append(" }") + .append(" compareToString = (String) XSPRequestHelper.getHeader(objectModel, parameterName);"); + } + sb + .append("}") + .append("if ( compareToString == null ) {") + .append(" getLogger().debug(\"request header not set\");") + .append("}") + .append("return compareToString != null && compareToString.equals (pattern);"); return sb.toString(); } } 1.4 +31 -8 xml-cocoon2/src/org/apache/cocoon/selection/RequestSelectorFactory.java Index: RequestSelectorFactory.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/selection/RequestSelectorFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- RequestSelectorFactory.java 2001/08/20 13:55:16 1.3 +++ RequestSelectorFactory.java 2001/09/18 14:47:00 1.4 @@ -22,7 +22,7 @@ * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.3 $ $Date: 2001/08/20 13:55:16 $ + * @version CVS $Revision: 1.4 $ $Date: 2001/09/18 14:47:00 $ */ public class RequestSelectorFactory extends ParameterSelectorFactory { @@ -45,13 +45,36 @@ } StringBuffer sb = new StringBuffer(); - sb.append("String compareToString = null;") - .append("if (param == null) {") - .append(" compareToString = (String) XSPRequestHelper.getParameter(objectModel, \""+parameterName+"\",null);") - .append("} else { ") - .append(" compareToString = (String) XSPRequestHelper.getParameter(objectModel, param.getParameter(\"state-key\",\""+parameterName+"\"),null);") - .append("}") - .append("return compareToString != null && compareToString.equals (pattern);"); + sb + .append("String compareToString = null;") + .append("if (param.getNames().length == 0) {"); + if ( parameterName == null ) { + sb + .append(" getLogger().warn(\"No request parameter name and no default request parameter name given. FAILING\");") + .append("} else { ") + .append(" String parameterName = param.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request parameter name and no default request parameter name given. FAILING\");") + .append(" } else {") + .append(" compareToString = (String) XSPRequestHelper.getParameter(objectModel, parameterName, null);") + .append(" }"); + } else { + sb + .append(" compareToString = (String) XSPRequestHelper.getParameter(objectModel, \""+parameterName+"\", null);") + .append("} else { ") + .append(" String parameterName = param.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request parameter name given, will use default\");") + .append(" parameterName = \""+parameterName+"\";") + .append(" }") + .append(" compareToString = (String) XSPRequestHelper.getParameter(objectModel, parameterName, null);"); + } + sb + .append("}") + .append("if ( compareToString == null ) {") + .append(" getLogger().debug(\"request parameter not set\");") + .append("}") + .append("return compareToString != null && compareToString.equals (pattern);"); return sb.toString(); } } 1.1 xml-cocoon2/src/org/apache/cocoon/selection/SessionAttributeSelectorFactory.java Index: SessionAttributeSelectorFactory.java =================================================================== /***************************************************************************** * Copyright (C) The Apache Software Foundation. All rights reserved. * * ------------------------------------------------------------------------- * * This software is published under the terms of the Apache Software License * * version 1.1, a copy of which has been included with this distribution in * * the LICENSE file. * *****************************************************************************/ package org.apache.cocoon.selection; import org.apache.avalon.framework.configuration.ConfigurationException; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * This class generates source code to implement a selector that * matches a string against an arbitrary session attribute. * * <p><b>Global and local configuration</b></p> * <table border="1"> * <tr><td><code>attribute-name</code></td><td>String identifying the session attribute.</td></tr> * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> * @version CVS $Revision: 1.1 $ $Date: 2001/09/18 14:47:00 $ */ public class SessionAttributeSelectorFactory extends ParameterSelectorFactory { public String generateMethodSource (NodeList conf) throws ConfigurationException { String attributeName = null; int count = conf.getLength(); for(int k = 0; k < count;k++) { Node node = conf.item(k); if (node.getNodeName() != null && node.getNodeName().equals("attribute-name")) { Node textNode = node.getFirstChild(); if (textNode != null) { attributeName = textNode.getNodeValue().trim(); } } } StringBuffer sb = new StringBuffer(); sb .append("String compareToString = null;") .append("if (param.getNames().length == 0) {"); if ( attributeName == null ) { sb .append(" getLogger().warn(\"No session attribute and no default attribute given. FAILING\");") .append("} else { ") .append(" String attributeName = param.getParameter(\"attribute-name\", null);") .append(" if ( attributeName == null ) {") .append(" getLogger().warn(\"No session attribute and no default attribute given. FAILING\");") .append(" } else {") .append(" compareToString = (String) XSPRequestHelper.getSessionAttribute(objectModel, attributeName); ") .append(" }"); } else { sb .append(" compareToString = (String) XSPRequestHelper.getSessionAttribute(objectModel, \""+attributeName+"\");") .append("} else { ") .append(" String attributeName = param.getParameter(\"attribute-name\", null);") .append(" if ( attributeName == null ) {") .append(" getLogger().warn(\"No session attribute given, will use default\");") .append(" attributeName = \""+attributeName+"\";") .append(" }") .append(" compareToString = (String) XSPRequestHelper.getSessionAttribute(objectModel, attributeName); "); } sb .append("}") .append("if ( compareToString == null ) {") .append(" getLogger().debug(\"Session attribute not set\");") .append("}") .append("return compareToString != null && compareToString.equals (pattern);"); return sb.toString(); } } 1.4 +66 -14 xml-cocoon2/src/org/apache/cocoon/matching/WildcardHeaderMatcherFactory.java Index: WildcardHeaderMatcherFactory.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/WildcardHeaderMatcherFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- WildcardHeaderMatcherFactory.java 2001/08/20 13:55:16 1.3 +++ WildcardHeaderMatcherFactory.java 2001/09/18 14:47:00 1.4 @@ -22,19 +22,43 @@ * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.3 $ $Date: 2001/08/20 13:55:16 $ + * @version CVS $Revision: 1.4 $ $Date: 2001/09/18 14:47:00 $ */ public class WildcardHeaderMatcherFactory extends WildcardURIMatcherFactory { + public void dumpConfig(NodeList conf) + { // dump config + if (conf != null) { + for (int i=0; i<conf.getLength(); i++) { + Node node = conf.item(i); + if (node!=null) { + if (node.hasChildNodes()){ + getLogger().debug("<"+node.getNodeName()+">"); + try { + this.dumpConfig(node.getChildNodes()); + } catch (Exception e) { + getLogger().debug(e.toString()+e.getMessage()); + } + getLogger().debug("</>"); + } else { + getLogger().debug("<"+node.getNodeName()+"/>"); + } + } + } + } + } + /** * Generates the matcher method level source code */ public String generateMethodSource (NodeList conf) throws ConfigurationException { - + String parameterName = null; + this.dumpConfig(conf); + int count = conf.getLength(); for(int k = 0; k < count;k++) { Node node = conf.item(k); @@ -48,18 +72,46 @@ } } - return "HashMap map = new HashMap(1);" + - "String theParameter = null;" + - "if (parameters == null) {"+ - " theParameter = XSPRequestHelper.getHeader(objectModel, \""+parameterName+"\");" + - " } else { " + - " theParameter = XSPRequestHelper.getHeader(objectModel, parameters.getParameter(\"parameter-name\", \""+parameterName+"\"));" + - " }; " + - "if (theParameter != null && org.apache.cocoon.matching.helpers.WildcardURIMatcher.match (map, theParameter, pattern)) {" + - "map.put(\""+parameterName+"\", theParameter);"+ - "return map;" + - "} else {" + - "return null;}"; + StringBuffer sb = new StringBuffer(); + sb + .append("HashMap map = new HashMap(1);") + .append("String parameterName = null;") + .append("String parameterValue = null;") + .append("if (parameters.getNames().length == 0) {"); + if ( parameterName == null ) { + sb + .append(" getLogger().warn(\"No request header name and no default name given. FAILING\");") + .append("} else { ") + .append(" parameterName = parameters.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request header name and no default name given. FAILING\");") + .append(" } else {") + .append(" parameterValue = XSPRequestHelper.getHeader(objectModel, parameterName); ") + .append(" }"); + } else { + sb + .append(" parameterName = \""+parameterName+"\";") + .append(" parameterValue = XSPRequestHelper.getHeader(objectModel, parameterName);") + .append("} else { ") + .append(" parameterName = parameters.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request header name given, will use default\");") + .append(" parameterName = \""+parameterName+"\";") + .append(" }") + .append(" parameterValue = XSPRequestHelper.getHeader(objectModel, parameterName); "); + } + sb + .append("}") + .append("if ( parameterValue == null ) {") + .append(" getLogger().debug(\"Request header not set\");") + .append("} else {") + .append(" if (org.apache.cocoon.matching.helpers.WildcardURIMatcher.match (map, parameterValue, pattern)) {") + .append(" map.put(parameterName, parameterValue ); ") + .append(" return map;") + .append(" }") + .append("}") + .append("return null;"); + return sb.toString(); } } 1.4 +41 -13 xml-cocoon2/src/org/apache/cocoon/matching/WildcardParameterValueMatcherFactory.java Index: WildcardParameterValueMatcherFactory.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/WildcardParameterValueMatcherFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- WildcardParameterValueMatcherFactory.java 2001/08/20 13:55:16 1.3 +++ WildcardParameterValueMatcherFactory.java 2001/09/18 14:47:00 1.4 @@ -26,7 +26,7 @@ * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Revision: 1.3 $ $Date: 2001/08/20 13:55:16 $ */ + * @version CVS $Revision: 1.4 $ $Date: 2001/09/18 14:47:00 $ */ public class WildcardParameterValueMatcherFactory extends WildcardURIMatcherFactory { @@ -51,18 +51,46 @@ } } - return "HashMap map = new HashMap(1);" + - "String theParameter = null; " + - "if (parameters == null) {"+ - " theParameter = XSPRequestHelper.getParameter(objectModel, \""+parameterName+"\",null);" + - " } else { " + - " theParameter = XSPRequestHelper.getParameter(objectModel, parameters.getParameter(\"parameter-name\",\""+parameterName+"\"),null);" + - " }; " + - "if (theParameter != null && org.apache.cocoon.matching.helpers.WildcardURIMatcher.match (map, theParameter, pattern)) {" + - "map.put(\""+parameterName+"\", theParameter);"+ - "return map;" + - "} else {" + - "return null;}"; + StringBuffer sb = new StringBuffer(); + sb + .append("HashMap map = new HashMap(1);") + .append("String parameterName = null;") + .append("String parameterValue = null;") + .append("if (parameters.getNames().length == 0) {"); + if ( parameterName == null ) { + sb + .append(" getLogger().warn(\"No request parameter name and no default name given. FAILING\");") + .append("} else { ") + .append(" parameterName = parameters.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request parameter name and no default name given. FAILING\");") + .append(" } else {") + .append(" parameterValue = XSPRequestHelper.getParameter(objectModel, parameterName, null); ") + .append(" }"); + } else { + sb + .append(" parameterName = \""+parameterName+"\";") + .append(" parameterValue = XSPRequestHelper.getParameter(objectModel, parameterName, null);") + .append("} else { ") + .append(" parameterName = parameters.getParameter(\"parameter-name\", null);") + .append(" if ( parameterName == null ) {") + .append(" getLogger().warn(\"No request parameter name given, will use default\");") + .append(" parameterName = \""+parameterName+"\";") + .append(" }") + .append(" parameterValue = XSPRequestHelper.getParameter(objectModel, parameterName, null); "); + } + sb + .append("}") + .append("if ( parameterValue == null ) {") + .append(" getLogger().debug(\"Request parameter not set\");") + .append("} else {") + .append(" if (org.apache.cocoon.matching.helpers.WildcardURIMatcher.match (map, parameterValue, pattern)) {") + .append(" map.put(parameterName, parameterValue ); ") + .append(" return map;") + .append(" }") + .append("}") + .append("return null;"); + return sb.toString(); } } 1.1 xml-cocoon2/src/org/apache/cocoon/matching/WildcardSessionAttributeMatcherFactory.java Index: WildcardSessionAttributeMatcherFactory.java =================================================================== /***************************************************************************** * Copyright (C) The Apache Software Foundation. All rights reserved. * * ------------------------------------------------------------------------- * * This software is published under the terms of the Apache Software License * * version 1.1, a copy of which has been included with this distribution in * * the LICENSE file. * *****************************************************************************/ package org.apache.cocoon.matching; import org.apache.avalon.framework.configuration.ConfigurationException; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * This class generates source code which represents a specific pattern matcher * for a session attribute. * * <p><b>Global and local configuration</b></p> * <tableborder="1"> * <tr><td><code>attribute-name</code></td><td>String identifying the session attribute</td></tr> * </table> * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> * @version CVS $Revision: 1.1 $ $Date: 2001/09/18 14:47:00 $ */ public class WildcardSessionAttributeMatcherFactory extends WildcardURIMatcherFactory { /** * Generates the matcher method level source code */ public String generateMethodSource (NodeList conf) throws ConfigurationException { String attributeName=null; int count = conf.getLength(); for(int k = 0; k < count;k++) { Node node = conf.item(k); if (node.getNodeName() != null && node.getNodeName().equals("attribute-name")) { Node textNode = node.getFirstChild(); if (textNode != null) { attributeName = textNode.getNodeValue().trim(); } } } StringBuffer sb = new StringBuffer(); sb .append("HashMap map = new HashMap(1);") .append("String attributeName = null;") .append("String attributeValue = null;") .append("if (parameters.getNames().length == 0) {"); if ( attributeName == null ) { sb .append(" getLogger().warn(\"No session attribute and no default attribute given. FAILING\");") .append("} else { ") .append(" attributeName = parameters.getParameter(\"attribute-name\", null);") .append(" if ( attributeName == null ) {") .append(" getLogger().warn(\"No session attribute and no default attribute given. FAILING\");") .append(" } else {") .append(" attributeValue = (String) XSPRequestHelper.getSessionAttribute(objectModel, attributeName); ") .append(" }"); } else { sb .append(" attributeName = \""+attributeName+"\";") .append(" attributeValue = (String) XSPRequestHelper.getSessionAttribute(objectModel, attributeName);") .append("} else { ") .append(" attributeName = parameters.getParameter(\"attribute-name\", null);") .append(" if ( attributeName == null ) {") .append(" getLogger().warn(\"No session attribute given, will use default\");") .append(" attributeName = \""+attributeName+"\";") .append(" }") .append(" attributeValue = (String) XSPRequestHelper.getSessionAttribute(objectModel, attributeName); "); } sb .append("}") .append("if ( attributeValue == null ) {") .append(" getLogger().debug(\"Session attribute not set\");") .append("} else {") .append(" if (org.apache.cocoon.matching.helpers.WildcardURIMatcher.match (map, attributeValue, pattern)) {") .append(" map.put(attributeName, attributeValue ); ") .append(" return map;") .append(" }") .append("}") .append("return null;"); return sb.toString(); } } 1.5 +11 -12 xml-cocoon2/src/org/apache/cocoon/acting/SessionStateAction.java Index: SessionStateAction.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/SessionStateAction.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SessionStateAction.java 2001/08/22 12:03:32 1.4 +++ SessionStateAction.java 2001/09/18 14:47:00 1.5 @@ -65,15 +65,14 @@ * </tr> * </table> * - * @see org.apache.cocoon.matching.WildcardSessionStateMatcherFactory - * @see org.apache.cocoon.selection.SessionStateSelectorFactory + * @see org.apache.cocoon.matching.WildcardSessionAttributeMatcherFactory + * @see org.apache.cocoon.selection.SessionAttributeSelectorFactory * * @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a> - * @version CVS $Id: SessionStateAction.java,v 1.4 2001/08/22 12:03:32 sylvain Exp $ */ + * @version CVS $Id: SessionStateAction.java,v 1.5 2001/09/18 14:47:00 haul Exp $ */ public class SessionStateAction extends AbstractConfigurableAction implements ThreadSafe { - private static String componentName = "REZEPTE SessionStateAction"; - protected String statekey = Constants.SESSION_STATE_ATTRIBUTE; + protected String statekey = "org.apache.cocoon.SessionState"; protected String newstate = null; protected int sublevels = 0; protected int mylevel = 0; @@ -111,7 +110,7 @@ mylevel = par.getParameterAsInteger("state-level", mylevel); if (newstate == null ) { - getLogger().error(componentName + ": new-state is null"); + getLogger().error("new-state is null"); return null; } @@ -124,29 +123,29 @@ if (sublevels == 0) { oldstate = (String) session.getAttribute(statekey); session.setAttribute(statekey, newstate); - getLogger().debug(componentName+" : "+statekey+"="+newstate); + getLogger().debug(statekey+"="+newstate); } else { // sublevels != 0 oldstate = (String) session.getAttribute( statekey + Integer.toString(mylevel) ); for (int i=mylevel+1; i<=sublevels; i++) { session.removeAttribute( statekey+Integer.toString(i) ); - getLogger().debug(componentName+" : remove "+statekey+Integer.toString(i)); + getLogger().debug("remove "+statekey+Integer.toString(i)); } session.setAttribute( statekey + Integer.toString(mylevel), newstate); - getLogger().debug(componentName+" : "+statekey+Integer.toString(mylevel)+"="+newstate); + getLogger().debug(statekey+Integer.toString(mylevel)+"="+newstate); } - getLogger().debug(componentName + " transition " + oldstate + " -> " + newstate); + getLogger().debug("transition " + oldstate + " -> " + newstate); HashMap map = new HashMap(1); map.put("newstate", newstate); return map; } else { - getLogger().warn(componentName + ": A session object was not present or no longer valid"); + getLogger().warn("A session object was not present or no longer valid"); return null; } } else { - getLogger().warn(componentName + ": No request object"); + getLogger().warn("No request object"); return null; } ---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]