Original post: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=112134&postdays=0&postorder=asc&start=0
Background: I have developed a means to store various resources required by a Seam application inside JAR files (XHTML files, message bundles, images and stylesheets). These files are then given a precedence (via a properties file contained inside). If an archive with a higher precedence is loaded its resources replace those with a lower precedence and so on. This allows us to provide a means of customising a concretely implemented project.
I need a way of adding pageflow to these archives. The scenario would be that we have a rigidly defined page flow in a fully functional application. We then have a client who wants to customise say, a 3 step process to add a new step. We then develop this additional page and add it to the custom archive. We will then also need a way of integrating this page into the existing page flow, but how?
Option 1: Define an (optional) subprocess in the application and then place this new subprocess in the customised archive. The limitations here are that I do not believe you can define an "optional" subprocess (at least not by my findings). The other limitation is that the subprocess has no way of doing things such as allowing "back" buttons - because it cannot do anything in relation to the parent process. Simmilarly, say we had implemented step 2.1 and step 3 was implemented in the application - we couldn't easily have step 3's back button work either.
Option 2: Define a JPDL pageflow file per logical complete operation. In the customised archive, copy the pageflow from the application and manually add the page flow for the new page. Then because the install precedence is higher in the customised archive, it will pickup the newly created pageflow.
Option 3: Define a JPDL pageflow file per logical complete operation. Implement some sort of "smart merge" to simply merge pageflow file. This would probably require the introduction of some new elements to look for in the XML in order to determine how the merge should be performed. So, in the application you have the complete page flow, in the customised pageflow file you only add things you wish to add or change.
I am posting this again because its been ages since my original post and I didn't really know what I wanted as much as I do now.. plus, I figured that the technology may well have moved on since then and now allowed for what I am after?