Thanks for all the responses. I've started playing with Tiles and it actually looks like it will get me most of the way towards where I want to be. With tiles I can just use svn externals to import into the subprojects the JSPs from base page and copy the tiles definition file and change it to point to /WEB-INF/base for all JSPs and resources that aren't custom.

Rich

Dave Brondsema wrote:

If anyone is interested in this sort of "overlay" using facelets, see
https://facelets.dev.java.net/servlets/ReadMsg?list=users&msgNo=546 and
others in that thread.

Dave Brondsema wrote:
Without facelets, I think you'd need to extend myfaces' view handler
(org.apache.myfaces.application.jsp.JspViewHandlerImpl) and specify to
use that in faces-config.xml   In your custom view handler, you'd have
to load the file from the base app jar and feed the content into some
protected method of JspViewHandlerImpl.  If this is possible at all, I
think that's the basic idea of how you'd do it.

I'm looking into something very similar and am now pursing facelets for
other reasons (http://www.onjava.com/pub/a/onjava/2004/06/09/jsf.html).
I think for facelets it would be different; I'm just getting into this
issue today.  It seems that the facelets' view handler
(com.sun.facelets.FaceletViewHandler) uses a FaceletFactory, in which we
could override the getFacelet method.

In all these cases, I'm assuming that we'd use a special view-id (e.g.
"/the-parent/page3") which our custom code would resolve to pull from
the jar file.

Richard Wallace wrote:

I was wondering if maybe Tiles could help me out here.  I looked into it
but I'm not 100% sure how it would work.  I mean, optimally, the JSPs
and other resources from the base app would be bundled in a jar.  Tiles
would look in the normal location for the JSP file, so
$CATALINA_HOME/webapps/mywebapp/ and then look on the classpath for the
resource.  From what I saw when I was looking at Tiles, it didn't say
anything about being able to do anything like this.  Maybe someone can
fill me in or point me in the right direction on where to look for this?

Thanks,
Rich

Mike Kienenberger wrote:


Have you looked into some kind of templating layer such as using
facelets or Tiles?

You'd have the configurable aspects as separate resources.

On 9/6/05, Richard Wallace <[EMAIL PROTECTED]> wrote:



Hey everyone,

I've got an interesting question that came up while working on my last
project that I'm hoping someone has an answer to.  Basically, the
situation is that there is a base webapp that has all the basic features
of the application.  But, we plan on licensing it to clients and do some
customization for them, like custom user registration system, custom
skinning, etc.  The thing is that most of the JSPs and other resources
from the base webapp can remain the same but a few will need to change
(logos, css, etc.).

Right now we don't have a good way of doing this other than to copy ALL
the JSPs over from the base into the sub-projects and modify only those
that need it.  The problem we're running into is that adding features to
the base webapp and propagating them to the sub-projects is quickly
becoming a major PITA.

What I was thinking was that it would be nice if there was a way to do
something like an "overlay" of the webapp.  So that the base webapp
would be unrolled first and then the sub-projects webapp would be rolled
out over top of that replacing any files that were modified and keeping
anything that wasn't.  That way we would only have to maintain JSPs and
resources in the sub-project that are specific to that clients
customizations.

Is there anything out there that solves this problem already?  Have
others run into this and what have you done?  Any input would be
appreciated.

Thanks.

Rich







Reply via email to