[KARAF-5500] Upgrade jest appender to be compliant with elasticsearch 5 & 6
diff --git a/appender/elasticsearch-jest/src/main/cfg/org.apache.karaf.decanter.appender.elasticsearch.jest.cfg b/appender/elasticsearch-jest/src/main/cfg/org.apache.karaf.decanter.appender.elasticsearch.jest.cfg
index d8b68aa..073b6f6 100644
--- a/appender/elasticsearch-jest/src/main/cfg/org.apache.karaf.decanter.appender.elasticsearch.jest.cfg
+++ b/appender/elasticsearch-jest/src/main/cfg/org.apache.karaf.decanter.appender.elasticsearch.jest.cfg
@@ -15,6 +15,8 @@
# index.prefix=karaf
# If true, it creates an index per Decanter event day
# index.event.timestamped=true
+# Index type
+# index.type=decanter
# Marshaller to use (json is recommended)
marshaller.target=(dataFormat=json)
\ No newline at end of file
diff --git a/appender/elasticsearch-jest/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/jest/ElasticsearchAppender.java b/appender/elasticsearch-jest/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/jest/ElasticsearchAppender.java
index d0791f9..49174df 100644
--- a/appender/elasticsearch-jest/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/jest/ElasticsearchAppender.java
+++ b/appender/elasticsearch-jest/src/main/java/org/apache/karaf/decanter/appender/elasticsearch/jest/ElasticsearchAppender.java
@@ -58,6 +58,7 @@
private JestClient client;
private String indexPrefix;
private boolean indexTimestamped;
+ private String indexType;
private final SimpleDateFormat tsFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSS'Z'");
private final SimpleDateFormat indexDateFormat = new SimpleDateFormat("yyyy.MM.dd");
@@ -98,6 +99,7 @@
indexPrefix = getValue(config, "index.prefix", "karaf");
indexTimestamped = Boolean.parseBoolean(getValue(config, "index.event.timestamped", "true"));
+ indexType = getValue(config, "index.type", "decanter");
}
private String getValue(Dictionary<String, Object> config, String key, String defaultValue) {
@@ -123,7 +125,7 @@
String indexName = getIndexName(indexPrefix, getDate(event));
String jsonSt = marshaller.marshal(event);
- JestResult result = client.execute(new Index.Builder(jsonSt).index(indexName).type(getType(event)).build());
+ JestResult result = client.execute(new Index.Builder(jsonSt).index(indexName).type(indexType).build());
if (!result.isSucceeded()) {
throw new IllegalStateException(result.getErrorMessage());
@@ -136,11 +138,6 @@
return date;
}
- private String getType(Event event) {
- String type = (String)event.getProperty("type");
- return type != null ? type : "karaf_event";
- }
-
private String getIndexName(String prefix, Date date) {
if (indexTimestamped) {
return prefix + "-" + indexDateFormat.format(date);