>
> -----Original Message-----
> From: Upayavira [mailto:[EMAIL PROTECTED]
> Sent: vrijdag 27 juni 2003 11:51
> To: [EMAIL PROTECTED]
>
> On 27 Jun 2003 at 11:40, Unico Hommes wrote:
>
> > > If you don't want it to be a sitemap component, how else
> would you
> > > propose to do it?
> > > Somehow it needs to be under the control of the sitemap so as to
> > > exist as a part of the URI space.
> >
> > Part of the URI space could be dedicated to the publishing
> service by
> > declaring a servlet mapping for it in web.xml or if you want all of
> > the URI space in the cocoon webapp dedicated to
> CocoonServlet put it
> > in its own web context. Another possibility is that we could extend
> > CocoonServlet's capabilities and responsibilities.
>
> I prefer your later suggestion...
>
> > > > I think that the role of the sitemap and its components
> should be
> > > > more or less constrained to creating documents.
> > >
> > > Hmm. Not so sure - you've got Lucene that has a page to
> generate an
> > > index. Are there not other examples too?
> >
> > Yes a lot. But I don't like them. Lucene may be a positive
> exception
> > though.
> >
> > > The
> > > thing is, that if you create a sitemap component, you can build
> > > around the publishing service a web site for deployment.
> Imagine a
> > > site that you log onto (e.g. using the authentication framework).
> > > Then, Cocoon reads a database to find out what sites you
> are allowed
> > > to publish, and offers you a drop down list of those sites. Maybe
> > > pages need deploying in a specific sequence, so this
> sequence can be
> > > managed by the flow. And when you want a page, pages or a
> site to be
> > > generated, you click 'go', and off it goes, probably in the
> > > background, allowing you to get on with other stuff. Then
> you might
> > > have a 'status' page, based around a
> 'PublishServiceStatusGenerator'
> > > that can tell you how it's getting on. It allows the site
> designer
> > > to build a web interface to publish their site. That's
> why I would
> > > like to see it as a sitemap component, because I would
> like to use
> > > it in building sites to build sites!
> >
> > That's what I want too! But it does not require that the
> actual runner
> > be implemented as a sitemap component or executed as part of a
> > pipeline. PublishServiceStatusGenerator can still access the
> > PublishService as a component from the ServiceManager.
>
> I agree. Have a sitemap component that calls a publishService
> that runs in the background.
OK, I do see your point. It still feels like a feedback loop.
>
> > > > Great! We could eventually also supply a way to delete remote
> > > > resources when they no longer exist locally.
> > >
> > > Should be possible. If you have some understanding of the Cocoon
> > > Cache, you can probably help me get it to work.
> >
> > I was thinking more in the direction of keeping all the
> generated link
> > views during run A and comparing it during run B to the
> current ones.
> > That way non-caching pipelines work too.
>
> My 'only generate changed content' code uses the
> 'last-modified-since' functionality recently added to the
> HTTPEnvironment. You need to store locally the timestamps of
> files when you generate them, and the links that are held
> within the page (so that you can follow them when the page
> doesn't need generating).
If the remote files are read-only, then you could also check the
last-modified of the remote file. But probably your solution is faster
because it doesn't require an additional network call.
> The code is all there, but for some
> reason Cocoon isn't calling my setResponseNotModified(),
> which it should, and I haven't had time to check out why. As
> to deleting, you can just check if a file is in your store
> that wasn't spidered this time, and thus delete it.
Yep.
>
> > > Oh, I'm in the process of reworking Main.java and the
> bean to add a
> > > BeanListener interface. That means that the bean does not do any
> > > outputting to System.out. It just calls methods on the Listener
> > > interface - the bean caller needs to register a listener with the
> > > bean. I've moved the broken link reporting into Main, so that the
> > > bean simply reports a broken link, leaving it to the user
> to decide
> > > exactly what should happen when a broken link is found.
> Here's the
> > > interface as it is at the moment:
> > >
> > > public interface BeanListener {
> > > public void pageGenerated(String uri, int linksInPage, int
> > > pagesRemaining);
> > > public void messageGenerated(String msg);
> > > public void warningGenerated(String uri, String warning);
> > > public void brokenLinkFound(String uri, String message); }
> >
> > Ah good, this also works towards making CocoonBean thread
> safe. I like
> > it.
>
> I'm glad. It doesn't yet work, but I'll commit it when it does.
>
> > > I look forward to your initialisation patch.
> >
> > It may take some time.
>
> That's fine, my stuff may well take time too.
Take your time. I am in multi-tasking mode myself these days. Come to
think of it, ever since I decided to be a programmer :-/
Unico