excalibur-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vadim Gritsenko <va...@reverycodes.com>
Subject Re: svn commit: r492447
Date Wed, 24 Jan 2007 16:03:39 GMT
Carsten Ziegeler wrote:
> Vadim Gritsenko wrote:
>> I do not want to object but I would like to understand one thing... Given this code:
>>
>>    public class FooComponent extends AbstractLogEnabled
>>                              implements ..., ThreadSafe, Component
>>
>>    public class BarComponent extends AbstractLogEnabled
>>                              implements ..., ThreadSafe
>>
>> You suggest that BarComponent is POJO, while FooComponent is not. Can you 
>> explain me why is that?
>>
> :) No, I'm not suggesting this, but...we had two different cases:
> a) Component is used in an interface. This prevents the usage of the
> interface in a non Avalon world and should really be avoided.

Rather, "... prevents the usage of the interface if Avalon JAR is missing".


> b) Component is used in the implementation (as you show above). Removing
> the interface from the implementation is the first step towards having a
> POJO. But it is not possible to remove all avalon lifecycle interfaces
> from the implementation without breaking the usage inside an avalon
> container.
> 
> My primary goal is to use the interfaces in a POJO world; I don't care
> that much about the implementation. But at the same time I want to
> reduce the dependency to avalon even in the implementation as much as
> possible.

I remember they discussed this metadata thingy way back on avalon list - this 
should be a ticket! You could have all metadata out of implementation class in 
the XML files ;-)

> Perhaps one could do a:
> public class POJOBarCompomnent implements ...
> and
> public class BarComponent extends POJOBarComponent implements
> ThreadSafe, LogEnabled
> I'm not sure if this is worth the effort.

Agree.

> Does this all make sense somehow?

Yes.

Vadim

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


Mime
View raw message