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