I want to be very, very careful about moving anything out of
.internal.  We all hate duplication of effort and copy-and-paste, but
Tapestry is a framework, not a toolkit. As you may have noticed,
Tapestry (and myself, personally) gets very banged up on the backwards
compatibility front ... and the use of .internal. packages is part of
the solution to those issues.

Every time something (an interface or, far worse, an implementation)
moves out from .internal. to the public packages, it then becomes an
increased maintenance burden. You may have noticed new interfaces
named things like Module2 ... in most cases, an interface is never
allowed to change and you jump through hoops defining a new interface
that extends the old one and adds new APIs.  This is the preferred
approach for any interface that user code will *implement*, though
I've personally taken shortcuts (adding new methods to an interface)
if that interface is merely referenced (but not implemented) by user
code.

I would prefer in most cases to provide a simple, public facade around
the internal services, and to provide other hooks that continue to
allow the internals to evolve unhindered by these backwards
compatibility issues.

On Thu, Oct 22, 2009 at 2:59 AM, Massimo Lusetti <[email protected]> wrote:
> Hi everyone,
>  I got a feel that the various implementations and utilities around
> the (great) org.apache.tapestry5.ioc.Resource API are almost confined
> in the internal package structure which cause pain to implementators
> or extenders.
>
> All the implementation provided by the framework are internal (one of
> them is an abstract one), other utilities like LocalizedNameGenerator
> are there too so I would like to start a discussion on opening a bit
> the whole bunch of stuff around it.
>
> What do you think?
>
> Cheers
> --
> Massimo
> http://meridio.blogspot.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to