Gosh... I didn't realize I was so unclear.  I'm sorry.  Let me try 
again.  Also, with some of Jim's comments, I think I now understand _my_ 
problem more clearly.

My problem is really a packaging issue, that is, in what form do I supply 
the underlying technology to a customer.  I will be selling a site 
generation system.  I will supply all the basics to bring up a site.  A 
customer would follow some install instructions, set some configuration 
options, AND write the look-and-feel for the site.  The look-and-feel 
represents the pages and the navigation between pages.

My original idea was that I would supply a war with all the underlying 
business logic, velocity, maverick, database connectivity, etc.  And the 
customer would configure it so that it looks to an external directory where 
he'll place his html, graphics, maverick.xml file.

Jim is suggesting that I supply a "build" process which takes my 
"incomplete" war, adds his pages, and then creates a "real" war which is 
then deployed.  That's not a bad idea.  On the downside, it seems harder 
for the user to go through this build process than just pointing to a 
directory tree.

I'm not even sure it is possible to do what I want, that is to have html 
content and gifs come from outside the war file...

(From your explanation, I now understand shunting, which is extremely 
powerful.  I think shunting applies to the scenario where several skins are 
known in advance and are all contained in a war.  Languages are certainly a 
good example of this.)

Dan



At 09:24 PM 2/6/02 -0800, Jeff Schnitzer wrote:
>Dan, I hate to sound daft, but even after the second round of
>explanation I'm still completely confused about what you're trying to
>do.  Care to give it a third round?  I think I would understand better
>if you gave a chronology of how a single request was serviced.
>
> > From: jim moore [mailto:[EMAIL PROTECTED]]
> >
> > This does raise the question of how to set up easily configurable
>skins in
> > maverick though. Currently I believe it would be difficult to have
> > multiple
> > skins that were configurable with a single param (i.e.
><skin>skinA</skin>
> > or
> > <skin>skinB<skin>). This is somewhat the same problem as i18n where
>you
> > want
> > to say, "if the user's language is english, use these templates. if
> > french,
> > use these other templates." Skins are similar. If the user has
>selected
> > skinA, use these templates, if they chose skinB, use these other
> > templates.
>
>"Shunting" is the mechanism to do exactly this.  You can specify a
>"mode" attribute for multiple views with the same name, like this:
>
><maverick version="2.0" default-view-type="document">
>   <modules>
>     <shunt-factory
>provider="org.infohazard.maverick.shunt.LanguageShuntFactory"/>
>   </modules>
>   <commands>
>     <command name="welcome">
>       <controller class="org.blah.Blah"/>
>       <view name="success" path="en/welcome.jsp"/>
>       <view name="success" mode="fr" path="fr/welcome.jsp"/>
>       <view name="success" mode="de" path="de/welcome.jsp"/>
>       ...
>     </command>
>   </commands>
></maverick>
>
>The LanguageShuntFactory configures shunts which pick mode based on
>Accept-Language.  The view without a mode becomes the default.  You can
>also specify a mode for a global <views> block, making it easy to define
>a separate file for the views for each language.  Take a look at the
>maverick.xml for the shunting example:
>
>http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mav/maverick/examples/shu
>nting-jsp/WEB-INF/maverick.xml?rev=1.3&content-type=text/vnd.viewcvs-mar
>kup
>
>It is also worthwhile to look at the Shunt interface:
>
>http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mav/maverick/src/java/org
>/infohazard/maverick/flow/Shunt.java?rev=1.4&content-type=text/vnd.viewc
>vs-markup
>
>and the implementation of LanguageShuntFactory (which contains
>LanguageShunt as an inner class):
>
>http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mav/maverick/src/java/org
>/infohazard/maverick/shunt/LanguageShuntFactory.java?rev=1.4&content-typ
>e=text/vnd.viewcvs-markup
>
>Note that LanguageShunt is considerably more complicated than a
>"SkinShunt" would be.  Really, a SkinShunt would be nothing more than
>this:
>
>public View getView(HttpServletRequest request) throws
>NoSuitableModeException
>{
>         String mode = request.getSession().getAttribute("whichSkin");
>
>         // Look up this mode in a hashmap
>         return (View)this.modes.get(mode);
>}
>
>Make sense?
>
>Jeff Schnitzer
>[EMAIL PROTECTED]
>
>_______________________________________________
>Mav-user mailing list
>[EMAIL PROTECTED]
>https://lists.sourceforge.net/lists/listinfo/mav-user


_______________________________________________
Mav-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mav-user

Reply via email to