> 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
[email protected]
office: +1 386 848 1781
mobile: +1 386 848 3788
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev