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]
