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.