You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by Thorsten Scherler <th...@apache.org> on 2006/07/17 16:10:24 UTC

Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

El lun, 17-07-2006 a las 11:28 +0200, Cyriaque Dupoirieux escribió:
> le 17/07/2006 10:46 Thorsten Scherler a écrit :
> > El lun, 17-07-2006 a las 01:18 -0700, Cyriaque Dupoirieux (JIRA)
> > escribió:
> >   
> >>     [ http://issues.apache.org/jira/browse/FOR-893?page=comments#action_12421554 ] 
> >>             
> >> Cyriaque Dupoirieux commented on FOR-893:
> >> -----------------------------------------
> >>
> >> This still does not work with me...
> >> In the following thread : http://marc.theaimsgroup.com/?t=115269589100002&r=1&w=2
> >> I explained that my specific fv files were found (still in xdocs directory...) if I inverted the two  <act type="RecursiveDirectoryTraversalAction">  tags.
> >> I had no problem with the {1}...
> >> Now, If I invert the two tags, it does not work anymore.
> >>     
> >
> > Did you  updated the locationmap of the dispatcher and builded the
> > plugin.
> >   
> Yes, this morning...
> > The {../1} is only working if you use the head of locationmap.xml! You
> > need 
> > <match pattern="dispatcher.structurer.resourceType.**">
> >  <select>
> >   <act type="RecursiveDirectoryTraversalAction">
> >    <parameter value="{../1}" name="request"/>
> > ...
> >
> > I tested this and it works like a charm for me. 
> >   
> indeed :-( .
> > I tested successfully:
> > - <act type="sourcetype" src="{project:content.xdocs}{1}.xml"> (e.g.
> > document-v20.fv)
> > - <act type="resourceTypeAction"> (e.g. xhtml.fv)
> > - <act type="RecursiveDirectoryTraversalAction">
> >    <parameter value="{project:resources}structurer/url/"
> > name="projectDir"/>
> > - <act type="RecursiveDirectoryTraversalAction">
> >    <parameter value="{project:content.xdocs}" name="projectDir"/>
> >
> > I have 
> > structurer/
> > |-- resource-types
> > |   |-- document-v20.fv.bck
> > |   `-- xhtml.fv.bck
> > `-- url
> >     `-- common.fv.bck
> >
> > Where I renamed all views to *.bck as soon as they worked successfully.
> > The last one is in my project dir (the old default place).
> >
> >   
> Ok, here is a good summary of the different cases that can be met in my 
> site :
> 
> xdocs/
> |-- pelt.vf (taken into account)
> |-- livres/
> |   |-- pelt.fv (not taken into account by the files in the livres 
> directory, the xdocs/pelt.fv is used instead...)
> `-- jeux/
>    |-- ultima.xml (this one is generated with xdocs/pelt.fv which is good)
>    |-- ultima3.xml
>    |-- ultima3.fv (this one is taken into account - it corresponds to 
> <act type="sourcetype" src="{project:content.xdocs}{1}.xml"> if I 
> understand)

no.

It belongs to:

<match pattern="resolve.structurer.**">
      <select type="exists">
        <!-- project-based
          url-based (url location) -->
        <location
src="{project:resources}/structurer/url/{1}{project:theme-ext}" />
        <!-- project-based
          url-based (xdocs location)  [depreciated]-->
        <location src="{project:content.xdocs}{1}{project:theme-ext}" />
        ^^^^^^^^^^^^^^^^^^^^^^this^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 <act type="sourcetype" src="{project:content.xdocs}{1}.xml">
          <!-- Sourcetype based
          http://forrest.apache.org/docs/cap.html-->
          <location
src="lm://dispatcher.structurer.resourceType.{sourcetype}"
            />
        </act>

Assuming ultima3.xml is document-v20 and you have in your project
{project:resources}/structurer/resource-types/document-v20.fv then this
would match the sourcetype, but not in the current structure of your
project since ^^this^^ is *before* the sourcetype action.


>    `--ultima2/
>       |-- mondes/
>          |-- map10.xml
>          `-- pelt.fv (this one is not taken into account by the 
> map10.xml, the xdocs/pelt.fv is used instead...)

Hmm, meaning the traversal action is not working. I expect that it is
because of {1}.

> 
> Please, can I have more logs with the dispatcher java classes, I may 
> find my problem alone if it works with you...

I am not sure. This is not a dispatcher problem but more a locationmap
one. The dispatcher transformer is coming into place later. However you
can do something like:
Index:
src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java
===================================================================
---
src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java        (revisión: 422657)
+++
src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java        (copia de trabajo)
@@ -96,6 +96,7 @@
         this.prepare(parameters, source);
         String uri = this.getProjectDir() + this.getRequest()
                 + this.getProjectExtension();
+        getLogger().warn("RecursiveDirectoryTraversalAction trying to
use uri: "+uri);
         Map returnMap = act(uri);
         return returnMap;
     }
@@ -116,6 +117,7 @@
             this.computeResponseURI(uri, src);
             //src = resolver.resolveURI(uri);
             if (this.map.containsKey("uri")) {
+               getLogger().warn("RecursiveDirectoryTraversalAction
found at location: "+uri);
                 return this.map;
             } else {
                 return null;

For debug e.g the RecursiveDirectoryTraversalAction and see what the uri
is.

You can see it with
tail -f build/webapp/WEB-INF/logs/*.log|grep
RecursiveDirectoryTraversalAction

which should return something like:
WARN    (2006-07-17) 16:08.49:702   [core.modules.mapper.lm]
(/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
RecursiveDirectoryTraversalAction trying to use
uri: /home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv
WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
(/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
RecursiveDirectoryTraversalAction trying to use
uri: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
(/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
RecursiveDirectoryTraversalAction found at
location: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv

In any case please do 
thorsten@cartman:~/src/apache/forrest/trunk/main$ ./build.sh clean
thorsten@cartman:~/src/apache/forrest/trunk/main$ ./build.sh
before you test.

Make sure that
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher$ svn diff locationmap.xml 
returns nothing.

salu2

> 
> Salutations,
> Cyriaque,
> >> If I replace the {../1} by the previous {1} :
> >>         <act type="RecursiveDirectoryTraversalAction">
> >>           <parameter value="{1}" name="request"/>
> >>           <parameter value="{project:theme}" name="projectFallback"/>
> >>           <parameter value="{project:theme-ext}" name="projectExtension"/>
> >>           <parameter value="{project:content.xdocs}" name="projectDir"/>
> >>           <!--  xdocs  [depreciated]
> >>             project-based theme-based = directory-based / parent-directory based (recursively) -->
> >>           <location src="{uri}" />
> >>         </act>
> >>         <act type="RecursiveDirectoryTraversalAction">
> >>           <parameter value="{../1}" name="request"/>
> >>           <parameter value="{project:theme}" name="projectFallback"/>
> >>           <parameter value="{project:theme-ext}" name="projectExtension"/>
> >>           <parameter value="{project:resources}structurer/url/" name="projectDir"/>
> >>           <!--  url
> >>             project-based theme-based = directory-based / parent-directory based (recursively) -->
> >>           <location src="{uri}" />
> >>         </act>
> >> It works again.
> >>
> >> I reopen the FOR...
> >>     
> >
> >
> > Hmm, it is hard to assist on this since it is working fine for me.
> >
> > Did you change the locationmap.xml or have implemented own matches in
> > your project lm?
> >
> > Can somebody else test the current changes?
> >
> > salu2
> >
> >   
> >>> wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten
> >>> ----------------------------------------------------------------------------------
> >>>
> >>>                 Key: FOR-893
> >>>                 URL: http://issues.apache.org/jira/browse/FOR-893
> >>>             Project: Forrest
> >>>          Issue Type: Bug
> >>>          Components: Locationmap, Dispatcher (aka views)
> >>>            Reporter: Thorsten Scherler
> >>>         Attachments: lm.log.xml
> >>>
> >>>
> >>> In the thread http://marc.theaimsgroup.com/?t=114682704400003&r=1&w=2 I found out the following.
> >>> I did a debug session with the RecursiveDirectoryTraversalAction and I
> >>> figured out that the {1} in the lm is not probably resolved (it is
> >>> always "").
> >>> <match pattern="resolve.structurer.**">
> >>> ...
> >>>  <act type="RecursiveDirectoryTraversalAction">
> >>>   <parameter value="{1}" name="request"/>
> >>> It seems to happen in all lm actions, I debugged the resourceTypeAction
> >>> and the same problem can be seen.
> >>> I attached the result of 
> >>> svn log . -v --xml >~/src/apache/forrest/trunk/lm.log.xml
> >>>       
> >
> >   
-- 
thorsten

"Together we stand, divided we fall!" 
Hey you (Pink Floyd)


Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Cyriaque Dupoirieux <Cy...@pcotech.fr>.
le 18/07/2006 19:03 Thorsten Scherler a écrit :
> El mar, 18-07-2006 a las 17:17 +0200, Cyriaque Dupoirieux escribió:
>   
>> le 17/07/2006 16:10 Thorsten Scherler a écrit :
>>     
>>> El lun, 17-07-2006 a las 11:28 +0200, Cyriaque Dupoirieux escribió:
>>>   
>>>       
>>>> le 17/07/2006 10:46 Thorsten Scherler a écrit :
>>>>     
>>>>         
>>>>> El lun, 17-07-2006 a las 01:18 -0700, Cyriaque Dupoirieux (JIRA)
>>>>> escribió:
>>>>>       
[SNIP...]

>>>>>
>>>>> Now the results :
>>>>> ============
>>>>> Example of my structure :
>>>>>
>>>>> xdocs/
>>>>>     |-- jeux
>>>>>         |-- ultima2.xml
>>>>>         `-- ultima2/
>>>>>             `-- mondes/
>>>>>                 |-- mapx21.xml
>>>>>
>>>>>
>>>>> structurer/url/
>>>>>            |-- jeux/
>>>>>            |   `-- ultima2/
>>>>>            |       `-- mondes/
>>>>>            |           |-- pelt.fv
>>>>>            `-- pelt.fv
>>>>>
>>>>> The correct behaviour should be :
>>>>> - jeux/ultima2.xml uses structurer/url/pelt.fv
>>>>>           
>
> To clarify, requesting "jeux/ultima2.html" should use
> "structurer/url/pelt.fv"
>
>   
>> - jeux/ultima2/mondes/mapx21 uses structure/url/jeux/ultima2/mondes/pelt.fv
>>
>>
>> dispatcherErrorStack:
>>  org.xml.sax.SAXParseException: The markup in the document following the 
>> root element must be well-formed.
>>     
>
> What is the whole error?
>   
I don't know...
>   
>> WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/SourceExistsSelector: Error reading from source 
>> 'lm://dispatcher.structurer.resourceType.document-v20': Could not 
>> resolve locationmap location.
>>     
>
> This is the sourceType action.
>   
Ok,
>   
>> WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv
>>
>>     
>
> Ok, we are requesting jeux/ultima2.html. Right?
>   
Yes,
>   
>> WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
>> for 
>> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv]
>>     
>
> The primary structurer for the request would have been
> "jeux/ultima2.fv". This file does not exist and the calculation of the
> "RecursiveDirectoryTraversalAction" found D:\duc
> \viewSitePerso/src/documentation/resources/structurer/url/pelt.fv as
> responsible structurer. 
>
> Looks good.
>   
Yes,
>   
>> WARN    (2006-07-18) 15:53.35:453   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
>>     
>
> This is the where the request <parameter value="{1} or {../1}"
> name="request"/> does not get resolved.
>   
In that test, it is {../1}
> Why is this request made anyway. We already found the right location. Or
> is it a different one?
>   
This request is made inside ultima2.html :
   
    <a class="fork" href="ultima2/mondes/mapx21.php" title="Le 
Jester">Le Jester</a>
(I realise that it's a php page, but I have no problem with the php plugin.)
>   
>> WARN    (2006-07-18) 15:53.35:453   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
>> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
>>
>>     
>
> fallback
>
>   
>> ERROR   (2006-07-18) 15:53.37:000   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/DispatcherTransformer: dispatcherError: 500 - Internal 
>> server error
>> The contract "content-title" has thrown thrown an exception by resolving 
>> raw data from "cocoon://jeux/ultima2/mondes/mapx21.title.xml".
>>
>>     
>
> hmm, what does
> http://localhost:8888/jeux/ultima2/mondes/mapx21.title.xml return?
>   
The mapx21.xml must use a very specific fv file. Here it uses the 
default pelt.fv and tries to calculate the mapx21.title.xml but there is 
none...
>   
>> So here, we can see that there is a problem with the uri of the second 
>> file which is jeux/ultima2/mondes/mapx21.xml
>>     
>
> The main question that is raising in my head is: do you use
> jeux/ultima2/mondes/mapx21.xml from within jeux/ultima2.fv? If so can I
> see the definition?
>   
Yes that's very interesting, see above for the definition...
>   
>> Now, I replace the {../1} by {1} in the request - just to see :
>> dispatcherErrorStack:
>>  org.xml.sax.SAXParseException: The markup in the document following the 
>> root element must be well-formed.
>>
>> WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/SourceExistsSelector: Error reading from source 
>> 'lm://dispatcher.structurer.resourceType.document-v20': Could not 
>> resolve locationmap location.
>>
>> WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
>>     
>
> This is the where the request <parameter value="{1}" name="request"/>
> does not get resolved.
>   
Yes,
>   
>> WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
>> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
>>     
>
> Fallback.
>
>   
>> WARN    (2006-07-18) 16:48.38:109   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv
>>
>> WARN    (2006-07-18) 16:48.38:109   [cocoon.manager] (Unknown-URI) 
>> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv 
>> for 
>> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv]
>>
>>     
>
> The primary structurer for the request would have been
> "jeux/ultima2/mondes/mapx21.fv". This file does not exist and the
> calculation of the "RecursiveDirectoryTraversalAction" found D:\duc
> \viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv as responsible structurer. 
>
> Looks good.
>   
Yes, the fallback mecanism works if {1}. It did not worked with {../1} - 
previous test.
>   
>> And now there is a problem with the uri of the first file which is 
>> jeux/ultima2.xml
>>     
>
> Yeah, I see. Is this one and the same request? Can you specify what you
> are requesting for each log?
>   
Actually, I am making a forrest site.
The request seems to be /jeux/ultima2.html which contains an href to 
/jeux/ultima2/mondes/mapx21.php.

I can try with forrest run to see what happens.
>   
>> I think you are going to understand :-)  since my logs are not identical 
>> to yours :
>>     I have [cocoon.manager] instead of [core.modules.mapper.lm]
>>     and (Unknown-URI) Unknown-Thread instead of (/search.html) PoolThread-4
>>
>>     
>
> That is not the problem but I do not understand the requests. Why
> (Unknown-URI)? Can you change it to the request like (/search.html)? It
> looks like there is difference in dispatching the files. 
>   
Maybe the difference comes from the fact I am making a static site ?
> Very weird.
>   
Indeed !
> We need to find the difference.
>   
We are on the good way.
> salu2
>   
Salutations,
Cyriaque,

Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Cyriaque Dupoirieux <Cy...@pcotech.fr>.
le 19/07/2006 12:59 Thorsten Scherler a écrit :
> El mié, 19-07-2006 a las 12:47 +0200, Cyriaque Dupoirieux escribió:
>   
>> le 19/07/2006 10:46 Cyriaque Dupoirieux a écrit :
>>     
>>> le 18/07/2006 19:03 Thorsten Scherler a écrit :
>>>       
>>>>>>>>                 
>>>>>>>>                 
>>>>>> [SNIP...]
>>> I have made the test with forrest run :
>>> here are the logs generated with the standard plugin (the HEAD)
>>> Call to jeux/ultima2.html :
>>> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
>>> from source 'lm://dispatcher.structurer.resourceType.document-v20': 
>>> Could not resolve locationmap location.
>>> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
>>> uri: 
>>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv 
>>>
>>> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
>>> location: 
>>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
>>> for 
>>> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv] 
>>>
>>>
>>> Call to jeux/ultima2/mondes/mapx21.php :
>>> WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
>>> trying to use uri: 
>>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
>>> WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
>>> found at location: 
>>> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
>>> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
>>>
>>>       
>
> Ok, I think we getting closer.
>
> Have a look in the output.xmap of the php plugin:
>     <map:match type="regexp" pattern="^(.*?)([^/]*).php$">
>       <map:generate src="cocoon://{1}{2}.html"/>
>       <map:transform src="resources/stylesheets/php/document2php.xsl"/>
>       <map:serialize type="html"/>
>     </map:match>
>
> It is requesting a html file.
Yes, it is a simple plugin which take in entry a file following the 
document-v20.dtd + the <php> CDATA </php>.
First, it asks to generate the html (skinned layout of the page with the 
<php> tags left)
Then it applies the document2php.xsl which just converts the <php> tags 
into <?php and ?>
It's really simple but it works wery well.
Example :

    <section id="samples">
      <title>Samples</title>
      <p>The call to phpinfo function is made just after this sentence.</p>
*      <php><![CDATA[phpinfo()]]></php>*
      <p>The call to phpinfo finishes just before this sentence.</p>
  </section>
>  The stylesheet name is rather missleading
> because it is not document-to-php but rather html-to-php.
Yes you are right, I am going to rename it
>  Further why is
> this not <map:match pattern="**.php"> and <map:generate
> src="cocoon://{1}.html"/>? Maybe that is influencing.
>
> That explains why you have a dispatcher request, because normally *.php
> is not handled by the dispatcher.
Why, it is just intended to generate php file but the layout must but 
done either with skins or dispatcher as user likes.
>  The difference lies now in the
> internal processing of "cocoon://{1}{2}.html" in the lm.
>   
Ok, I don't remember why I had to use the regexp - Should have written a 
comment on this, too bad...
But the fact is that I certainly had problems with the pattern="**.php".
(Maybe it was the same problem we have with the dispatcher !)

Salutations,
Cyriaque,
>
>   
>> Salutations,
>> Cyriaque,
>>     
>
>   

Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Thorsten Scherler <th...@wyona.com>.
El mié, 19-07-2006 a las 12:47 +0200, Cyriaque Dupoirieux escribió:
> le 19/07/2006 10:46 Cyriaque Dupoirieux a écrit :
> > le 18/07/2006 19:03 Thorsten Scherler a écrit :
> >>>>>>                 
> >>>> [SNIP...]
> >>>>         You can see it with
> >>>> tail -f build/webapp/WEB-INF/logs/*.log|grep
> >>>> RecursiveDirectoryTraversalAction
> >>>>
> >>>> which should return something like:
> >>>> WARN    (2006-07-17) 16:08.49:702   [core.modules.mapper.lm]
> >>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> >>>> RecursiveDirectoryTraversalAction trying to use
> >>>> uri: 
> >>>> /home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv 
> >>>>
> >>>> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
> >>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> >>>> RecursiveDirectoryTraversalAction trying to use
> >>>> uri: 
> >>>> /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
> >>>> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
> >>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> >>>> RecursiveDirectoryTraversalAction found at
> >>>> location: 
> >>>> /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
> >>>>
> >>>>       
> >>
> > I have made the test with forrest run :
> > here are the logs generated with the standard plugin (the HEAD)
> > Call to jeux/ultima2.html :
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
> > from source 'lm://dispatcher.structurer.resourceType.document-v20': 
> > Could not resolve locationmap location.
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
> > uri: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv 
> >
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
> > location: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> > for 
> > [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv] 
> >
> >
> > Call to jeux/ultima2/mondes/mapx21.php :
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> > trying to use uri: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> > found at location: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> > for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
> >

Ok, I think we getting closer.

Have a look in the output.xmap of the php plugin:
    <map:match type="regexp" pattern="^(.*?)([^/]*).php$">
      <map:generate src="cocoon://{1}{2}.html"/>
      <map:transform src="resources/stylesheets/php/document2php.xsl"/>
      <map:serialize type="html"/>
    </map:match>

It is requesting a html file. The stylesheet name is rather missleading
because it is not document-to-php but rather html-to-php. Further why is
this not <map:match pattern="**.php"> and <map:generate
src="cocoon://{1}.html"/>? Maybe that is influencing.

That explains why you have a dispatcher request, because normally *.php
is not handled by the dispatcher. The difference lies now in the
internal processing of "cocoon://{1}{2}.html" in the lm.

Now in the dispatcher we match:
<map:match pattern="**.html">
        <map:generate src="cocoon:/resolve.structurer.{1}" type="jx">
          <map:parameter name="lenient-xpath" value="true" />
          <map:parameter name="getRequest" value="{1}" />
          <map:parameter name="getRequestExtension" value="html" />
        </map:generate>
        <map:transform type="dispatcher">
          <map:parameter name="request" value="{1}" />
          <map:parameter name="type" value="html" />
          <map:parameter name="hooksTransformer"
value="lm://hooks-to-html.xsl" 
            />
        </map:transform>
        <map:transform 
          src="lm://transform.xml.xml-namespace-stripped" 
          />
        <map:transform 

src="resources/stylesheets/helper/strip-dispatcher-remains.xsl" 
          />
        <map:serialize type="xhtml" />
      </map:match>

and

<map:match pattern="resolve.structurer.**">
        <map:generate src="lm://resolve.structurer.{1}" />
        <map:serialize />
      </map:match>

So we should treat both calls the same. However for the lm this seems to
makes a difference which we need to find out where it is coming from.
Maybe it has something to do with the mounting of the lm in plugins, but
that is a shot in the dark.


> >
> > And here are the logs with {1} in the request :
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
> > from source 'lm://dispatcher.structurer.resourceType.document-v20': 
> > Could not resolve locationmap location.
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
> > uri: D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
> > location: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> > for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> > trying to use uri: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv 
> >
> > WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> > found at location: 
> > D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv 
> > for 
> > [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv] 
> >
> >
> > Cyriaque,
> >
> >
> I have tried something completly crazy :
> If I use {../1} the request of some files are empty
> If I use {1} the request of other files is empty
> But I never have {../1} AND {1} is empty or fullfilled at the same time...
> 
> So I use {../1}{1} and it works in every time.

The exact thing I was thinking about as a workaround.

> 
> It is a work around untill we understand some dispatcher strange 
> behaviours :

The above issue is not dispatcher specific. It occurs in the dispatcher
lm but it is a locationmap (in combination of select/act/parameter)
issue.

> - Sometimes, the dispatcher generates two files 
> (http://issues.apache.org/jira/browse/FOR-821)
> Which may be linked...

Hmm, I am not sure whether they are linked.


> 
> If you agree, - because this is the first time since several monthes 
> that I succeed to generate my whole site - I apply my modification in 
> the vault.

I am not happy but yeah apply it and add a note that it is a workaround.
We need to understand better what is going on with the lm and why it
treats this stuff different.

salu2

> 
> 
> Salutations,
> Cyriaque,

-- 
Thorsten Scherler
COO Spain
Wyona Inc.  -  Open Source Content Management  -  Apache Lenya
http://www.wyona.com                   http://lenya.apache.org
thorsten.scherler@wyona.com                thorsten@apache.org


Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Cyriaque Dupoirieux <Cy...@pcotech.fr>.
le 19/07/2006 10:46 Cyriaque Dupoirieux a écrit :
> le 18/07/2006 19:03 Thorsten Scherler a écrit :
>>>>>>                 
>>>> [SNIP...]
>>>>         You can see it with
>>>> tail -f build/webapp/WEB-INF/logs/*.log|grep
>>>> RecursiveDirectoryTraversalAction
>>>>
>>>> which should return something like:
>>>> WARN    (2006-07-17) 16:08.49:702   [core.modules.mapper.lm]
>>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
>>>> RecursiveDirectoryTraversalAction trying to use
>>>> uri: 
>>>> /home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv 
>>>>
>>>> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
>>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
>>>> RecursiveDirectoryTraversalAction trying to use
>>>> uri: 
>>>> /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
>>>> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
>>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
>>>> RecursiveDirectoryTraversalAction found at
>>>> location: 
>>>> /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
>>>>
>>>>       
>>
> I have made the test with forrest run :
> here are the logs generated with the standard plugin (the HEAD)
> Call to jeux/ultima2.html :
> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
> from source 'lm://dispatcher.structurer.resourceType.document-v20': 
> Could not resolve locationmap location.
> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
> uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv 
>
> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
> location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> for 
> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv] 
>
>
> Call to jeux/ultima2/mondes/mapx21.php :
> WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> trying to use uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
> WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> found at location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
>
>
> And here are the logs with {1} in the request :
> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
> from source 'lm://dispatcher.structurer.resourceType.document-v20': 
> Could not resolve locationmap location.
> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
> uri: D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
> WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
> location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
> WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> trying to use uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv 
>
> WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
> found at location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv 
> for 
> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv] 
>
>
> Cyriaque,
>
>
I have tried something completly crazy :
If I use {../1} the request of some files are empty
If I use {1} the request of other files is empty
But I never have {../1} AND {1} is empty or fullfilled at the same time...

So I use {../1}{1} and it works in every time.

It is a work around untill we understand some dispatcher strange 
behaviours :
- Sometimes, the dispatcher generates two files 
(http://issues.apache.org/jira/browse/FOR-821)
Which may be linked...


If you agree, - because this is the first time since several monthes 
that I succeed to generate my whole site - I apply my modification in 
the vault.


Salutations,
Cyriaque,


Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Cyriaque Dupoirieux <Cy...@pcotech.fr>.
le 18/07/2006 19:03 Thorsten Scherler a écrit :
>>>>>       
>>>>>           
>>> [SNIP...]
>>>   
>>>       
>>> You can see it with
>>> tail -f build/webapp/WEB-INF/logs/*.log|grep
>>> RecursiveDirectoryTraversalAction
>>>
>>> which should return something like:
>>> WARN    (2006-07-17) 16:08.49:702   [core.modules.mapper.lm]
>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
>>> RecursiveDirectoryTraversalAction trying to use
>>> uri: /home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv
>>> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
>>> RecursiveDirectoryTraversalAction trying to use
>>> uri: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
>>> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
>>> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
>>> RecursiveDirectoryTraversalAction found at
>>> location: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
>>>
>>>       
>
I have made the test with forrest run :
here are the logs generated with the standard plugin (the HEAD)
Call to jeux/ultima2.html :
WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
from source 'lm://dispatcher.structurer.resourceType.document-v20': 
Could not resolve locationmap location.
WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv
WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
for 
[D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv]

Call to jeux/ultima2/mondes/mapx21.php :
WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
trying to use uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
found at location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]


And here are the logs with {1} in the request :
WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): Error reading 
from source 'lm://dispatcher.structurer.resourceType.document-v20': 
Could not resolve locationmap location.
WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): trying to use 
uri: D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv
WARN    [core.modules.mapper.lm] (/jeux/ultima2.html): found at 
location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
trying to use uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv
WARN    [core.modules.mapper.lm] (/jeux/ultima2/mondes/mapx21.php): 
found at location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv 
for 
[D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv]

Cyriaque,

Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Thorsten Scherler <th...@apache.org>.
El mar, 18-07-2006 a las 17:17 +0200, Cyriaque Dupoirieux escribió:
> le 17/07/2006 16:10 Thorsten Scherler a écrit :
> > El lun, 17-07-2006 a las 11:28 +0200, Cyriaque Dupoirieux escribió:
> >   
> >> le 17/07/2006 10:46 Thorsten Scherler a écrit :
> >>     
> >>> El lun, 17-07-2006 a las 01:18 -0700, Cyriaque Dupoirieux (JIRA)
> >>> escribió:
> >>>       
> > [SNIP...]
> >   
> 
> > I am not sure. This is not a dispatcher problem but more a locationmap
> > one. The dispatcher transformer is coming into place later. However you
> > can do something like:
> > Index:
> > src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java
> > ===================================================================
> > ---
> > src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java        (revisión: 422657)
> > +++
> > src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java        (copia de trabajo)
> > @@ -96,6 +96,7 @@
> >          this.prepare(parameters, source);
> >          String uri = this.getProjectDir() + this.getRequest()
> >                  + this.getProjectExtension();
> > +        getLogger().warn("RecursiveDirectoryTraversalAction trying to
> > use uri: "+uri);
> >          Map returnMap = act(uri);
> >          return returnMap;
> >      }
> > @@ -116,6 +117,7 @@
> >              this.computeResponseURI(uri, src);
> >              //src = resolver.resolveURI(uri);
> >              if (this.map.containsKey("uri")) {
> > +               getLogger().warn("RecursiveDirectoryTraversalAction
> > found at location: "+uri);
> >                  return this.map;
> >              } else {
> >                  return null;
> >
> > For debug e.g the RecursiveDirectoryTraversalAction and see what the uri
> > is.
> >
> > You can see it with
> > tail -f build/webapp/WEB-INF/logs/*.log|grep
> > RecursiveDirectoryTraversalAction
> >
> > which should return something like:
> > WARN    (2006-07-17) 16:08.49:702   [core.modules.mapper.lm]
> > (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> > RecursiveDirectoryTraversalAction trying to use
> > uri: /home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv
> > WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
> > (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> > RecursiveDirectoryTraversalAction trying to use
> > uri: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
> > WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
> > (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> > RecursiveDirectoryTraversalAction found at
> > location: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
> >
> > In any case please do 
> > thorsten@cartman:~/src/apache/forrest/trunk/main$ ./build.sh clean
> > thorsten@cartman:~/src/apache/forrest/trunk/main$ ./build.sh
> > before you test.
> >   
> Done,
> > Make sure that
> > forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher$ svn diff locationmap.xml 
> > returns nothing.
> >   
> Done,
> 
> Now the results :
> ============
> Example of my structure :
> 
> xdocs/
>     |-- jeux
>         |-- ultima2.xml
>         `-- ultima2/
>             `-- mondes/
>                 |-- mapx21.xml
> 
> 
> structurer/url/
>            |-- jeux/
>            |   `-- ultima2/
>            |       `-- mondes/
>            |           |-- pelt.fv
>            `-- pelt.fv
> 
> The correct behaviour should be :
> - jeux/ultima2.xml uses structurer/url/pelt.fv

To clarify, requesting "jeux/ultima2.html" should use
"structurer/url/pelt.fv"

> - jeux/ultima2/mondes/mapx21 uses structure/url/jeux/ultima2/mondes/pelt.fv
> 
> 
> dispatcherErrorStack:
>  org.xml.sax.SAXParseException: The markup in the document following the 
> root element must be well-formed.

What is the whole error?

> 
> WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/SourceExistsSelector: Error reading from source 
> 'lm://dispatcher.structurer.resourceType.document-v20': Could not 
> resolve locationmap location.

This is the sourceType action.

> 
> WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv
> 

Ok, we are requesting jeux/ultima2.html. Right?

> WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> for 
> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv]

The primary structurer for the request would have been
"jeux/ultima2.fv". This file does not exist and the calculation of the
"RecursiveDirectoryTraversalAction" found D:\duc
\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv as
responsible structurer. 

Looks good.

> WARN    (2006-07-18) 15:53.35:453   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv

This is the where the request <parameter value="{1} or {../1}"
name="request"/> does not get resolved.

Why is this request made anyway. We already found the right location. Or
is it a different one?

> WARN    (2006-07-18) 15:53.35:453   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]
> 

fallback

> ERROR   (2006-07-18) 15:53.37:000   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/DispatcherTransformer: dispatcherError: 500 - Internal 
> server error
> The contract "content-title" has thrown thrown an exception by resolving 
> raw data from "cocoon://jeux/ultima2/mondes/mapx21.title.xml".
> 

hmm, what does
http://localhost:8888/jeux/ultima2/mondes/mapx21.title.xml return?

> So here, we can see that there is a problem with the uri of the second 
> file which is jeux/ultima2/mondes/mapx21.xml

The main question that is raising in my head is: do you use
jeux/ultima2/mondes/mapx21.xml from within jeux/ultima2.fv? If so can I
see the definition?

> 
> Now, I replace the {../1} by {1} in the request - just to see :
> dispatcherErrorStack:
>  org.xml.sax.SAXParseException: The markup in the document following the 
> root element must be well-formed.
> 
> WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/SourceExistsSelector: Error reading from source 
> 'lm://dispatcher.structurer.resourceType.document-v20': Could not 
> resolve locationmap location.
> 
> WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv

This is the where the request <parameter value="{1}" name="request"/>
does not get resolved.

> WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
> for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]

Fallback.

> WARN    (2006-07-18) 16:48.38:109   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv
> 
> WARN    (2006-07-18) 16:48.38:109   [cocoon.manager] (Unknown-URI) 
> Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
> D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv 
> for 
> [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv]
> 

The primary structurer for the request would have been
"jeux/ultima2/mondes/mapx21.fv". This file does not exist and the
calculation of the "RecursiveDirectoryTraversalAction" found D:\duc
\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv as responsible structurer. 

Looks good.

> And now there is a problem with the uri of the first file which is 
> jeux/ultima2.xml

Yeah, I see. Is this one and the same request? Can you specify what you
are requesting for each log?

> I think you are going to understand :-)  since my logs are not identical 
> to yours :
>     I have [cocoon.manager] instead of [core.modules.mapper.lm]
>     and (Unknown-URI) Unknown-Thread instead of (/search.html) PoolThread-4
> 

That is not the problem but I do not understand the requests. Why
(Unknown-URI)? Can you change it to the request like (/search.html)? It
looks like there is difference in dispatching the files. 

Very weird.

We need to find the difference.

salu2
-- 
thorsten

"Together we stand, divided we fall!" 
Hey you (Pink Floyd)


Re: [jira] Commented: (FOR-893) wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten

Posted by Cyriaque Dupoirieux <Cy...@pcotech.fr>.
le 17/07/2006 16:10 Thorsten Scherler a écrit :
> El lun, 17-07-2006 a las 11:28 +0200, Cyriaque Dupoirieux escribió:
>   
>> le 17/07/2006 10:46 Thorsten Scherler a écrit :
>>     
>>> El lun, 17-07-2006 a las 01:18 -0700, Cyriaque Dupoirieux (JIRA)
>>> escribió:
>>>       
> [SNIP...]
>   

> I am not sure. This is not a dispatcher problem but more a locationmap
> one. The dispatcher transformer is coming into place later. However you
> can do something like:
> Index:
> src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java
> ===================================================================
> ---
> src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java        (revisión: 422657)
> +++
> src/java/org/apache/forrest/dispatcher/acting/RecursiveDirectoryTraversalAction.java        (copia de trabajo)
> @@ -96,6 +96,7 @@
>          this.prepare(parameters, source);
>          String uri = this.getProjectDir() + this.getRequest()
>                  + this.getProjectExtension();
> +        getLogger().warn("RecursiveDirectoryTraversalAction trying to
> use uri: "+uri);
>          Map returnMap = act(uri);
>          return returnMap;
>      }
> @@ -116,6 +117,7 @@
>              this.computeResponseURI(uri, src);
>              //src = resolver.resolveURI(uri);
>              if (this.map.containsKey("uri")) {
> +               getLogger().warn("RecursiveDirectoryTraversalAction
> found at location: "+uri);
>                  return this.map;
>              } else {
>                  return null;
>
> For debug e.g the RecursiveDirectoryTraversalAction and see what the uri
> is.
>
> You can see it with
> tail -f build/webapp/WEB-INF/logs/*.log|grep
> RecursiveDirectoryTraversalAction
>
> which should return something like:
> WARN    (2006-07-17) 16:08.49:702   [core.modules.mapper.lm]
> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> RecursiveDirectoryTraversalAction trying to use
> uri: /home/thorsten/src/x/blog/src/documentation/resources/structurer/url/search.fv
> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> RecursiveDirectoryTraversalAction trying to use
> uri: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
> WARN    (2006-07-17) 16:08.49:705   [core.modules.mapper.lm]
> (/search.html) PoolThread-4/RecursiveDirectoryTraversalAction:
> RecursiveDirectoryTraversalAction found at
> location: /home/thorsten/src/x/blog/src/documentation/content/xdocs/search.fv
>
> In any case please do 
> thorsten@cartman:~/src/apache/forrest/trunk/main$ ./build.sh clean
> thorsten@cartman:~/src/apache/forrest/trunk/main$ ./build.sh
> before you test.
>   
Done,
> Make sure that
> forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher$ svn diff locationmap.xml 
> returns nothing.
>   
Done,

Now the results :
============
Example of my structure :

xdocs/
    |-- jeux
        |-- ultima2.xml
        `-- ultima2/
            `-- mondes/
                |-- mapx21.xml


structurer/url/
           |-- jeux/
           |   `-- ultima2/
           |       `-- mondes/
           |           |-- pelt.fv
           `-- pelt.fv

The correct behaviour should be :
- jeux/ultima2.xml uses structurer/url/pelt.fv
- jeux/ultima2/mondes/mapx21 uses structure/url/jeux/ultima2/mondes/pelt.fv


dispatcherErrorStack:
 org.xml.sax.SAXParseException: The markup in the document following the 
root element must be well-formed.

WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/SourceExistsSelector: Error reading from source 
'lm://dispatcher.structurer.resourceType.document-v20': Could not 
resolve locationmap location.

WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv

WARN    (2006-07-18) 15:53.33:656   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
for 
[D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2.fv]

WARN    (2006-07-18) 15:53.35:453   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv

WARN    (2006-07-18) 15:53.35:453   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]

ERROR   (2006-07-18) 15:53.37:000   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/DispatcherTransformer: dispatcherError: 500 - Internal 
server error
The contract "content-title" has thrown thrown an exception by resolving 
raw data from "cocoon://jeux/ultima2/mondes/mapx21.title.xml".

So here, we can see that there is a problem with the uri of the second 
file which is jeux/ultima2/mondes/mapx21.xml

Now, I replace the {../1} by {1} in the request - just to see :
dispatcherErrorStack:
 org.xml.sax.SAXParseException: The markup in the document following the 
root element must be well-formed.

WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/SourceExistsSelector: Error reading from source 
'lm://dispatcher.structurer.resourceType.document-v20': Could not 
resolve locationmap location.

WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv

WARN    (2006-07-18) 16:48.36:312   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/pelt.fv 
for [D:\duc\viewSitePerso/src/documentation/resources/structurer/url/.fv]

WARN    (2006-07-18) 16:48.38:109   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: trying to use uri: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv

WARN    (2006-07-18) 16:48.38:109   [cocoon.manager] (Unknown-URI) 
Unknown-Thread/RecursiveDirectoryTraversalAction: found at location: 
D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/pelt.fv 
for 
[D:\duc\viewSitePerso/src/documentation/resources/structurer/url/jeux/ultima2/mondes/mapx21.fv]

And now there is a problem with the uri of the first file which is 
jeux/ultima2.xml

I think you are going to understand :-)  since my logs are not identical 
to yours :
    I have [cocoon.manager] instead of [core.modules.mapper.lm]
    and (Unknown-URI) Unknown-Thread instead of (/search.html) PoolThread-4

Salutations,
Cyriaque,
> salu2
>
>   
>> Salutations,
>> Cyriaque,
>>     
>>>> If I replace the {../1} by the previous {1} :
>>>>         <act type="RecursiveDirectoryTraversalAction">
>>>>           <parameter value="{1}" name="request"/>
>>>>           <parameter value="{project:theme}" name="projectFallback"/>
>>>>           <parameter value="{project:theme-ext}" name="projectExtension"/>
>>>>           <parameter value="{project:content.xdocs}" name="projectDir"/>
>>>>           <!--  xdocs  [depreciated]
>>>>             project-based theme-based = directory-based / parent-directory based (recursively) -->
>>>>           <location src="{uri}" />
>>>>         </act>
>>>>         <act type="RecursiveDirectoryTraversalAction">
>>>>           <parameter value="{../1}" name="request"/>
>>>>           <parameter value="{project:theme}" name="projectFallback"/>
>>>>           <parameter value="{project:theme-ext}" name="projectExtension"/>
>>>>           <parameter value="{project:resources}structurer/url/" name="projectDir"/>
>>>>           <!--  url
>>>>             project-based theme-based = directory-based / parent-directory based (recursively) -->
>>>>           <location src="{uri}" />
>>>>         </act>
>>>> It works again.
>>>>
>>>> I reopen the FOR...
>>>>     
>>>>         
>>> Hmm, it is hard to assist on this since it is working fine for me.
>>>
>>> Did you change the locationmap.xml or have implemented own matches in
>>> your project lm?
>>>
>>> Can somebody else test the current changes?
>>>
>>> salu2
>>>
>>>   
>>>       
>>>>> wildcard matcher such as **.xml when used in lm actions like {1} are not rewritten
>>>>> ----------------------------------------------------------------------------------
>>>>>
>>>>>                 Key: FOR-893
>>>>>                 URL: http://issues.apache.org/jira/browse/FOR-893
>>>>>             Project: Forrest
>>>>>          Issue Type: Bug
>>>>>          Components: Locationmap, Dispatcher (aka views)
>>>>>            Reporter: Thorsten Scherler
>>>>>         Attachments: lm.log.xml
>>>>>
>>>>>
>>>>> In the thread http://marc.theaimsgroup.com/?t=114682704400003&r=1&w=2 I found out the following.
>>>>> I did a debug session with the RecursiveDirectoryTraversalAction and I
>>>>> figured out that the {1} in the lm is not probably resolved (it is
>>>>> always "").
>>>>> <match pattern="resolve.structurer.**">
>>>>> ...
>>>>>  <act type="RecursiveDirectoryTraversalAction">
>>>>>   <parameter value="{1}" name="request"/>
>>>>> It seems to happen in all lm actions, I debugged the resourceTypeAction
>>>>> and the same problem can be seen.
>>>>> I attached the result of 
>>>>> svn log . -v --xml >~/src/apache/forrest/trunk/lm.log.xml
>>>>>       
>>>>>           
>>>   
>>>