Dropwizard Elasticsearch Bundle

Addon bundle for Dropwizard to support Elasticsearch

License

License

Categories

Categories

DropWizard Container Microservices Search Business Logic Libraries Elasticsearch
GroupId

GroupId

com.github.joschi
ArtifactId

ArtifactId

dropwizard-elasticsearch
Last Version

Last Version

0.4.0
Release Date

Release Date

Type

Type

jar
Description

Description

Dropwizard Elasticsearch Bundle
Addon bundle for Dropwizard to support Elasticsearch
Project URL

Project URL

https://github.com/joschi/dropwizard-elasticsearch
Source Code Management

Source Code Management

https://github.com/joschi/dropwizard-elasticsearch

Download dropwizard-elasticsearch

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.joschi/dropwizard-elasticsearch/ -->
<dependency>
    <groupId>com.github.joschi</groupId>
    <artifactId>dropwizard-elasticsearch</artifactId>
    <version>0.4.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.joschi/dropwizard-elasticsearch/
implementation 'com.github.joschi:dropwizard-elasticsearch:0.4.0'
// https://jarcasting.com/artifacts/com.github.joschi/dropwizard-elasticsearch/
implementation ("com.github.joschi:dropwizard-elasticsearch:0.4.0")
'com.github.joschi:dropwizard-elasticsearch:jar:0.4.0'
<dependency org="com.github.joschi" name="dropwizard-elasticsearch" rev="0.4.0">
  <artifact name="dropwizard-elasticsearch" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.joschi', module='dropwizard-elasticsearch', version='0.4.0')
)
libraryDependencies += "com.github.joschi" % "dropwizard-elasticsearch" % "0.4.0"
[com.github.joschi/dropwizard-elasticsearch "0.4.0"]

Dependencies

compile (2)

Group / Artifact Type Version
io.dropwizard : dropwizard-core jar 0.7.0
org.elasticsearch : elasticsearch jar 1.1.1

test (2)

Group / Artifact Type Version
junit : junit jar 4.11
org.mockito : mockito-all jar 1.9.5

Project Modules

There are no modules declared in this project.

Dropwizard Elasticsearch

Build Status Coverage Status Maven Central

A set of classes for using Elasticsearch (version 2.3.0 and higher) in a Dropwizard application.

The package provides a lifecycle-managed client class (ManagedEsClient), a configuration class with the most common options (EsConfiguration), and some health checks which can instantly be used in any Dropwizard application.

Usage

Just add EsConfiguration to your Configuration class and create an ManagedEsClient instance in the run method of your service.

You can also add one of the existing health checks to your Environment in the same method. At least the usage of EsClusterHealthCheck is strongly advised.

public class DemoApplication extends Application<DemoConfiguration> {
    // [...]
    @Override
    public void run(DemoConfiguration config, Environment environment) {
        final ManagedEsClient managedClient = new ManagedEsClient(configuration.getEsConfiguration());
        environment.lifecycle().manage(managedClient);
        environment.healthChecks().register("ES cluster health", new EsClusterHealthCheck(managedClient.getClient()));
        // [...]
    }
}

Configuration

The following configuration settings are supported by EsConfiguration:

  • nodeClient: When true, ManagedEsClient will create a NodeClient, otherwise a TransportClient; default: true
  • servers: A list of servers for usage with the created TransportClient if nodeClient is false
  • clusterName: The name of the Elasticsearch cluster; default: "elasticsearch"
  • settings: Any additional settings for Elasticsearch, see Configuration
  • settingsFile: Any additional settings file for Elasticsearch, see Configuration

An example configuration file for creating a Node Client could like this:

clusterName: MyClusterName
settings:
  node.name: MyCustomNodeName

The order of precedence is: nodeClient/servers/clusterName > settings > settingsFile, meaning that any setting in settingsFile can be overwritten with settings which in turn get overwritten by the specific settings like clusterName.

Maven Artifacts

This project is available on Maven Central. To add it to your project simply add the following dependencies to your pom.xml:

<dependency>
  <groupId>io.dropwizard.modules</groupId>
  <artifactId>dropwizard-elasticsearch</artifactId>
  <version>1.2.0-1</version>
</dependency>

Support

Please file bug reports and feature requests in GitHub issues.

Acknowledgements

Thanks to Alexander Reelsen (@spinscale) for his Dropwizard Blog Sample which sparked the idea for this project.

License

Copyright (c) 2013-2017 Jochen Schalanda

This library is licensed under the Apache License, Version 2.0.

See http://www.apache.org/licenses/LICENSE-2.0.html or the LICENSE file in this repository for the full license text.

Versions

Version
0.4.0
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0