Sean Busbey created CURATOR-193:
-----------------------------------
Summary: Release note incompatibilities between Curator 2.6 and 2.7
Key: CURATOR-193
URL: https://issues.apache.org/jira/browse/CURATOR-193
Project: Apache Curator
Issue Type: Task
Components: Documentation
Affects Versions: 2.7.1, 2.7.0, 2.6.0
Reporter: Sean Busbey
Priority: Critical
Please release note that Curator 2.7 is incompatible with Curator 2.6 in the
following ways:
* org.apache.curator.utils.PathUtils.validatePath(String) in curator-client
In release 2.7.0, CURATOR-136 changed the return type of this method from void
to String. This is fine for a semver minor version under source compatibility,
but is a violation of semver under binary compatibility. A downstream user will
get NoSuchMethodError if their already compiled class uses this method.
Downstream users should recompile their code against Curator 2.7.0+
*
org.apache.curator.framework.recipes.shared.SharedCountReader.getVersionedValue()
in curator-recipes
*
org.apache.curator.framework.recipes.shared.SharedValueReader.getVersionedValue()
in curator-recipes
In release 2.7.0, I think CURATOR-151 added these two methods to these
interfaces as a part of improving an API.
The changes are fine for binary compatibility provided nothing in the framework
ever calls them (doing so will result in NoSuchMethodError when called on an
instance compiled against the older interface). AFAICT, nothing in the
framework accepts one of these interfaces and then calls this method.
However, the addition of methods to Java interfaces breaks source
compatibility. The inter-process semaphore recipes work on arbitrary
SharedCountReader instances. That means that downstream folks who made their
own implementation of the SharedCountReader interface under 2.6.0 will get a
compilation error when they attempt to update to 2.7.0+.
Downstream users will need to implement the added method before compiling
against Curator 2.7.0+.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)