8000 How will Java clients survive the 1.x -> 2.x upgrade? · Issue #13273 · elastic/elasticsearch · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
How will Java clients survive the 1.x -> 2.x upgrade? #13273
Closed
@udoprog

Description

@udoprog

I'm raising this out of concern for the up and coming 2.0 release.

Currently, java clients communicating with an elasticsearch cluster use the following dependency.

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch</artifactId>
  <version>1.x.y or 2.x.y</version>
</dependency>

This is a very large package, essentially containing all the code necessary to operate an elasticsearch node. What clients typically are interested in is the TransportClient code.

A major version bump is allowed to carry incompatible changes, and I will be encountering several scenarios where I will have to write java clients that communicate with both 1.x and 2.x clusters.

Traditionally you have been very good at maintaining backwards compatibility, I have 1.4 clients communicating with 1.7 clusters. So Minor versions have not been that much of an issue as long as you control the feature set you use for each cluster version.

The canonical way of solving this would be to extract the public API into a separate artifact, and under a different package name (e.g. org.elasticsearch2) to allow the two different client versions to co-exist both in maven, and in the classpath.

Considering the important comment on your java-api client documentation this seems to ramp up towards becoming a major hassle for me.

Will there be some way of combating this?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0