> And even that guess is not really safe. I always use the following 
> example to explain. If you have an interface A:
> 
> /* version 1.0 */
> interface A {
>   /* returns true in a certain condition */
>   boolean check();
> }
> 
> And in a new version, this interface has been changed like this:
> 
> /* version ??? */
> interface A {
>   /* returns false in a certain condition */
>   boolean check();
> }
> 
> Then, even though the method signature has not changed in any way, 
> the semantics of this interface have changed in an incompatible way 
> and a major bump in versioning is required. There is just no way 
> tools are going to pick up on this as long as they're just based on 
> Java (byte)code, you actually need to understand the documentation 
> to understand this. So this is another instance where you might be 
> in for some unpleasant surprises if you blindly use the output of 
> such versioning tools.

Yes. Tools can only analyze syntactic changes to find semantic 
differences. Other (non-syntactic) semantic changes need humans to 
participate in the version change decision.
-- 

BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
hargr...@us.ibm.com

office: +1 386 848 1781
mobile: +1 386 848 3788
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to