I guess I was hinting at the possibility that your different
components aren't defining different behavior so much as they are
defining different resources. (ie property keys / images / etc) If the
actual behavior is different then please ignore...If it's only the
resources that change then I think my observation would still stand..

Though I was speaking from a T4 point of view (not wanting anyone to
think I knew for sure when I don't), from what I've read of T5
everything is much the same in terms of possible functionality /
flexibility with internal tapestry services. (only better / easier /
etc of course)

On 1/29/07, Mark Stang <[EMAIL PROTECTED]> wrote:
Jesse,
The problem wasn't the internals it was how a "library" was defined in the 
.application file.

I have a component that is say a Support component.  It describes the running Server.  The 
information in that Component is not just straight HTML, it is other Tapestry Components.  For 
instance, we put a copyright on the bottom.  For our product it says our company name.  For the OEM 
version, it says something else.  Now I could go through my entire application and put if 
"if/else" where ever there is a difference, but how do I go back and maintain them in the 
future?  Tapestry is based on Components!  Or what if I want to add another OEM partner, do I now 
have to go back and put in if/else/else?  Tapestry is based on Components!  So, I create two 
components, how do I tell it which one to use?  I am not going to put in if/else all I should have 
to do is use a different library.  How do I do that?  The only way is to keep the name the same but 
have a different location for the .library an d its pieces.  Which means I have to either change 
the .application file or I have to put out a "bogus" .library file that gets replaced in 
a build.

What I would like to see happen in T5 is for me not to have to specify in the .application file the location 
of the .libraries, I would like to have it read each .jar and if it has a .library file, then it is a 
library.  The problem there is how do we determine the "name" of the library?  For instance, I use 
"@branded:PingLogo", how does it associate "branded" with a particular .library file?  
Either use the name of the .library file or come up with some mechanism for it to determine it automatically. 
 I don't know, but having to hard-code it in a .application file caused me a lot of grief.  We know create a 
.library file for each branding and then parse it to generate a .library that has the correct path to the 
components.

I have a working version based on T3.  Converting to T4 from T3 and then to T5 
is to much work.  Therefore, we will either switch to T5 if I can make it work, 
or abandon it and move to something else.

regards,

Nark


Mark J. Stang
Senior Engineer/Architect
office: +1 303.468.2900
mobile: +1 303.507.2833
Ping Identity



-----Original Message-----
From: Jesse Kuhnert [mailto:[EMAIL PROTECTED]
Sent: Mon 1/29/2007 6:15 PM
To: Tapestry development
Subject: Re: T5: Brandable

Looking at it from a t4 viewpoint of services / etc I can't imagine
this isn't do-able in some way other than having to generate
.application files and drop in jars. (unless the jars only contain
resources)

Of course you and Howard know more, just throwing in the idea that you
have a ~lot~ more access to how the internal works than you did in
t3..

On 1/29/07, Mark Stang <[EMAIL PROTECTED]> wrote:
> Howard,
> We ship two versions of our product.  The first is a Ping Identity version, says Ping 
Identity/PingFederate all over it.  The other version is "branded" for our OEM 
customer to re-sell.  In T3, in order to do this I have two jar files to implement this.  
Each is a Tapestry Library.
>
> When I have a "branded" component I do something like this:
>
>    <span jwcid="@branded:HeaderLogo"/>
>
> However, I have had to create hacks to work-around issues like the 
.application file.  I have a Library refence:
>
> <library id="branded" 
specification-path="/com/pingidentity/component/branded/Branded.library"/>
>
> And then I generate a "Branded.library" for each release and copy to the 
above location.
>
> 1 <!DOCTYPE library-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 
3.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd";><library-specification>
>  2   <library id="common" 
specification-path="/com/pingidentity/component/common/PingCommon.library"/>
>  3   <component-type type="About" specification-path="ping/About.jwc"/>
>  4   <component-type type="Licensing" 
specification-path="ping/Licensing.jwc"/>
>  5   <component-type type="HeaderLogo" 
specification-path="ping/HeaderLogo.jwc"/>
>  6   <component-type type="LoginHeader" 
specification-path="ping/LoginHeader.jwc"/>
>  7   <component-type type="Support" specification-path="ping/Support.jwc"/>
>  8   <component-type type="Welcome" specification-path="ping/Welcome.jwc"/>
>  9   <component-type type="AdditionalResources" 
specification-path="ping/AdditionalResources.jwc"/>
> 10   <component-type type="PingLogo" specification-path="ping/PingLogo.jwc"/>
> 11   <component-type type="ConnectionLimit" 
specification-path="ping/ConnectionLimit.jwc"/>
> 12   <component-type type="AdditionalAdapters" 
specification-path="ping/AdditionalAdapters.jwc"/>
> 13 </library-specification>
>
>
> What I would like in T5 is some support for being able to "brand" components.
>
> thanks,
>
> Mark
>
> Mark J. Stang
> Senior Engineer/Architect
> office: +1 303.468.2900
> mobile: +1 303.507.2833
> Ping Identity
>
>
>


--
Jesse Kuhnert
Tapestry/Dojo team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






--
Jesse Kuhnert
Tapestry/Dojo team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to