You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Carsten Ziegeler <cz...@s-und-n.de> on 2001/11/26 11:50:50 UTC

RE: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Hi,

do we really need an explicit "debug" statement, like
"<map:dump-parameters/>"?
I think we shouldn't extend the sitemap language in this way. The next
thing people ask for is to have a <map:dump-components> and so on.
Why not simply always debugging it, if the log level is debug?

The other thing is, we are very short before the next release, so we
should change is less as possible. Bug fixes are of course always
acceptable.

Carsten


> -----Original Message-----
> From: haul@apache.org [mailto:haul@apache.org]
> Sent: Monday, November 26, 2001 10:20 AM
> To: xml-cocoon2-cvs@apache.org
> Subject: cvs commit:
> xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/jav
> a sitemap.xsl
>
>
> haul        01/11/26 01:19:51
>
>   Modified:    webapp   sitemap.xmap
>                src/org/apache/cocoon/sitemap AbstractSitemap.java
>                src/org/apache/cocoon/matching
>                         WildcardSessionAttributeMatcher.java
>                src/org/apache/cocoon/matching/helpers WildcardHelper.java
>                         WildcardURIMatcher.java
>
> src/org/apache/cocoon/components/language/markup/sitemap/java
>                         sitemap.xsl
>   Log:
>   - Fixed stateful examples
>   - WildcardSessionAttributeMatcher hasn't declared to implement
> configurable (fixed)
>   - Added complete string in {0} for Wildcard(URI)?Matcher in
> addition to matches in {1}...
>   - Added <map:dump-parameters/> in sitemap + method in
> AbstractSitemap to print out current
>     sitemap parameters to log. Nice for debugging sitemaps + educational.
>
>   Revision  Changes    Path
>   1.63      +29 -14    xml-cocoon2/webapp/sitemap.xmap
>
>   Index: sitemap.xmap
>   ===================================================================
>   RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v
>   retrieving revision 1.62
>   retrieving revision 1.63
>   diff -u -r1.62 -r1.63
>   --- sitemap.xmap	2001/11/23 09:25:55	1.62
>   +++ sitemap.xmap	2001/11/26 09:19:51	1.63
>   @@ -143,7 +143,7 @@
>      necessity, matchers can be nested while chaining does not work.
>      Related concepts are selectors and actions.
>
>   -  Since this is important, let me repeat it: Selectors are executed
>   +  Since this is important, let me repeat it: Matchers are executed
>      during pipeline setup.
>    -->
>
>   @@ -203,7 +203,11 @@
>      pipelines. Use them to update databases, check external resources
>      etc. The execution may fail or complete successfully. Only if the
>      execution was successful, the pipeline fragment contained inside is
>   -  used within the pipeline.
>   +  used within the pipeline. Related concepts are matchers and
>   +  selectors.
>   +
>   +  Since this is important, let me repeat it: Actions are executed
>   +  during pipeline setup.
>    -->
>
>      <map:actions>
>   @@ -268,9 +272,20 @@
>      </map:resource>
>
>      <map:resource name="dynamic-page1">
>   +     <map:dump-parameters/>
>   +     <!-- print all current sitemap parameters to log -->
>         <map:act type="session-state">
>   -        <map:parameter name="new-state" value="{../next-state}"/>
>   -        <map:redirect-to resource="dynamic-page"
> target="{../target}/state{../../../org.apache.cocoon.SessionState}
> {../../next-state}"/>
>   +        <map:parameter name="new-state" value="{../0}"/>
>   +        <!--
>   +           use the complete string that was matched as a
> parameter. Compare
>   +           this with @target below. There the third sitemap
> parameter refers to
>   +           the very same string. Very this by looking at the log. This
>   +           irritating effect stems from the fact, that the
> above map:parameter
>   +           belongs conceptually still to the parent element
> while all other
>   +           nested tags are, well, nested.
>   +        -->
>   +          <map:dump-parameters/>
>   +        <map:redirect-to resource="dynamic-page"
> target="{../target}/state{../../../0}{../../0}"/>
>         </map:act>
>      </map:resource>
>
>   @@ -332,7 +347,7 @@
>
>      You may have as many pipelines in your sitemap as you like. However,
>      it seems that the only purposes would be to specify different error
>   -  handlers or mount subsitemaps.
>   +  handlers.
>    -->
>
>     <map:pipelines>
>   @@ -770,6 +785,7 @@
>
>       <!-- =========================== Dynamic
> ================================ -->
>       <map:match pattern="xsp/*">
>   +    <map:dump-parameters/>
>        <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/>
>        <map:transform src="stylesheets/dynamic-page2html.xsl">
>            <map:parameter name="view-source"
> value="docs/samples/xsp/{1}.xsp"/>
>   @@ -866,32 +882,31 @@
>          <!--
>             This example like the next one show, that matches can be
>             nested and don't need to match on URIs alone. By using a
>   -	 session attribute or the referer header for matches it is
>   +         session attribute or the referer header for matches it is
>             easy to model a state machine with the sitemap.
>
>   -	 There are user documents on this.
>   +         There are user documents on this.
>          -->
>          <map:act type="session-isvalid">
>            <!-- if session is valid ... -->
>
>            <map:match type="sessionstate" pattern="1">
>   -	   <!-- if a specific session attribute matches pattern "1" -->
>   +           <!-- if a specific session attribute matches pattern "1" -->
>               <map:match type="next-page" pattern="1">
>   -        	      <map:redirect-to resource="dynamic-page1"
> target="docs/samples/session-state"/>
>   -		      <!-- by redirecting to this resource, the rest
>   -		      	   of this fragment here is irrelevant -->
>   +              <map:redirect-to resource="dynamic-page1"
> target="docs/samples/session-state"/>
>   +              <!-- by redirecting to this resource, the rest
> of this fragment here is irrelevant -->
>               </map:match>
>               <map:match type="next-page" pattern="2">
>   -        	      <map:redirect-to resource="dynamic-page1"
> target="docs/samples/session-state"/>
>   +              <map:redirect-to resource="dynamic-page1"
> target="docs/samples/session-state"/>
>               </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: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:redirect-to resource="dynamic-page1"
> target="docs/samples/session-state"/>
>               </map:match>
>            </map:match>
>
>
>
>
>   1.20      +27 -1
> xml-cocoon2/src/org/apache/cocoon/sitemap/AbstractSitemap.java
>
>   Index: AbstractSitemap.java
>   ===================================================================
>   RCS file:
> /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/AbstractSitemap.java,v
>   retrieving revision 1.19
>   retrieving revision 1.20
>   diff -u -r1.19 -r1.20
>   --- AbstractSitemap.java	2001/10/11 07:28:23	1.19
>   +++ AbstractSitemap.java	2001/11/26 09:19:51	1.20
>   @@ -42,12 +42,13 @@
>    import java.util.ArrayList;
>    import java.util.List;
>    import java.util.Map;
>   +import java.util.Iterator;
>
>    /**
>     * Base class for generated <code>Sitemap</code> classes
>     *
>     * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
>   - * @version CVS $Revision: 1.19 $ $Date: 2001/10/11 07:28:23 $
>   + * @version CVS $Revision: 1.20 $ $Date: 2001/11/26 09:19:51 $
>     */
>    public abstract class AbstractSitemap extends AbstractLoggable
> implements Sitemap, Disposable, ThreadSafe {
>        private Context context;
>   @@ -319,6 +320,31 @@
>                getLogger().error("AbstractSitemap:substitute()", e);
>                throw new PatternException("error occurred during
> evaluation of expression \"" + expr + "\" at position " +
>                    (i + 1) + "\n" + e.getMessage());
>   +        }
>   +    }
>   +
>   +    /**
>   +     * Dumps all sitemap parameters to log
>   +     */
>   +    protected void dumpParameters(List list) {
>   +        if (getLogger().isDebugEnabled()) {
>   +            StringBuffer sb=new StringBuffer();
>   +            if (!list.isEmpty()) {
>   +                sb.append("\nCurrent Sitemap Parameters:\n");
>   +                String path="";
>   +                for (int i=list.size()-1; i>=0; i--) {
>   +                    Map map=(Map)list.get(i);
>   +                    Iterator keys = map.keySet().iterator();
>   +                    while (keys.hasNext()) {
>   +                        String key = (String)keys.next();
>   +                        sb.append(path)
>   +                            .append("PARAM: '").append(key)
>   +                            .append("' VALUE:
> '").append(map.get(key)).append("'\n");
>   +                    }
>   +                    path="../"+path;
>   +                }
>   +            }
>   +            getLogger().debug(sb.toString());
>            }
>        }
>
>
>
>
>   1.3       +6 -2
> xml-cocoon2/src/org/apache/cocoon/matching/WildcardSessionAttribut
> eMatcher.java
>
>   Index: WildcardSessionAttributeMatcher.java
>   ===================================================================
>   RCS file:
> /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/WildcardSessi
> onAttributeMatcher.java,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -u -r1.2 -r1.3
>   --- WildcardSessionAttributeMatcher.java	2001/10/22 10:17:46	1.2
>   +++ WildcardSessionAttributeMatcher.java	2001/11/26 09:19:51	1.3
>   @@ -26,15 +26,19 @@
>     *
>     * @author <a
> href="mailto:haul@informatik.tu-darmstadt.de">Christian Haul</a>
>     * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
>   - * @version CVS $Revision: 1.2 $ $Date: 2001/10/22 10:17:46 $
>   + * @version CVS $Revision: 1.3 $ $Date: 2001/11/26 09:19:51 $
>     */
>
>   -public class WildcardSessionAttributeMatcher extends
> WildcardURIMatcher {
>   +public class WildcardSessionAttributeMatcher
>   +    extends WildcardURIMatcher
>   +    implements Configurable
>   +{
>
>        private String defaultParam;
>
>        public void configure(Configuration config) throws
> ConfigurationException {
>            this.defaultParam =
> config.getChild("attribute-name").getValue(null);
>   +	getLogger().debug("attribute-name is = '"+this.defaultParam+"'");
>        }
>
>        protected String getMatchString(Map objectModel,
> Parameters parameters) {
>
>
>
>   1.2       +4 -1
> xml-cocoon2/src/org/apache/cocoon/matching/helpers/WildcardHelper.java
>
>   Index: WildcardHelper.java
>   ===================================================================
>   RCS file:
> /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/helpers/Wildc
> ardHelper.java,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- WildcardHelper.java	2001/10/19 15:28:45	1.1
>   +++ WildcardHelper.java	2001/11/26 09:19:51	1.2
>   @@ -18,7 +18,7 @@
>     * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
>     * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
>     * @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
>   - * @version CVS $Revision: 1.1 $ $Date: 2001/10/19 15:28:45 $
>   + * @version CVS $Revision: 1.2 $ $Date: 2001/11/26 09:19:51 $
>     */
>    public class WildcardHelper {
>
>   @@ -152,6 +152,9 @@
>
>            // The matching count
>            int mcount = 0;
>   +
>   +        // We want the complete data be in {0}
>   +        map.put(Integer.toString(mcount),data);
>
>            // First check for MATCH_BEGIN
>            boolean matchBegin = false;
>
>
>
>   1.3       +4 -1
> xml-cocoon2/src/org/apache/cocoon/matching/helpers/WildcardURIMatcher.java
>
>   Index: WildcardURIMatcher.java
>   ===================================================================
>   RCS file:
> /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/helpers/Wildc
> ardURIMatcher.java,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -u -r1.2 -r1.3
>   --- WildcardURIMatcher.java	2001/10/19 15:28:45	1.2
>   +++ WildcardURIMatcher.java	2001/11/26 09:19:51	1.3
>   @@ -17,7 +17,7 @@
>     *         (Apache Software Foundation, Exoffice Technologies)
>     * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
>     * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
>   - * @version CVS $Revision: 1.2 $ $Date: 2001/10/19 15:28:45 $
>   + * @version CVS $Revision: 1.3 $ $Date: 2001/11/26 09:19:51 $
>     * @deprecated renamed to WildcardHelper
>     */
>    public class WildcardURIMatcher {
>   @@ -64,6 +64,9 @@
>
>            // The matching count
>            int mcount = 0;
>   +
>   +        // We want the complete data be in {0}
>   +        map.put(Integer.toString(mcount),data);
>
>            // First check for MATCH_BEGIN
>            boolean matchBegin = false;
>
>
>
>   1.48      +7 -1
> xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitem
> ap/java/sitemap.xsl
>
>   Index: sitemap.xsl
>   ===================================================================
>   RCS file:
> /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/ma
> rkup/sitemap/java/sitemap.xsl,v
>   retrieving revision 1.47
>   retrieving revision 1.48
>   diff -u -r1.47 -r1.48
>   --- sitemap.xsl	2001/11/14 22:43:43	1.47
>   +++ sitemap.xsl	2001/11/26 09:19:51	1.48
>   @@ -126,7 +126,7 @@
>         *
>         * @author &lt;a
> href="mailto:giacomo@apache.org"&gt;Giacomo Pati&lt;/a&gt;
>         * @author &lt;a
> href="mailto:bloritsch@apache.org"&gt;Berin Loritsch&lt;/a&gt;
>   -     * @version CVS $Id: sitemap.xsl,v 1.47 2001/11/14
> 22:43:43 giacomo Exp $
>   +     * @version CVS $Id: sitemap.xsl,v 1.48 2001/11/26
> 09:19:51 haul Exp $
>         */
>        public class <xsl:value-of select="@file-name"/> extends
> AbstractSitemap {
>          static final String LOCATION = "<xsl:value-of
> select="translate(@file-path, '/', '.')"/>.<xsl:value-of
> select="@file-name"/>";
>   @@ -1614,6 +1614,12 @@
>          }
>        </xsl:for-each>
>      </xsl:template>
>   +
>   +  <!-- nice for debugging: print all kown sitemap parameters to log -->
>   +  <xsl:template match="map:dump-parameters">
>   +    this.dumpParameters(listOfMaps);
>   +  </xsl:template>
>   +
>
>      <!-- this template is used to setup a individual sitemap
> component before putting it into a pipeline -->
>      <xsl:template name="setup-component">
>
>
>
>
> ----------------------------------------------------------------------
> In case of troubles, e-mail:     webmaster@xml.apache.org
> To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
> For additional commands, e-mail: cocoon-cvs-help@xml.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Posted by Stefano Mazzocchi <st...@apache.org>.
Carsten Ziegeler wrote:
> 
> Hi,
> 
> do we really need an explicit "debug" statement, like
> "<map:dump-parameters/>"?
> I think we shouldn't extend the sitemap language in this way. The next
> thing people ask for is to have a <map:dump-components> and so on.
> Why not simply always debugging it, if the log level is debug?

Absolutely! A *BIG* -1 on chaning *any* contract without a previous vote
on this list!!!!

> The other thing is, we are very short before the next release, so we
> should change is less as possible. Bug fixes are of course always
> acceptable.

Absolutely.

-- 
Stefano Mazzocchi      One must still have chaos in oneself to be
                          able to give birth to a dancing star.
<st...@apache.org>                             Friedrich Nietzsche
--------------------------------------------------------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


RE: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Posted by Carsten Ziegeler <cz...@s-und-n.de>.
Christian Haul wrote:
> 
> On 26.Nov.2001 -- 03:27 PM, Carsten Ziegeler wrote:
> > > From: Christian Haul [mailto:haul@dvs1.informatik.tu-darmstadt.de]
> > > On 26.Nov.2001 -- 11:50 AM, Carsten Ziegeler wrote:
> > > > do we really need an explicit "debug" statement, like
> > > > "<map:dump-parameters/>"?
> > > > I think we shouldn't extend the sitemap language in this 
> way. The next
> > > > thing people ask for is to have a <map:dump-components> and so on.
> > > > Why not simply always debugging it, if the log level is debug?
> > > 
> > > Would be OK with me. Although it would require to do it after every
> > > modification of listOfMaps, which could be a lot for complex
> > > pipelines. Give me a word and I'll change sitemap.xsl accordingly.
> > 
> > +1
> 
> Done, removed tag, added call to dumpParameters() after every
> listOfMaps.add() and listOfMaps.remove().
> 
> Note that getLogger().isDebugEnabled() is checked in dumpParameters(),
> thus the method call itself is unconditional. OK?
> 
Great!

Thanks Chris.

Carsten

> 	Chris.
> 
> -- 
> C h r i s t i a n       H a u l
> haul@informatik.tu-darmstadt.de
>     fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Posted by Christian Haul <ha...@dvs1.informatik.tu-darmstadt.de>.
On 26.Nov.2001 -- 03:27 PM, Carsten Ziegeler wrote:
> > From: Christian Haul [mailto:haul@dvs1.informatik.tu-darmstadt.de]
> > On 26.Nov.2001 -- 11:50 AM, Carsten Ziegeler wrote:
> > > do we really need an explicit "debug" statement, like
> > > "<map:dump-parameters/>"?
> > > I think we shouldn't extend the sitemap language in this way. The next
> > > thing people ask for is to have a <map:dump-components> and so on.
> > > Why not simply always debugging it, if the log level is debug?
> > 
> > Would be OK with me. Although it would require to do it after every
> > modification of listOfMaps, which could be a lot for complex
> > pipelines. Give me a word and I'll change sitemap.xsl accordingly.
> 
> +1

Done, removed tag, added call to dumpParameters() after every
listOfMaps.add() and listOfMaps.remove().

Note that getLogger().isDebugEnabled() is checked in dumpParameters(),
thus the method call itself is unconditional. OK?

	Chris.

-- 
C h r i s t i a n       H a u l
haul@informatik.tu-darmstadt.de
    fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


RE: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Posted by Carsten Ziegeler <cz...@s-und-n.de>.

> -----Original Message-----
> From: Christian Haul [mailto:haul@dvs1.informatik.tu-darmstadt.de]
> Sent: Monday, November 26, 2001 1:24 PM
> To: cocoon-dev@xml.apache.org
> Subject: Re: cvs commit:
> xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/jav
> a sitemap.xsl
> 
> 
> Carsten,
> 
> On 26.Nov.2001 -- 11:50 AM, Carsten Ziegeler wrote:
> > do we really need an explicit "debug" statement, like
> > "<map:dump-parameters/>"?
> > I think we shouldn't extend the sitemap language in this way. The next
> > thing people ask for is to have a <map:dump-components> and so on.
> > Why not simply always debugging it, if the log level is debug?
> 
> Would be OK with me. Although it would require to do it after every
> modification of listOfMaps, which could be a lot for complex
> pipelines. Give me a word and I'll change sitemap.xsl accordingly.

+1

Thanks,
Carsten

> 
> > The other thing is, we are very short before the next release, so we
> > should change is less as possible. Bug fixes are of course always
> > acceptable.
> 
> Sure. I'm eagerly waiting for the release :-)
> 
> 	Chris.
> 
> -- 
> C h r i s t i a n       H a u l
> haul@informatik.tu-darmstadt.de
>     fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Re: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Posted by Christian Haul <ha...@dvs1.informatik.tu-darmstadt.de>.
Carsten,

On 26.Nov.2001 -- 11:50 AM, Carsten Ziegeler wrote:
> do we really need an explicit "debug" statement, like
> "<map:dump-parameters/>"?
> I think we shouldn't extend the sitemap language in this way. The next
> thing people ask for is to have a <map:dump-components> and so on.
> Why not simply always debugging it, if the log level is debug?

Would be OK with me. Although it would require to do it after every
modification of listOfMaps, which could be a lot for complex
pipelines. Give me a word and I'll change sitemap.xsl accordingly.

> The other thing is, we are very short before the next release, so we
> should change is less as possible. Bug fixes are of course always
> acceptable.

Sure. I'm eagerly waiting for the release :-)

	Chris.

-- 
C h r i s t i a n       H a u l
haul@informatik.tu-darmstadt.de
    fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


RE: cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl

Posted by giacomo <gi...@apache.org>.
On Mon, 26 Nov 2001, Carsten Ziegeler wrote:

> Hi,
>
> do we really need an explicit "debug" statement, like
> "<map:dump-parameters/>"?
> I think we shouldn't extend the sitemap language in this way. The next
> thing people ask for is to have a <map:dump-components> and so on.
> Why not simply always debugging it, if the log level is debug?

I fully support Carsten here. We should not augment the sitemap Schema
with debugging stuff. The logging interface should give you enough power
to show you what's wrong.

Giacomo

> The other thing is, we are very short before the next release, so we
> should change is less as possible. Bug fixes are of course always
> acceptable.
>
> Carsten
>
>
> > -----Original Message-----
> > From: haul@apache.org [mailto:haul@apache.org]
> > Sent: Monday, November 26, 2001 10:20 AM
> > To: xml-cocoon2-cvs@apache.org
> > Subject: cvs commit:
> > xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/jav
> > a sitemap.xsl
> >
> >
> > haul        01/11/26 01:19:51
> >
> >   Modified:    webapp   sitemap.xmap
> >                src/org/apache/cocoon/sitemap AbstractSitemap.java
> >                src/org/apache/cocoon/matching
> >                         WildcardSessionAttributeMatcher.java
> >                src/org/apache/cocoon/matching/helpers WildcardHelper.java
> >                         WildcardURIMatcher.java
> >
> > src/org/apache/cocoon/components/language/markup/sitemap/java
> >                         sitemap.xsl
> >   Log:
> >   - Fixed stateful examples
> >   - WildcardSessionAttributeMatcher hasn't declared to implement
> > configurable (fixed)
> >   - Added complete string in {0} for Wildcard(URI)?Matcher in
> > addition to matches in {1}...
> >   - Added <map:dump-parameters/> in sitemap + method in
> > AbstractSitemap to print out current
> >     sitemap parameters to log. Nice for debugging sitemaps + educational.
> >
> >   Revision  Changes    Path
> >   1.63      +29 -14    xml-cocoon2/webapp/sitemap.xmap
> >
> >   Index: sitemap.xmap
> >   ===================================================================
> >   RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v
> >   retrieving revision 1.62
> >   retrieving revision 1.63
> >   diff -u -r1.62 -r1.63
> >   --- sitemap.xmap	2001/11/23 09:25:55	1.62
> >   +++ sitemap.xmap	2001/11/26 09:19:51	1.63
> >   @@ -143,7 +143,7 @@
> >      necessity, matchers can be nested while chaining does not work.
> >      Related concepts are selectors and actions.
> >
> >   -  Since this is important, let me repeat it: Selectors are executed
> >   +  Since this is important, let me repeat it: Matchers are executed
> >      during pipeline setup.
> >    -->
> >
> >   @@ -203,7 +203,11 @@
> >      pipelines. Use them to update databases, check external resources
> >      etc. The execution may fail or complete successfully. Only if the
> >      execution was successful, the pipeline fragment contained inside is
> >   -  used within the pipeline.
> >   +  used within the pipeline. Related concepts are matchers and
> >   +  selectors.
> >   +
> >   +  Since this is important, let me repeat it: Actions are executed
> >   +  during pipeline setup.
> >    -->
> >
> >      <map:actions>
> >   @@ -268,9 +272,20 @@
> >      </map:resource>
> >
> >      <map:resource name="dynamic-page1">
> >   +     <map:dump-parameters/>
> >   +     <!-- print all current sitemap parameters to log -->
> >         <map:act type="session-state">
> >   -        <map:parameter name="new-state" value="{../next-state}"/>
> >   -        <map:redirect-to resource="dynamic-page"
> > target="{../target}/state{../../../org.apache.cocoon.SessionState}
> > {../../next-state}"/>
> >   +        <map:parameter name="new-state" value="{../0}"/>
> >   +        <!--
> >   +           use the complete string that was matched as a
> > parameter. Compare
> >   +           this with @target below. There the third sitemap
> > parameter refers to
> >   +           the very same string. Very this by looking at the log. This
> >   +           irritating effect stems from the fact, that the
> > above map:parameter
> >   +           belongs conceptually still to the parent element
> > while all other
> >   +           nested tags are, well, nested.
> >   +        -->
> >   +          <map:dump-parameters/>
> >   +        <map:redirect-to resource="dynamic-page"
> > target="{../target}/state{../../../0}{../../0}"/>
> >         </map:act>
> >      </map:resource>
> >
> >   @@ -332,7 +347,7 @@
> >
> >      You may have as many pipelines in your sitemap as you like. However,
> >      it seems that the only purposes would be to specify different error
> >   -  handlers or mount subsitemaps.
> >   +  handlers.
> >    -->
> >
> >     <map:pipelines>
> >   @@ -770,6 +785,7 @@
> >
> >       <!-- =========================== Dynamic
> > ================================ -->
> >       <map:match pattern="xsp/*">
> >   +    <map:dump-parameters/>
> >        <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/>
> >        <map:transform src="stylesheets/dynamic-page2html.xsl">
> >            <map:parameter name="view-source"
> > value="docs/samples/xsp/{1}.xsp"/>
> >   @@ -866,32 +882,31 @@
> >          <!--
> >             This example like the next one show, that matches can be
> >             nested and don't need to match on URIs alone. By using a
> >   -	 session attribute or the referer header for matches it is
> >   +         session attribute or the referer header for matches it is
> >             easy to model a state machine with the sitemap.
> >
> >   -	 There are user documents on this.
> >   +         There are user documents on this.
> >          -->
> >          <map:act type="session-isvalid">
> >            <!-- if session is valid ... -->
> >
> >            <map:match type="sessionstate" pattern="1">
> >   -	   <!-- if a specific session attribute matches pattern "1" -->
> >   +           <!-- if a specific session attribute matches pattern "1" -->
> >               <map:match type="next-page" pattern="1">
> >   -        	      <map:redirect-to resource="dynamic-page1"
> > target="docs/samples/session-state"/>
> >   -		      <!-- by redirecting to this resource, the rest
> >   -		      	   of this fragment here is irrelevant -->
> >   +              <map:redirect-to resource="dynamic-page1"
> > target="docs/samples/session-state"/>
> >   +              <!-- by redirecting to this resource, the rest
> > of this fragment here is irrelevant -->
> >               </map:match>
> >               <map:match type="next-page" pattern="2">
> >   -        	      <map:redirect-to resource="dynamic-page1"
> > target="docs/samples/session-state"/>
> >   +              <map:redirect-to resource="dynamic-page1"
> > target="docs/samples/session-state"/>
> >               </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: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:redirect-to resource="dynamic-page1"
> > target="docs/samples/session-state"/>
> >               </map:match>
> >            </map:match>
> >
> >
> >
> >
> >   1.20      +27 -1
> > xml-cocoon2/src/org/apache/cocoon/sitemap/AbstractSitemap.java
> >
> >   Index: AbstractSitemap.java
> >   ===================================================================
> >   RCS file:
> > /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/AbstractSitemap.java,v
> >   retrieving revision 1.19
> >   retrieving revision 1.20
> >   diff -u -r1.19 -r1.20
> >   --- AbstractSitemap.java	2001/10/11 07:28:23	1.19
> >   +++ AbstractSitemap.java	2001/11/26 09:19:51	1.20
> >   @@ -42,12 +42,13 @@
> >    import java.util.ArrayList;
> >    import java.util.List;
> >    import java.util.Map;
> >   +import java.util.Iterator;
> >
> >    /**
> >     * Base class for generated <code>Sitemap</code> classes
> >     *
> >     * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
> >   - * @version CVS $Revision: 1.19 $ $Date: 2001/10/11 07:28:23 $
> >   + * @version CVS $Revision: 1.20 $ $Date: 2001/11/26 09:19:51 $
> >     */
> >    public abstract class AbstractSitemap extends AbstractLoggable
> > implements Sitemap, Disposable, ThreadSafe {
> >        private Context context;
> >   @@ -319,6 +320,31 @@
> >                getLogger().error("AbstractSitemap:substitute()", e);
> >                throw new PatternException("error occurred during
> > evaluation of expression \"" + expr + "\" at position " +
> >                    (i + 1) + "\n" + e.getMessage());
> >   +        }
> >   +    }
> >   +
> >   +    /**
> >   +     * Dumps all sitemap parameters to log
> >   +     */
> >   +    protected void dumpParameters(List list) {
> >   +        if (getLogger().isDebugEnabled()) {
> >   +            StringBuffer sb=new StringBuffer();
> >   +            if (!list.isEmpty()) {
> >   +                sb.append("\nCurrent Sitemap Parameters:\n");
> >   +                String path="";
> >   +                for (int i=list.size()-1; i>=0; i--) {
> >   +                    Map map=(Map)list.get(i);
> >   +                    Iterator keys = map.keySet().iterator();
> >   +                    while (keys.hasNext()) {
> >   +                        String key = (String)keys.next();
> >   +                        sb.append(path)
> >   +                            .append("PARAM: '").append(key)
> >   +                            .append("' VALUE:
> > '").append(map.get(key)).append("'\n");
> >   +                    }
> >   +                    path="../"+path;
> >   +                }
> >   +            }
> >   +            getLogger().debug(sb.toString());
> >            }
> >        }
> >
> >
> >
> >
> >   1.3       +6 -2
> > xml-cocoon2/src/org/apache/cocoon/matching/WildcardSessionAttribut
> > eMatcher.java
> >
> >   Index: WildcardSessionAttributeMatcher.java
> >   ===================================================================
> >   RCS file:
> > /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/WildcardSessi
> > onAttributeMatcher.java,v
> >   retrieving revision 1.2
> >   retrieving revision 1.3
> >   diff -u -r1.2 -r1.3
> >   --- WildcardSessionAttributeMatcher.java	2001/10/22 10:17:46	1.2
> >   +++ WildcardSessionAttributeMatcher.java	2001/11/26 09:19:51	1.3
> >   @@ -26,15 +26,19 @@
> >     *
> >     * @author <a
> > href="mailto:haul@informatik.tu-darmstadt.de">Christian Haul</a>
> >     * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
> >   - * @version CVS $Revision: 1.2 $ $Date: 2001/10/22 10:17:46 $
> >   + * @version CVS $Revision: 1.3 $ $Date: 2001/11/26 09:19:51 $
> >     */
> >
> >   -public class WildcardSessionAttributeMatcher extends
> > WildcardURIMatcher {
> >   +public class WildcardSessionAttributeMatcher
> >   +    extends WildcardURIMatcher
> >   +    implements Configurable
> >   +{
> >
> >        private String defaultParam;
> >
> >        public void configure(Configuration config) throws
> > ConfigurationException {
> >            this.defaultParam =
> > config.getChild("attribute-name").getValue(null);
> >   +	getLogger().debug("attribute-name is = '"+this.defaultParam+"'");
> >        }
> >
> >        protected String getMatchString(Map objectModel,
> > Parameters parameters) {
> >
> >
> >
> >   1.2       +4 -1
> > xml-cocoon2/src/org/apache/cocoon/matching/helpers/WildcardHelper.java
> >
> >   Index: WildcardHelper.java
> >   ===================================================================
> >   RCS file:
> > /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/helpers/Wildc
> > ardHelper.java,v
> >   retrieving revision 1.1
> >   retrieving revision 1.2
> >   diff -u -r1.1 -r1.2
> >   --- WildcardHelper.java	2001/10/19 15:28:45	1.1
> >   +++ WildcardHelper.java	2001/11/26 09:19:51	1.2
> >   @@ -18,7 +18,7 @@
> >     * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
> >     * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
> >     * @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
> >   - * @version CVS $Revision: 1.1 $ $Date: 2001/10/19 15:28:45 $
> >   + * @version CVS $Revision: 1.2 $ $Date: 2001/11/26 09:19:51 $
> >     */
> >    public class WildcardHelper {
> >
> >   @@ -152,6 +152,9 @@
> >
> >            // The matching count
> >            int mcount = 0;
> >   +
> >   +        // We want the complete data be in {0}
> >   +        map.put(Integer.toString(mcount),data);
> >
> >            // First check for MATCH_BEGIN
> >            boolean matchBegin = false;
> >
> >
> >
> >   1.3       +4 -1
> > xml-cocoon2/src/org/apache/cocoon/matching/helpers/WildcardURIMatcher.java
> >
> >   Index: WildcardURIMatcher.java
> >   ===================================================================
> >   RCS file:
> > /home/cvs/xml-cocoon2/src/org/apache/cocoon/matching/helpers/Wildc
> > ardURIMatcher.java,v
> >   retrieving revision 1.2
> >   retrieving revision 1.3
> >   diff -u -r1.2 -r1.3
> >   --- WildcardURIMatcher.java	2001/10/19 15:28:45	1.2
> >   +++ WildcardURIMatcher.java	2001/11/26 09:19:51	1.3
> >   @@ -17,7 +17,7 @@
> >     *         (Apache Software Foundation, Exoffice Technologies)
> >     * @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
> >     * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
> >   - * @version CVS $Revision: 1.2 $ $Date: 2001/10/19 15:28:45 $
> >   + * @version CVS $Revision: 1.3 $ $Date: 2001/11/26 09:19:51 $
> >     * @deprecated renamed to WildcardHelper
> >     */
> >    public class WildcardURIMatcher {
> >   @@ -64,6 +64,9 @@
> >
> >            // The matching count
> >            int mcount = 0;
> >   +
> >   +        // We want the complete data be in {0}
> >   +        map.put(Integer.toString(mcount),data);
> >
> >            // First check for MATCH_BEGIN
> >            boolean matchBegin = false;
> >
> >
> >
> >   1.48      +7 -1
> > xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitem
> > ap/java/sitemap.xsl
> >
> >   Index: sitemap.xsl
> >   ===================================================================
> >   RCS file:
> > /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/ma
> > rkup/sitemap/java/sitemap.xsl,v
> >   retrieving revision 1.47
> >   retrieving revision 1.48
> >   diff -u -r1.47 -r1.48
> >   --- sitemap.xsl	2001/11/14 22:43:43	1.47
> >   +++ sitemap.xsl	2001/11/26 09:19:51	1.48
> >   @@ -126,7 +126,7 @@
> >         *
> >         * @author &lt;a
> > href="mailto:giacomo@apache.org"&gt;Giacomo Pati&lt;/a&gt;
> >         * @author &lt;a
> > href="mailto:bloritsch@apache.org"&gt;Berin Loritsch&lt;/a&gt;
> >   -     * @version CVS $Id: sitemap.xsl,v 1.47 2001/11/14
> > 22:43:43 giacomo Exp $
> >   +     * @version CVS $Id: sitemap.xsl,v 1.48 2001/11/26
> > 09:19:51 haul Exp $
> >         */
> >        public class <xsl:value-of select="@file-name"/> extends
> > AbstractSitemap {
> >          static final String LOCATION = "<xsl:value-of
> > select="translate(@file-path, '/', '.')"/>.<xsl:value-of
> > select="@file-name"/>";
> >   @@ -1614,6 +1614,12 @@
> >          }
> >        </xsl:for-each>
> >      </xsl:template>
> >   +
> >   +  <!-- nice for debugging: print all kown sitemap parameters to log -->
> >   +  <xsl:template match="map:dump-parameters">
> >   +    this.dumpParameters(listOfMaps);
> >   +  </xsl:template>
> >   +
> >
> >      <!-- this template is used to setup a individual sitemap
> > component before putting it into a pipeline -->
> >      <xsl:template name="setup-component">
> >
> >
> >
> >
> > ----------------------------------------------------------------------
> > In case of troubles, e-mail:     webmaster@xml.apache.org
> > To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
> > For additional commands, e-mail: cocoon-cvs-help@xml.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org