Nicola Ken Barozzi wrote:
>
> Berin Loritsch wrote:
>
>> Nicola Ken Barozzi wrote:
>>
>>  >
>>  > Berin Loritsch wrote:
>>  >
>>  >
>>  > What about all the client code that checks for Component and won't
>> find it in the Cocoon components, and the ones that extend Cocoon
>> components?
>>
>>
>> It won't break compilation.  Cocoon component interfaces extend the
>> (Component) interface so all the clients have to do to release is
>> m_manager.release(foo);
>
>
> You lost me here.
>
> We want to remove depecation warnings. Or we remove @deprecated, or we
> remove Component from the Cocoon component interfaces.
>
> If we do the latter, as Vadim points out, this is not going to work for
> our users:
>
> Component c = ((ComponentSelector)manager.lookup(Generator.ROLE +
> "Selector")).select("something");
>
> Basically all the code that casts to Component will stop working.
>
> I'm trying to see all the tradeoffs.
>

Not if we create a proxy.

The ECM and FOrtress et. al. will continue working.


The Component interface is added at runtime, and the Composable
interface is supported by creating a proxy that implements the Component
interface.

Do a little experiment.


1) Upgrade the ECM used in Cocoon.
2) Remove the "implements Component" from the Generator interface.
3) Run Cocoon.

BAM!

It still works.

_It has already been taken care of_


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to