forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ross Gardler <rgard...@apache.org>
Subject Re: Wizard to create a New Site
Date Thu, 28 Jul 2005 09:47:24 GMT
Diwaker Gupta wrote:
> On Wednesday 27 July 2005 5:22 pm, Anil Ramnanan wrote:
> 
>>I am moving on to the Wizard to create a new Forrest Site. Currently,
>>the wizard does the following:
> 
> 
> I think we should expedite the discussion on the new Forrest configuration 
> system, so that Anil can put in efforts once into the right place.

+1, but that means someone from Apachecon needs to type up what was 
discussed. This takes time, most of us are catching up with other 
backlog stuff from a week or so away. I'm nearly done with my notes, but 
please be patient.

>>- Enter the name of the site
>>- Choose if you want forrest:views activated
> 
> 
> If views are enabled, then depending on what contracts are present, the user 
> might also want to specify things such as the branding-tagline

That stuff is relevant even if we don't have views active.

Furthermore views are a moving target and the config files are not 
correctly defined yet. I am therefore -1 on doing config stuff for views.

Anil has scheduled a views wizard for later in, we can leverage this 
work then (it's easy to use pages from one Eclipse wizard in another one 
so there will be minimal duplication of effort).

>>- Choose the plugins that you will be using for that site
> 
> 
> I think we are going to run into this problem again and again unless we 
> finalize a uniform architecture for configuration. For instance, some plugins 
> might become *necessary* simply because the view/template uses their 
> functionality (consider the pdf-link contract, for instance). Should we leave 
> it upto the user to pick up the right set? Or should we introduce some notion 
> of dependencies between contracts and plugins?

There are currently no dependencies between released plugins, so this is 
not an issue.

Forrest:views are introducing the need for these dependencies but 
forrest:views are in the whiteboard and so I believe it is acceptable to 
rely on the user to define which plugins are required at this stage.

Besides it is not the presence of forrest:views that cause individual 
plugins to be required, it is the presence of a forrest:contract within 
a forest:view. More on this below.

>>What else is needed when setting up a new site ? I was thinking of the
>>following:
>>
>>- Set the project and group names for the project
>>- Choose to enable links such as PDF, POD etc
>>- Set Copyright statement and feedback link.
> 
> 
> All this seems to in line with the current skinconf.xml, but in conflict with 
> the design of views. Hmm.. I'm not thinking very clearly now, let me get back 
> to this in a bit :-)

As I mention above, I propose Anil builds a wizard that configures the 
skinconf.xml file with the generic stuff, like project name, group name 
etc. Since, all this information is used in the default forrest:view as 
well. All that will need to change to make it work with forrest:views is 
the place we put the config information.

Furthermore, the wizard should ask the questions such as include PDF, 
POD etc. before the selection of plugins. This will enable the wizard to 
automatically select the required plugins, whilst allowing the user to 
add additional plugins later in the wizard.

I already wrote a set of ANT tasks that allow for question/response 
seeding of a new project so that Anil can do this (with skinconf.xml) 
quickly and easily, and in a way that will scale to forrest:views.

Anil, I will, in around 20 minutes, commit this new code, watch for the 
commit messages. There will be basic documentation added as well. It is 
not complete, in that it does not allow configuration of *all* the stuff 
like PDF, POD etc. but there are plenty of examples of how to do this. 
In your suggested list there are some things that are additional to what 
I have done in the demo ANT target so you can at least add the stuff you 
mention.

So how do you build the wizard so that it scales well for forrest:views?

In my view the questions asked must be defined in an external 
configuration file. This file will be read by the system that builds the 
questions and answers and will describe what has to be done with the 
information provided. In the first instance this file will look 
something like this:

<siteConfigDialog>

   <field name="groupName" type="text" required="true"
      tag="groupName"
      description="The name of the Group this site belongs to."/>

   <field name="projectName" type="text" required="true"
      tag="projectName"
      description="The name of the Group this site belongs to."/>

   <field name="pdfLink" type="boolean" default="false"
      tag="pdfLink"
      description="Create a link to PDF pages"
      requiredPlugins="org.apache.forrest.plugin.output.PDF"/>

...

</siteConfigDialog>

This will be used to generate the fields in the wizard. Note that this 
file defines which plugins are required if the option is selected. The 
@tag is used to populate the ant properties for the substitution in the 
new ant task I have created. This later part should make sense once you 
see my commit, if not you know where to ask.

When we move to forrest:views this file will be generated from the 
contract definition. The responses will then be used to create the 
default *.fv file. This part of the wizard can then be reused in the 
forrest:view generator wizard.

In other words, to use the same system with forrest:views will require 
some new code, but will not require extensive changes to the existing 
code. If this people agree this is a sensible approach it means Anil can 
get on with it without waiting for the forrest:views config language to 
stabalise.

Ross

Mime
View raw message