[
https://issues.apache.org/jira/browse/CURATOR-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jordan Zimmerman closed CURATOR-193.
------------------------------------
Resolution: Implemented
We will strive to maintain semantic versioning in the future.
> 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.6.0, 2.7.0, 2.7.1
> Reporter: Sean Busbey
> Priority: Critical
> Labels: compatibility, release_notes, versioning
>
> 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)