forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ross Gardler <rgard...@apache.org>
Subject Re: Slide Integration
Date Thu, 02 Jun 2005 20:30:09 GMT
Tim Williams wrote:
> On 6/2/05, Ross Gardler <rgardler@apache.org> wrote:
> 
>>Tim Williams wrote:
>>
>>>Sent to dev as suggested.
>>>
>>>On 5/18/05, Ross Gardler <rgardler@apache.org> wrote:
>>>
>>>
>>>>Tim Williams wrote:
>>>>
>>>>
>>>>>Has anyone already documented how to use Slide as a backend to
>>>>>Forrest?  If not maybe some high-level pointers of where to start?
>>>>
>>>>Nobody has documented this, or to my knowledge tried it.
>>>>
>>>>You'd probably find more help on the dev list, where we will be glad to
>>>>help you. Please send your question there with a description of a use
>>>>case describing exactly how you would like the integration to work (may
>>>>seem like an obvious thing, but it gives us a common language to
>>>>communicate ides with).
>>>>
>>>>Ross
>>>
>>>
>>>I guess I could give long and short term goals/use-cases.
>>>
>>>In the short term,
>>>I'd like to simply be able to point  "project.xdocs-dir" in
>>>forrest.properties to a slide repository like:
>>>project.xdocs-dir=http://127.0.0.1:8080/slide/xdocs
>>
>>OK, I'm experimenting with this kind of integration right now. Not with
>>Slide but with Daisy. Take a look at the Daisy plugin in whiteboard.
>>
>>Currently, the location of the repository is encoded in request
>>parameters. This is *not* good.
>>
>>The problem with this approach is that a) it is difficult to write the
>>hrefs b) it is impossible to build a static site because the request
>>parameter '?' is converted to an '_' in the filename ('?' is not legal
>>in a filename)
>>
>>The solution to this problem is the locationmap work. This allows you to
>>map request patterns to a location. For example:
>>
>><match pattern="docs/**">
>>   <location href="http://127.0.0.1:8080/slide/xdocs/{1}"/>
>></match>
> 
> 
> So does input.xmap go from being a sitemap to a locationmap or does it
> just add a few elements to the sitemap doctype?  I guess I'm still not
> understanding where the locationmap matchers actually go in terms of
> the plugin.

The locationmap is not a sitemap in the same sense as a cocoon sitemap. 
It uses the same syntax because it reuses much of the code.

>>For more information see http://issues.cocoondev.org/browse/FOR-200

 From that URL you will find a link to the original discussion about 
locationmaps that includes a description of the original commit and an 
example of how to use it - see 
http://marc.theaimsgroup.com/?t=106638785400004

Things have not progressed any from that original contribution except...

>>I'm currently experimenting with the locationmap code, I have it working
>>"to an extent". But have not yet managed to get it to work at the
>>generation stage (through lack of time rather than a problem with the
>>code, I think). I will attach a patch against the current SVN tree to
>>the above issue that will enable the location map if you would like to
>>experiment with it. It would be great to have someone working with me on
>>this, you with Slide, me with Daisy (and Thorsten is looking at Lenya
>>integration).
> 
> 
> I'd like to see the location map patch.  That sounds like the way to
> go.

I should find the time tomorrow to put the patch together with a simplyu 
little demo.

>  What does "generation stage" mean though, does what I'm talking
> about fall into that particular stage?

I'll try and explain what I mean:

The original description of functionality (at 
http://marc.theaimsgroup.com/?t=106638785400004 ) only described link 
translation. Meaning that a page with an lm: psuedo protocol href was 
converted by the locationmap input-module to be a link to a specified 
location. This is similar to the site: or ext: psuedo protocols in 
Forrest. This works fine in the transformation stage. In other words, if 
you have content with:

<a href="lm:myslidedocs/file.html">...</a>

and a locationmap of:

<match pattern="myslidedocs/**">
   <locator src="http://127.0.0.1:8080/slide/xdocs/{1}"/>
</match>

the resulting content will be translated to:

<a href="http://127.0.0.1:8080/slide/xdocs/file.html"/>

This isn't quite what I want (and I think what you want). The problem is 
that the link is translated in the source, so the URL the client sees is 
the trnalsated URL. This prevents Forrest from processing the request as 
the client requests directly from the repository source.

I'd prefer to have:

<a href="myslidesdocs/file.html">...</a>

and a locationmap with:

<match patern="myslidedocs/**.xml">..</a>
   <locator src="http://127.0.0.1:8080/slide/xdocs/{1}.xml"/>
</match>

(NOTE the .xml extension as opposed to .html)

In this case Forrest will request "myslidesdoc/file.html", this will 
result in an internal request for "myslidesdoc/file.xml" through 
existing Forrest processing. The locationmap then maps this request to 
"http://127.0.0.1:8080/slide/xdocs/file.xml" which then gets processed 
by forrest and returned to the client as "myslidesdocs/file.html".

In other words, the href "myslidesdocs/file.html" remains that same URL 
in the client but actually is generated internally to Forrest from 
"http://127.0.0.1:8080/slide/xdocs/{1}.xml"

>>>In the long term,
>>>I'd like to do the same as above, but have some sort of workflow state
>>>metadata understood by both the authoring environment (Epic/Spy) and
>>>publishing engine (Forrest).  I'm thinking some fairly simple states
>>>like: New, Author, Edit, Publish and then Forrest would be able to
>>>inspect that metadata and only publish those documents with the
>>>"Publish" state.
>>
>>With the Daisy integration (and I assume Lenya) this will be possible.
>>Those systems provide full workflow control. I would be concerned about
>>duplicating their effort here in Forrest. What would be good though is
>>for us all to agree on a standard repository plugin that could be
>>configured to work with various different repository tools.
> 
> 
> No, I wasn't suggesting that part (workflow) actually be a part of
> Forrest, I just described that to give an idea of where I'd like to
> be.

OK, in that case we have the same vision.

> Epic/Spy - Authoring
> Lenya - Workflow/Site Management

I'm not sure if it is possible to separate the workflow/site management 
functionality from Lenya in this way.

Thorsten is a Lenya committer as well as  aForrest committer. He will be 
able to discuss the Lenya aspects with you. I decided not to use Lenya 
because I could find no simple way of separating the repository from the 
editing system.

> Forrest  - Publishing
> Slide - Content Repository
> 
> I haven't see Daisy yet but I'll take a look at that too.

The big advantage of Daisy is its clear separation of editing from 
repository. The disadvantage is that it is not as mature as some other 
editrs/workflow systems. Recently they have started to put effort into 
expanding the develope community. I hope this will help make the 
framework develop, in my opinion it is an excellent framework.

Whatever path we take individually (Lenya, Daisy and Slide integration) 
we should endeavour to make a single plugin for Forrest that can work 
with each of the various repositories. I'm not sure how realistic this 
is, but lets see what we can do. The locationmap, I think, will be the 
connecting point.

Ross



Mime
View raw message