On Sat, 2005-08-27 at 23:41 -0400, Tim Williams wrote: > > I forgot: > > <locationmap xmlns="http://apache.org/forrest/locationmap/1.0"> > > <components> > > <matchers default="lm"> > > <matcher name="lm" > > src="org.apache.forrest.locationmap.WildcardLocationMapHintMatcher"/> > > </matchers> > > <actions default="RecursiveDirectoryTraversalAction"> > > <action name="RecursiveDirectoryTraversalAction" > > src="org.apache.forrest.plugin.internal.view.acting.RecursiveDirectoryTraversalAction"/> > > </actions> > > <selectors default="exists"> > > <selector name="exists" > > src="org.apache.forrest.sourceexists.SourceExistsSelector" /> > > </selectors> > > </components> > > <locator> > > <match pattern="views/**"> > > <select type="exists"> > > <!-- File-based --> > > <location src="{1}{project:theme-ext}" /> > > <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"/> > > <!-- Directory-based / Parent-directory based (recursively) > > --> > > <location src="{uri}" /> > > </act> > > <!-- Theme based --> > > <location > > src="{defaults:view-themes}/{project:theme}{project:theme-ext}" /> > > <!-- Application Default --> > > <location > > src="{defaults:view-themes}/{defaults:theme}{defaults:theme-ext}" /> > > </select> > > </match> > > </locator> > > </locationmap> > > Out of quick curiousity, have you taken the 'act' out of this and seen > if the "exists" selector will work against the "location"'s alone?
Yes, i did this but no success. Then I reduced till: <locationmap xmlns="http://apache.org/forrest/locationmap/1.0"> <components> <matchers default="lm"> <matcher name="lm" src="org.apache.forrest.locationmap.WildcardLocationMapHintMatcher"/> </matchers> <selectors default="exists"> <selector name="exists" src="org.apache.forrest.sourceexists.SourceExistsSelector" /> </selectors> </components> <locator> <match pattern="views/**"> <select type="exists"> <location src="{defaults:view-themes}/{defaults:theme}{defaults:theme-ext}" /> </select> </match> </locator> </locationmap> and it worked. That made me think about my changes. I switched the order how I defined in the lm. From: -actions -selectors to: -selectors -actions But I got the old error. I think it is in the ActNode.java that I just checked in. > That might allow us to narrow it down. I'm going to have to read up > on actions as I think they're subtley different than other sitemap > components. > It seems to me that the ActNode is overriding the .m_manager instead of extending it. Another thing could be the LocationMap. The action is working like I described in the other thread. They send back a map or null. If an action returns null then the inner children will be ignored (not executed). If they return a Map the values of the map can be directly accessed in the sitemap by {key}. Have a quick look into the RecursiveDirectoryTraversalAction then you know how action work. You will understand directly. > I've admitted before but perhaps not to you -- I'm not a 'Cocooner' so > it takes me some time to study up on each aspect of cocoon-related > things. jeje, me too, but you know somethings about the lm. ;-) I reckon I made some mistakes in the Actnode that you may spot right on. :) > This gives me reason to go deep on Actions but I'm just > warning that you may well find it before me. > --tim :) Cheers again for your help. :) salu2 -- thorsten "Together we stand, divided we fall!" Hey you (Pink Floyd)