Il giorno 06/gen/05, alle 01:54, Daniel Fagerstrom ha scritto:
>
> The requested resource will often be based on some content or
> combination of content that we can access from Cocoon. The content can
> be a file, data in a db, result from a business object etc. Let us
> assume that it resides in some kind of content repository. Now if we
> think about it, isn't it more natural to ask the content, that we are
> going to use, about its propertiies like type, format, status, access
> rights, etc, than to encode it in the URL? This properties can be
> encoded in the file name, in metadata in some property file, within
> the file, in a DB etc. Now instead of having the rule:
>
> *.x.y.z ==> XYZPipeline
>
> we have
>
> * where repository:{1} have properites {x, y, z} ==> XYZPipeline
>
> or
>
> * where repository:{1}.x.y.z exists ==> XYZPipeline
>
> We get the right pipeline by querying the repository instead of
> encoding it in the URL. A further advantage is that the rule becomes
> "listable" as the "where" clause in the match expresses what are the
> allowed values for the wildcard.
Unless I misinterpret what you mean, we already can do this:
<map:match pattern="*">
<map:call function="fun">
<map:parameter name="par" value="{1}"/>
</map:call>
</map:match>
function fun() {
var entity = repo.query("select * from entities where id = " +
cocoon.parameters.par + " and {x, y, z}");
cocoon.sendPage("views/XYZPipeline", { entity : entity });
}
<map:match pattern="XYZPipeline">
<map:generate type="jx" src="xyz.jx.xml"/>
...
</map:match>
Apart from the obviously contrived example, isn't the Flowscript just
what we need to "get the right pipeline by querying the repository"?
> I would propose to go even further, in the "real" site map it should
> only be allowed to call VPC pipelines, no pipeline construction is
> allowed, that should be done in the component area.
In my sitemaps, public pipelines contain almost only <map:call> and
<map:read> (for static resources) elements. All "classical"
generator-transformer-serializer pipelines go into an "internal-only"
pipeline that can be called from flowscripts only.
Admittedly, this is fine for webapps, and maybe not so much for
publishing-oriented websites. But what I want to point out is that your
otherwise very well thought-out RT is incomplete if it doesn't take
Flowscript in consideration, IMHO.
Ugo
--
Ugo Cei - http://beblogging.com/blojsom/blog/
|