You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sebb <se...@gmail.com> on 2011/12/03 12:43:35 UTC
[JEXL] remaining binary incompatibilities in 2.1
The Jexl 2.0 branch now has only a few binary incompatibilities
reported by Clirr.
According to the JLS [1], adding methods to an interface does not
break *binary* compatibility; however of course it will break source
compatibility.
Either Clirr is not distinguishing the binary/source cases, or it gets it wrong.
The test case that I added to the 2.0.1 test branch confirms that new
methods *can* be added.
This just leaves the following errors, which do cause binary
compatibilty problems:
ERROR: 7006: org.apache.commons.jexl2.JexlEngine: Return type of
method 'protected org.apache.commons.jexl2.JexlInfo
createInfo(java.lang.String, int, int)' has been changed to
org.apache.commons.jexl2.DebugInfo
ERROR: 7006: org.apache.commons.jexl2.JexlEngine: Return type of
method 'protected org.apache.commons.jexl2.JexlInfo debugInfo()' has
been changed to org.apache.commons.jexl2.DebugInfo
Now DebugInfo implements JexlInfo, and I think the method return types
could/should be reverted to the original, i.e. JexlInfo.
I've tested locally, and found that reverting to JexlInfo as the
return type for the two methods does not cause any tests to fail.
This is because currently the code accesses the DebugInfo class via
JexlInfo#getDebugInfo().
WDYT? Would that be OK?
If required, the additional DebugInfo methods could be added to the
JexlInfo interface, after all the Javadoc says:
"Interface for objects carrying information usefull to debugging."
The change needed to JexlEngine turns out to be very simple, basically
just using JexlInfo instead of DebugInfo.
[1] http://java.sun.com/docs/books/jls/second_edition/html/binaryComp.doc.html#45347
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [JEXL] remaining binary incompatibilities in 2.1
Posted by sebb <se...@gmail.com>.
On 3 December 2011 14:52, henrib <he...@apache.org> wrote:
> If the last hurdle to binary compatibility is replacing DebugInfo by
> JexlInfo, by all means, replace it!
OK, will do.
> Nice analysis and great result.
Thanks.
At times it looked as though the changes were too great to restore
compatibility, but I think we're there now.
> Thanks for your efforts,
> Cheers
> Henrib
>
> Ps any comment on the difference between stability and usability and
> possible solutions, cd release process post?
Been busy; still thiking about that.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [JEXL] remaining binary incompatibilities in 2.1
Posted by henrib <he...@apache.org>.
If the last hurdle to binary compatibility is replacing DebugInfo by
JexlInfo, by all means, replace it!
Nice analysis and great result.
Thanks for your efforts,
Cheers
Henrib
Ps any comment on the difference between stability and usability and
possible solutions, cd release process post?
--
View this message in context: http://apache-commons.680414.n4.nabble.com/JEXL-remaining-binary-incompatibilities-in-2-1-tp4153028p4153537.html
Sent from the Commons - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org