Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [che-dev] Incompatible API extensions

Hello Christoph.

Thank you for pointing us to this issue.
In the next few days we will investigate it and let you know.

Sergii Kabashniuk

On Fri, Apr 17, 2015 at 10:46 AM, Pohl, Christoph <christoph.pohl@xxxxxxx> wrote:

Hi folks,

 

not sure if you are aware of this…

 

With https://github.com/codenvy/che-core/commit/e3a19a15fa7b58eec3ef5ceab22a8a4b8eff69af you recently introduced in 3.9 an incompatible API extension to interface WorkspaceDao in the form of a new method.

 

Introducing new methods in API interfaces is actually not permitted in minor release upgrades like 3.8->3.9 because you will immediately break all external 3.8-based implementors. There are implementors out there besides your LocalWorkspaceDaoImpl, which are not part of your code base.
The usual way to go in such situations would be to introduce an abstract superclass in your API, which implementor can extend compatibly instead of implementing the interfaces directly.

See also http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf

 

Do you have some sort of API baseline checks in place like Eclipse PDE used to provide?

 

Cheers,

Christoph

 


_______________________________________________
che-dev mailing list
che-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/che-dev



Back to the top