Last active
August 3, 2018 20:55
-
-
Save windoze/2dcc5e73bc1e77d2a6f673f006167818 to your computer and use it in GitHub Desktop.
ElasticSearch Java REST Client Vert.x adaptor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fun <Req, Resp> asFuture(func: (Req, ActionListener<Resp>, Array<out Header>) -> Unit, req: Req, vararg headers: Header) = Future.future<Resp>().apply { | |
func(req, object : ActionListener<Resp> { | |
override fun onFailure(e: Exception?) { | |
fail(e) | |
} | |
override fun onResponse(response: Resp?) { | |
complete(response) | |
} | |
}, headers) | |
} | |
fun RestHighLevelClient.bulkAsync(request: BulkRequest, vararg headers: Header) = asFuture(this::bulkAsync, request, *headers) | |
fun RestHighLevelClient.getAsync(request: GetRequest, vararg headers: Header) = asFuture(this::getAsync, request, *headers) | |
fun RestHighLevelClient.multiGetAsync(request: MultiGetRequest, vararg headers: Header) = asFuture(this::multiGetAsync, request, *headers) | |
fun RestHighLevelClient.existsAsync(request: GetRequest, vararg headers: Header) = asFuture(this::existsAsync, request, *headers) | |
fun RestHighLevelClient.indexAsync(request: IndexRequest, vararg headers: Header) = asFuture(this::indexAsync, request, *headers) | |
fun RestHighLevelClient.updateAsync(request: UpdateRequest, vararg headers: Header) = asFuture(this::updateAsync, request, *headers) | |
fun RestHighLevelClient.deleteAsync(request: DeleteRequest, vararg headers: Header) = asFuture(this::deleteAsync, request, *headers) | |
fun RestHighLevelClient.searchAsync(request: SearchRequest, vararg headers: Header) = asFuture(this::searchAsync, request, *headers) | |
fun RestHighLevelClient.multiSearchAsync(request: MultiSearchRequest, vararg headers: Header) = asFuture(this::multiSearchAsync, request, *headers) | |
fun RestHighLevelClient.searchScrollAsync(request: SearchScrollRequest, vararg headers: Header) = asFuture(this::searchScrollAsync, request, *headers) | |
fun RestHighLevelClient.clearScrollAsync(request: ClearScrollRequest, vararg headers: Header) = asFuture(this::clearScrollAsync, request, *headers) | |
val client = RestHighLevelClient(RestClient.builder(HttpHost("localhost", 9200, "http"))) | |
val getRequest = GetRequest( | |
"someindex", | |
"sometype", | |
"someid") | |
val resp = client.getAsync(getRequest).await() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment