Stephen McConnell wrote:
Farr, Aaron wrote:
Avaloners,
There has been some controversy about the status of framework documentation under the new site. I'm hoping to clarify everything in this email without starting any flame-wars.
:-)
Well - let's qualify controversy - Leo posted a interesting message to the PMC with a veto with respect to the current documentation concerning component incarnation. Leo also included a set of technical claims that I happen to disagree with. I've asked for clarification of the validity of Leo's veto on the PMC list and pending further information I'm not planning on taking any action with respect to Leo's veto. I've also asked Leo to post his issue directly to the dev list where technical discussion belongs.
Both requests remain open.
I have read it, and I do happen to agree.
The thing is that Avalon Framework--the one thing that makes this the Avalon project and not the Merlin project--is now unidentifiable, and it is not obvious what I need to do to get the latest and greatest or learn what changes have been made to it between versions. This is a great irresponsibility IMNSHO.
This is also the source of the controversy.
Avalon 4.x is and should be one of the products of the Avalon team.
It is a very important and fundamental piece of the puzzle. What used
to be fairly well defined contracts have been lost in assumptions--
assumptions that should not be made for the sake of people new to the concept. Believe it or not there are still people that develop Java using nothing but static methods (i.e. procedural programming using the Java language)--so assuming that people even know what makes a component is a great assumption.
The collection of technologies that make up the current definition of component is over and above Avalon 4.x, and hence should be called Avalon 5. It is not only more comprehensive, but it is not compatible with other previously released software from Avalon itself.
Several individuals including myself have expressed some concerns that can be summarized as follows:
The Avalon Framework documentation has been removed and what is left
is (buried) under the component specification section. Moreover, the
documentation refers to Merlin-specific features of the Avalon
framework such as constructor dependency injection [1].
The is no such thing as "Merlin-specific". Merlin is the Avalon reference implementation. I.e. constructor injection of lifecycle artifacts - introduced with the release of 4.2 is part of the Avalon Framework 4.2 contract. The only difference between 4.1 and 4.2 is that the semantics concerning object instantiation are now documented. I should also point out that 4.2 remains 100% backward compatible with 4.1.
I beg to differ. Constructor injection is incompatible with the definition of an Avalon 4.x component which demands an empty constructor. Any change to include Constructor Injection is a change to the fundamental contract and is not compatible with that original contract. I.e. it is a 5.0 feature, and should be labeled as such.
My friends, what is being done now in Avalon land IS 5.0.
Could a 4.1 component be used by a 4.2 container? yes. Could a 4.2
component be used in a 4.1 container? not if it uses constructor injection. Hence it is backwards incompatible. It should not be
4.2 but 5.0.
--
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
- Rich Cook
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]