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]