Return-Path: Delivered-To: apmail-forrest-dev-archive@www.apache.org Received: (qmail 31617 invoked from network); 30 Oct 2004 04:18:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 30 Oct 2004 04:18:40 -0000 Received: (qmail 47654 invoked by uid 500); 30 Oct 2004 04:18:39 -0000 Delivered-To: apmail-forrest-dev-archive@forrest.apache.org Received: (qmail 47610 invoked by uid 500); 30 Oct 2004 04:18:39 -0000 Mailing-List: contact dev-help@forrest.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@forrest.apache.org Delivered-To: mailing list dev@forrest.apache.org Received: (qmail 47597 invoked by uid 99); 30 Oct 2004 04:18:39 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from [65.77.211.93] (HELO indexgeo.net) (65.77.211.93) by apache.org (qpsmtpd/0.28) with ESMTP; Fri, 29 Oct 2004 21:18:38 -0700 Received: from [192.168.1.100] (static-109.227.240.220.dsl.comindico.com.au [220.240.227.109]) (authenticated bits=0) by www2.kc.aoindustries.com (8.12.9-20030917/8.12.9) with ESMTP id i9U4IYtR002878 for ; Fri, 29 Oct 2004 23:18:35 -0500 Subject: Re: Solving matching problems caused by plugins From: David Crossley To: dev@forrest.apache.org In-Reply-To: <4182AC7D.9070504@apache.org> References: <41819463.8020504@apache.org> <41819763.5010503@apache.org> <41819D39.3050207@apache.org> <1099017958.22790.34154.camel@ighp> <41824383.7090703@apache.org> <41828B38.7030100@apache.org> <4182A2F0.7040702@brondsema.net> <4182AC7D.9070504@apache.org> Content-Type: text/plain Organization: Message-Id: <1099109862.22790.42100.camel@ighp> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 30 Oct 2004 14:17:44 +1000 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Ross Gardler wrote: > Dave Brondsema wrote: > > Ross Gardler wrote: > > I think that's the right idea. Lots of stuff can be moved to be a > > plugin. For example, changes/todo.html as a plugin would make that > > functionality optional and so people can use those reserveds names. > > > > I haven't tried yet.. does the plugin location allow for input formats > > and output formats? > > I'm starting to think that we need a more flexible plugin system that > would allow insertion at different points in the generation process. > > For example, IMSManifest is currently broken because of having to move > the plugin sitemap mount to *after* the generation of things like > site.xml, faq.xml etc. > > Your question about input and output formats is another point, output > formats would need to be mounted in a different location from the input > formats (which is all I have worked with to date). > > I was thinking of moving to a system where plugins can provide three > sitemaps: > > preprocessing (comes before *everything* in core - such sitemaps would > have to be very careful to only match what they need, i.e. IMSManifest > would match abs-linkmap, site.xml. tabs.xml etc.) Already the project sitemap.xmap must be careful to only match what they need. So where does their project sitemap fit into this? > input formats (these would be placed where the current mount is, i.e. > just before the default **.xml match in forrest.xmap) Would a project sitemap still be able to match those if they needed to? [snip] > > We will also have to document a "plugin contract" of what pipeline parts > > will be made available and supported. I think we have need to work > > through some more real examples of plugins before we fully understand > > their power and limitations. Then we can best write the contract. > > I agree. I will, over the coming weeks move all none core functionality > from core into a plugin. That should give us a fair number of use cases > to at least draft the contract from. > > The question at the moment is where to *stop* moving stuff into plugins. Bit-by-bit until we can understand the core sitemaps again. If we start to duplicate functionality in each plugin, then it will become apparent where to stop. > I'm starting to think that Forrest core should follow the Eclipse model > where the isn't any real functionality in core, just a solid framework > onto which to build the required functionality. That sounds sensible. > Our releases would then become (for example) How we do releases and what they contain is something that we need to carefully consider. Let us first get our plugin framework settled a bit. > - Forrest for Software Projects (core + site.xml + HTML + PDF + JavaDoc) > > - Forrest for Learning Objects (core + IMSManifest + OpenOffice + Latex > +PDF) > > - Forrest for Technical Authors (core + site.xml + docbook + PDF) > > Etc. > > I may be getting a little ahead of myself though ;-) No, i think that you are correct to look ahead. -- David Crossley