on 6/16/03 1:20 AM Carsten Ziegeler wrote:

> Hi,
> 
> I think I found a showstopper for 2.1 :( :
> 2.1 is not binary compatible to 2.0.x - if you compile a (sitemap)
> component using 2.0.x and put this into 2.1 it will in most cases 
> fail to run. As a simple example, you can use the FileGenerator.class
> from 2.0.x.
> 
> Why is this so? Well, the reason is the change from Loggable
> to LogEnabled. If you write your own sitemap component,
> you most likely use the provided abstract classes (e.g. AbstractGenerator
> or ComposerGenerator). In 2.0.4 these classes inherited from 
> AbstractLoggable - in 2.1 they inherit from AbstractLogEnabled.
> Both offer the same method but with a different return type,
> so if you use a component compiled for 2.0.4 in 2.1 it looks for the
> getLogger() method of AbstractLoggable and does not find one
> with a matching signature. Bang.
> 
> I think, mostly this affects own sitemap components inheriting from
> the provided classes, but of course this can occur with every
> class where we changed from Loggable to LogEnabled.

Damn, thanks for spotting this, dude. Very important.

> We could solve this problem for sitemap components but not in
> general, I fear.
> 
> So, the question is: do we want to have this kind of compatibility
> or do the users have to recompile (which works of course as we are
> compatible on the source level)?

Gosh, recompiling is not that big of a deal, but I'm with you that the
concept sucks.

I really don't know what to say about this :-/

-- 
Stefano.


Reply via email to