You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by hammett <ha...@uol.com.br> on 2004/04/13 14:27:16 UTC

Avalon Spec [Was: A Foolish Consistency]

----- Original Message ----- 
From: "Niclas Hedhman" <ni...@hedhman.org>

> Everyone in the 'lightweight camp' seems to make a

I strongly suggest you to stop using these kind of terms.

>     "Strict Contract" == "Huge Contract"
>
> And I think that is where the main mindset block is sitting.

I would never had other opinion. Quoting you "It is all about Component
Interoperability, at container-level, at IDE level, at search tools level,
and every other conceivable application that may be  interested in looking
at the component."

Did you miss the kitchen sink?

My opinion: small steps.


> So we have a 'conflict'. If we do (7), then it is a Avalon Framework

We are under Avalon. I don't see any problem in obligate to use interfaces
to express requirements. OTOH I think we should evolve to support
constructor injection and setter injection, but thats another discussion.

> Then declare your typical AF4 component
>
>     MyComponent requires GenericStartableSpecification
>     MyComponent compliesWith AvalonStartableSpecification

I'm not sure about your suggestion. I - personally - don't like to relies on
developers to do the right thing. We can find out what a component expects
by inspecting it (search for metadata, interfaces implements, constructors
declared and so on)


> 1. Specifications should be small.

+1

> 3. That Avalon today already contain a lot of these specs, but lumped
together
> under the AF4 umbrella, making it an 'all-or-nothing' (just like EJB)
spec.

Why all or nothing?

> What do you ALL think?

I think you're in the right path. But I'd like to see everyone's opinions
about it.


cheers!
hammett


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


RE: Avalon Spec [Was: A Foolish Consistency]

Posted by Andreas Oberhack <de...@softwarefabrik.biz>.
Hi Niclas,

great post!! I really got the full power of your thoughts about RFD,
specs, TCK etc.! That's THE big step ahead.

Do you already have something like a roadmap? I'm really looking forward
to work on the tooling side of the specs!

Andreas


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Avalon Spec [Was: A Foolish Consistency]

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 13 April 2004 20:27, hammett wrote:

>> 3. That Avalon today already contain a lot of these specs, but 
>> lumped together under the AF4 umbrella, making it 
>> an 'all-or-nothing' (just like EJB) spec.

> Why all or nothing?

Correction; All-or-nothing albeit small....

Well, I see it like this; Either a component is AF4 or it is not. A non-AF4 
container, which doesn't know the details of the AF4 specification, must 
assume that the component can not be run in its environment, provided it 
could figure out it is an AF4 component in the first place...
For a container that doesn't give a damn, it would instantiate it, and get 
'mixed results', for instance maybe such container would understand that 
there were start() method, and call it, and a 'weak component' would start in 
some inconsistent state, whereas a 'stronger component' would throw some for 
of IllegalStateException (other lifecycle methods has not been called).

But I think all of this is beside the point. 
My point is; Small Specifications that can be stacked together and form larger 
entities. Light-weight containers can implement an arbitrary set of 
specifications, and components likewise "require", "request" and "complyWith" 
any arbitrary set. Then do a simple matrix;

Spec              | Fortress | Merlin | Nano | Dojo | ContainerX |
------------------+----------+--------+------+------+------------+
ConstrInjection   |    -     |    c   |   c  |  c   |     c      |
SM-Injection      |    c     |    c   |   -  |  c   |     -      |
GenericStartable  |    c     |    c   |   -  |  c   |     c      |
AF4Startable      |    r     |    r   |   -  |  r   |     -      |

c=compliesWith
r=requires
-=not supported

And for each component developed, we do the same thing. And since these are 
machine-readable (my goal with all of this) those tables can be automatically 
generated, as well as a tool can figure out which components will work with 
which containers.

It can change the world, but perhaps Avalon is the wrong forum for 
'Specification' talks...


Finally; Hammet, I would like to urge you to be more positive in the future 
(last response was an improvement!) and not only come with negative criticism 
at all times. You spoke highly of 'we must learn more about community and 
respect', which I applaud, but you are one of us who have to learn as well 
:o). Don't focus on 'disagree', focus on 'agree' and 'agree, how about...' 
aspects of the debate. I am trying to do so now, and you won't hear anymore 
"negativism" from me.
I have the impression that you seek to maintain the current AF4 Status Quo, 
but OTOH you never say it outright either, so I am somewhat confused over 
what your true agenda is... Perhaps your positive views could be posted?


Cheers
Niclas
-- 
+---------//-------------------+
|   http://www.bali.ac         |
|  http://niclas.hedhman.org   |
+------//----------------------+

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org