JRE 5 ElasticSearch Client?

Has anyone ever tried to build a Java5 Elastic Search Client? I'm stuck on
Java5 for the time being, so I need to find one or build my own.

Thanks for any response.

--

Hey Andy,

I'm on the way of building a SPORE specification for elasticsearch.
I will check if jspore works also on Java5.

Here's my github repo: https://github.com/dadoonet/spore-elasticsearch

Hope this could help (in the next future)

--
David :wink:
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 7 nov. 2012 à 22:21, Andy apryor48@gmail.com a écrit :

Has anyone ever tried to build a Java5 Elastic Search Client? I'm stuck on Java5 for the time being, so I need to find one or build my own.

Thanks for any response.

--

Interesting idea!

I am working on codebase modularization and I'm busy with a TransportClient
API compatible HTTP client https://github.com/jprante/elasticsearch-client
it's not yet released yet.

A quick try on JDK 5 compilation gave me several issues: you have to fall
back to Guava 11 (it's the last Java 5 version), some modifications are
necessary regarding JDK features (backport of concurrency utils jsr166y is
an example)

Maybe more issues will arise when the beast is running. I will try if I can
set up a JDK 5 build profile...

David, thanks for the SPORE effort. Nice! I am traversing the ES code to
also pick up the HTTP request parameters and the response format. Most is
well, but I had to add some more request/response classes for the
parameters and switched some meber methods from protected to public access

  • a few bits are missing in the ES code to make the REST API clean, so I
    think about pull requests to the master code.

Best regards,

Jörg

On Wednesday, November 7, 2012 10:21:11 PM UTC+1, Andy wrote:

Has anyone ever tried to build a Java5 Elastic Search Client? I'm stuck
on Java5 for the time being, so I need to find one or build my own.

Thanks for any response.

--

I'd like to share some impressions of the issues while I am building a
TransportClient API compatible ES client for jdk5.

  • good news: Lucene 3.6.1 is jdk5 compatible, Guava 13 delivers a separate
    jdk5 jar, Jackson is jdk5 compatible (except the YAML build, surprisingly),
    and Netty 3.5.8 is jdk5 compatible

  • the client codebase of ES makes use of jdk6 enhancements in java.util and
    java.net which are not present in a JRE 5 (concurrency, arrays, network
    layer requests e.g.).

  • Charset.forName is not present in jdk5, string encoding must use
    getBytes("UTF-8") with the famous UnsupportedEncodingException

  • the source code syntax need to get cleaned so a jdk5 compiler does not
    bail out (lots of @Overrides on interface methods)

  • The missing jre6 parts need to be plugged in a separate jdk5 compat jar
    into the bootstrap class path for execution without SecurityException. The
    jdk5 compat classes would have to be modified copies from OpenJDK, under
    the OpenJDK license, which is GPL (with classpath exception, so ES won't
    have to be licensed under GPL)

  • zen discovery (if ever required) would have to be replaced by a different
    thing. Maybe by a JGroups < 2.9 based discovery plugin, which was the
    predecessor of zen discovery a long time ago. Last seen as a plugin for ES
    0.8.0, at kimchys googlecode svn repo
    http://elasticsearch.googlecode.com/svn/plugins/discovery-jgroups/

  • spatial4j requires a jdk5 rebuild. The builds are for jre6, but does not
    use Java 6 features

  • I use java.util.ServiceLoader for pluggable compressor factories (lzf,
    snappy)

More to come,

Jörg

--