jsr344-experts@javaserverfaces-spec-public.java.net

[jsr344-experts] [971-Multi-Templating] Terms and Scope

From: Edward Burns <edward.burns_at_oracle.com>
Date: Fri, 3 Aug 2012 14:43:05 -0700

>>>>> On Thu, 24 May 2012 11:01:26 -0700, Edward Burns <edward.burns_at_oracle.com> said:

EB> While the discussion about passthrough attributes (including data-*
EB> attributes) continues, I'd like to get discussion started on 971-Multi
EB> Templating. Here's the commit log for a commit I did on Tuesday. Please
EB> take a look and comment.

>>>>> On Sat, 26 May 2012 15:34:38 +0200, Frank Caputo <frank_at_frankcaputo.de> said:

FC> I think the spec needs a more generic solution.

>>>>> On Sat, 23 Jun 2012 17:15:10 +0200, Frank Caputo <frank_at_frankcaputo.de> said:

FC> since there are no followups on my mail I'd like to explain my
FC> concerns:

>>>>> On Mon, 25 Jun 2012 19:28:14 +0200, Frank Caputo <frank_at_frankcaputo.de> said:

FC> I'd like to have skinning, which could form the basis for multi-tenancy.

Hello Frank,

I'm trying to get this one rolling again too. Your mails from 23 and 25
June both mention the terms "skinning", "multi-tenancy", and
"multi-templating". These are three different things and it's important
that we get the terms straight.

"multi-tenancy"

From the perspective of JSF, I've been looking at multi-tenancy as a
capability we put into the hands of developers building on top of JSF.
I want to make it possible for people to build an app where per-tenant
customizations can be made at deployment time. Mult-tenancy intersects
with multi-templating only so much as multi-templating makes it possible
to build software where the template actually used can be decided at
deployment time, for example. That said, I'd really like to leave
multi-tenancy out of the discussion and just keep it as a cross-cutting
concern that we validate from time to time.

Now, we come to "skinning" and "multi-templating". I've been looking at
these as two different things, but I'm concerned it might be harmful to
look at them that way. There are areas of overlap between the two
concepts. In any case, here's how I see it.

Skinning is all about the "look" of the entire app. An app can have
only one skin. A skin applies to the entire app and has to do with
colors, fonts, rounded corners, images and overall appearance. Skins
say how things look, but they don't say where they should go. For
example, a skin might make it so the top level menu has a blue
background with black text in an Arial-looking font, but it doesn't say
if the menu should be on the top, the left, or the right of the view.

Multi-templating is about the arrangement of the things within the app.
It *does* say where the menu should go. An app can have any number of
multi-templates operating within it, some of which only apply when the
user is navigating a certain section of the app. I'm imagining a system
where there can be a root multi-template, and any number of sub
multi-templates.

Question: Does it make sense to continue to separate the concepts of
skinning and multi-templating, or should we just go ahead and declare
right now that multi-templating is a super-set of skinning and stop
talking about skinning altogether, just framing the discussion in terms
of multi-templating?

Ed

-- 
| edward.burns_at_oracle.com | office: +1 407 458 0017
| homepage:               | http://ridingthecrest.com/