Topic: XHTML2 core and Jira cleanup =================================== Scribe: Diwaker Gupta DISCLAIMER: What follows is my understanding of the IRC logs. If you feel I have mis-interpreted something, do help me improve this document. This summary is by no means complete, please refer to the logs for full details. Interesting summary at: http://casa.che-che.com/~bot/forrest/ It was a new experience for a lot of people and generally enjoyable for all I hope. Unfortunately I could not participate actively due to other engagements. Ross skipped pleasantries and created an internal plugin to start the work on XHTML2. As a first milestone, the goal was to use Gav's sample XHTML2 and convert that to HTML using the xhtml2 plugin. Cheche started the bot and Ferdinand can tell us the funny incident involving the bot. Nicola expressed concern that despite having all the pieces of the puzzle (locationmap, views, xhtml2) we are having a hard time putting things together. He boldly ventured to suggest that perhaps we should rewrite the pipeline(s) from scratch. Other devs present shared similar thoughts. The general feeling was that the move to XHTML2 should be taken as an opportunity to consolidate our code base -- use locationmap as much as possible, remove duplicated code, remove unused code, refactor where necessary and so on. Directory Structure and Configuration ------------------------------------- Discussion regarding the directory structure surfaced briefly, but there was no consensus. It is an important issue that needs a little more discussion, that will perhaps be taken up in another FT (ForrestTuesday) or hopefully even earlier. This has been discussed earlier on the dev list: http://www.mail-archive.com/dev@forrest.apache.org/msg00372.html Ferdinand suggested the following layout: my-project/ configuration/ forrest.properties skinconfiguration.xml sitestructure.xml tabs.xml content/ status.xml ** all other content Some devs expressed concern over the disruption the new layout will bring, and whether there was really a "need" for a new layout. Eventually the discussion just died out. IIUC, the bottomline is that we do need a layout change at some point of time; it just didn't happen today. Pipeline stages --------------- Thorsten started a discussion on being able to request any stage of the pipeline by itself. Cheche also gave some inputs on this. At some point the discussion digressed to talk about naming (index.tab vs. index.nav.xml) and other issues (site.xml is data or meta-data; role of editors and content producers etc). I'm not sure if any concrete conlusion/decision came out of this discussion. Later on Ross and Tim got back to this discussion. Ross tossed the idea of using Cocoon Views (not to be confused with forrest:views) as an alternate mechanism for achieving the same goals. Getting started on XHTML2 ------------------------- People got off to a start after a few initial hiccups. There were some issues with namespace resolution; an initial stylesheet to convert XHTML2 to HTML was picked up from etherealwake.com for boot strapping (thanks Google!) which didn't seem to work all that well (lots of problems due to namespaces and the template not matching anything). David has been working on a relaxng schema for XHTML2 and validation using Cocoon. Thorsten hit a bug with 'src' attribute on some Actions in LocationMap (I really don't understand what this all means, just trying to hash stuff out of the logs) and Tim committed a partial fix for it; meanwhile Ross continued work on the pipelines. Location Resolution (thanks Tim for these notes!) ------------------------------------------------- As a part of the making deeper use of Locationmaps in the core Sitemaps with a goal of letting locationmaps do all location resolution and letting sitemaps stick to the pipeline processing. For those that are familiar with name resolution servers or the Handles Service, it might be easier to think of the locationmap as a name resolution module or sort of a handle resolution module in that it accepts "names" or whatever you desire to call these "hints" and returns the location. The thought is that by using file name "looking" hints it disguises what locationmaps are really doing for us. By using URN-style names, we are truly disassociating the name/hint form the physical location. For example, here is a locationmap entry based purely on filename: and now below is that same entry using a "name" style. One implies a certain physical location where as the one below is truly a name that needs to be resolved to a physical location. The format is essentially: resource-type(dot)transform-type(dot)from-format(dot)to-format resource-type(dot)type(dot)name Examples of these two: transform.xslt.xthml2.html graphic.png.project-logo Views: naming and plugins ------------------------- This came across multiple times in the discussion. There is a *strong* need to set down (and stick with) a naming convention for views and related concepts. Further, we also need to streamline views and reduce the number of plugins involved. Ideally, enabling views should atmost use one or two plugins. Core functionality ------------------ There was some discussion on what should go into the core and what should be out of it. This has come up on the dev list as well before. IIRC, moving forward with this plugin architecture it was envisaged that Forrest Core should only provide the baseline infrastructure (outputting the internal format and providing a plugin framework) -- all of the remaining functionality should be split between input and output plugins. Continuing this theme, moving forward, without *any* plugins, Forrest should just output the XHTML2 subset that is our intermediate formats. The output visible to end users (XHTML, PDF, Text, Voice) *should* go into output plugins. Things to do for XHTML2 ----------------------- o locationmaps not working in structurer.xmap o templates: *.ft not being picked up o theming/navigation not being done o templates are in the wrong place o views should be fully configurable by the project (see patch to forrest-xcore.conf below. This *should not* be needed) Diff to make the internal plugin work ------------------------------------- Index: webapp/WEB-INF/xconf/forrest-core.xconf =================================================================== --- webapp/WEB-INF/xconf/forrest-core.xconf (revision 279235) +++ webapp/WEB-INF/xconf/forrest-core.xconf (working copy) @@ -130,8 +130,10 @@ @forrest.home@/whiteboard/plugins @forrest.home@/build/plugins @context.home@/locationmap.xml - @forrest.home@/build/plugins/org.apache.forrest.plugin.internal.view - @forrest.home@/build/plugins/org.apache.forrest.plugin.internal.view/resources/views + @forrest.home@/build/plugins/org.apache.forrest.plugin.internal.xhtml2 + @forrest.home@/build/plugins/org.apache.forrest.plugin.internal.xhtml2/resources/views + + .fv default