[[api-java]] == Java API {xpack} provides a Java client called `WatcherClient` that adds native Java support for the {watcher}. To obtain a `WatcherClient` instance, make sure you first set up the `XPackClient`. [float] === Installing XPackClient You first need to make sure the +x-pack-transport-{version}+ JAR file is in the classpath. You can extract this jar from the downloaded {xpack} bundle. If you use Maven to manage dependencies, add the following to the `pom.xml`: ["source","xml",subs="attributes,callouts"] -------------------------------------------------- elasticsearch-releases https://artifacts.elastic.co/maven true false ... ... org.elasticsearch.client x-pack-transport {version} ... ... -------------------------------------------------- If you use Gradle, add the dependencies to `build.gradle`: ["source","groovy",subs="attributes,callouts"] -------------------------------------------------------------- repositories { /* ... Any other repositories ... */ // Add the Elasticsearch Maven Repository maven { url "https://artifacts.elastic.co/maven" } } dependencies { // Provide the x-pack jar on the classpath for compilation and at runtime compile "org.elasticsearch.client:x-pack-transport:{version}" /* ... */ } -------------------------------------------------------------- You can also download the https://artifacts.elastic.co/maven/org/elasticsearch/client/x-pack-transport/{version}/x-pack-transport-{version}.jar[X-Pack Transport JAR] manually, directly from our Maven repository. [float] === Obtaining the `WatcherClient` To obtain an instance of the `WatcherClient` you first need to create the `XPackClient`. The `XPackClient` is a wrapper around the standard Java Elasticsearch `Client`: [source,java] -------------------------------------------------- import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.xpack.client.PreBuiltXPackTransportClient; import org.elasticsearch.xpack.XPackClient; import org.elasticsearch.xpack.XPackPlugin; import org.elasticsearch.watcher.client.WatcherClient; ... TransportClient client = new PreBuiltXPackTransportClient(Settings.builder() .put("cluster.name", "myClusterName") ... .build()) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); XPackClient xpackClient = new XPackClient(client); WatcherClient watcherClient = xpackClient.watcher(); -------------------------------------------------- include::java/put-watch.asciidoc[] include::java/get-watch.asciidoc[] include::java/delete-watch.asciidoc[] include::java/execute-watch.asciidoc[] include::java/ack-watch.asciidoc[] include::java/activate-watch.asciidoc[] include::java/deactivate-watch.asciidoc[] include::java/stats.asciidoc[] include::java/service.asciidoc[]