A quick solution is to add some documentation around how to give a specific version of ElasticSearch at build-time. This would help folks build Calcite with the exact version that they want (assuming that the API hasn't changed and the adapter actually works with that version of ES)

We don't need to have multiple versions of ElasticSearch on the classpath at once, right?

On 9/27/17 2:13 AM, Christian Beikov wrote:
Sqlline is problematic as it will have both elastic search versions on the classpath. I haven't thought about that before. In the meantime you could remove old versions of libraries from the "target/fullclasspath.txt" file to workaround the classpath problem.

@Julian Hyde: How should we deal with something like this? We'd need isolated "modules" instead of a flat class path for sqlline. Maybe we could build sqlline on JBoss Modules(https://github.com/jboss-modules/jboss-modules) to achieve that?


Mit freundlichen Grüßen,
------------------------------------------------------------------------
*Christian Beikov*
Am 27.09.2017 um 01:30 schrieb Kunwar Deep Singh Toor:
---------- Forwarded message ----------
From: Kunwar Deep Singh Toor <kt...@g.clemson.edu>
Date: Mon, Sep 25, 2017 at 8:16 PM
Subject: ElasticSearch5 not working
To: dev-i...@calcite.apache.org


Hi,

  I have been trying to connect to the ElasticSearch  suing ES adapter
through sqlline. I was able to connect to ES 2.1.4 using the ES2 adapter
but when I try connecting to ES 5.1.1 using the ES5 adapter the following
error pops up, I checked the logs for ElasticSearch and it does not show  a
connection attempt being made.

The following is the error:
java.lang.NoSuchMethodError: org.elasticsearch.transport.cl
ient.PreBuiltTransportClient.addPlugins(Ljava/util/Collectio
n;Ljava/util/Collection;)Ljava/util/Collection;
     at org.elasticsearch.transport.client.PreBuiltTransportClient.<
init>(PreBuiltTransportClient.java:130)
     at org.elasticsearch.transport.client.PreBuiltTransportClient.<
init>(PreBuiltTransportClient.java:116)
     at org.elasticsearch.transport.client.PreBuiltTransportClient.<
init>(PreBuiltTransportClient.java:106)
     at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Sche
ma.open(Elasticsearch5Schema.java:119)
     at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Sche
ma.<init>(Elasticsearch5Schema.java:74)
     at org.apache.calcite.adapter.elasticsearch5.Elasticsearch5Sche
maFactory.create(Elasticsearch5SchemaFactory.java:56)
     at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:269)
     at org.apache.calcite.model.JsonCustomSchema.accept(JsonCustomS
chema.java:45)
     at org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:195)      at org.apache.calcite.model.ModelHandler.<init>(ModelHandler.java:87)      at org.apache.calcite.jdbc.Driver$1.onConnectionInit(Driver.java:104)
     at org.apache.calcite.avatica.UnregisteredDriver.connect(Unregi
steredDriver.java:139)
     at sqlline.DatabaseConnection.connect(DatabaseConnection.java:156)
     at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:204)
     at sqlline.Commands.connect(Commands.java:1095)
     at sqlline.Commands.connect(Commands.java:1001)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
ssorImpl.java:62)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:498)
     at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHa
ndler.java:38)
     at sqlline.SqlLine.dispatch(SqlLine.java:791)
     at sqlline.SqlLine.begin(SqlLine.java:668)
     at sqlline.SqlLine.start(SqlLine.java:373)
     at sqlline.SqlLine.main(SqlLine.java:265)

I have recently started working on calcite and any help would be much
appreciated.

Thanks,

Kunwar Singh



Reply via email to