import java.util.Properties;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.ws.rs.HttpMethod;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.UriBuilder;
import org.eclipse.jetty.http.HttpStatus;
"{\"index\":{\"_index\":\"%s\",\"_type\":\"%s\",\"_id\":\"%s\", \"_version\":\"%s\"}}\n";
private static final String BULK_DELETE_TEMPLATE =
"{ \"delete\": { \"_index\": \"%s\", \"_type\": \"%s\", \"_id\": \"%s\", \"_version\":\"%s\"}}\n";
+ public final static String APPLICATION_XND_JSON_TYPE = new MediaType("application", "x-ndjson").toString();
private final ElasticSearchConfig config;
protected AnalysisConfiguration analysisConfig;
-
public ElasticSearchHttpController(ElasticSearchConfig config) {
this.config = config;
analysisConfig = new AnalysisConfiguration();
String rootUrl = null;
try {
+ if ("https".equals(config.getUriScheme())) {
+ new ElasticSearchHttpsController(config);
+ }
rootUrl = buildUrl(createUriBuilder("")).toString();
logger.info(SearchDbMsgs.ELASTIC_SEARCH_CONNECTION_ATTEMPT, rootUrl);
checkConnection();
conn = (HttpURLConnection) buildUrl(createUriBuilder("_bulk")).openConnection();
conn.setRequestMethod(HttpMethod.PUT);
conn.setDoOutput(true);
- conn.setRequestProperty(CONTENT_TYPE, APPLICATION_FORM_URLENCODED);
+ conn.setRequestProperty(CONTENT_TYPE, APPLICATION_XND_JSON_TYPE);
+ if(config.useAuth()){
+ conn.setRequestProperty("Authorization", config.getAuthValue());
+ }
conn.setRequestProperty("Connection", "Close");
} catch (IOException e) {
conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty(CONTENT_TYPE, APPLICATION_JSON);
conn.setDoOutput(true);
+ if (config.useAuth()) {
+ conn.setRequestProperty("Authorization", config.getAuthValue());
+ }
} catch (IOException e) {
shutdownConnection(conn);
throw new DocumentStoreOperationException("Failed to open connection to URL " + url, e);
builder.host(config.getIpAddress());
String port = Optional.ofNullable(config.getHttpPort()).orElse("0");
builder.port(Integer.valueOf(port));
- builder.scheme("http");
+ builder.scheme(config.getUriScheme());
return builder;
}
metricsLogger.info(message,
new LogFields() //
.setField(LogLine.DefinedFields.RESPONSE_CODE, operationResult.getResultCode())
- .setField(LogLine.DefinedFields.RESPONSE_DESCRIPTION, operationResult.getResult()),
+ .setField(LogLine.DefinedFields.RESPONSE_DESCRIPTION, operationResult.getResult())
+ .setField(LogLine.DefinedFields.SERVER_IP, "ElasticHost-"+config.getIpAddress()),
override, args);
}
}