X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fsa%2Frest%2FDocumentApi.java;h=ac7610b2918d70ee353a33779543a839497dccc9;hb=ce701746049abfd94a87b46e43f296faf32d6213;hp=63109ef0fce65be6c5db9dd7cd4663f656062b05;hpb=06d31abe3065205c87447687ad87c05e602c97d7;p=aai%2Fsearch-data-service.git diff --git a/src/main/java/org/onap/aai/sa/rest/DocumentApi.java b/src/main/java/org/onap/aai/sa/rest/DocumentApi.java index 63109ef..ac7610b 100644 --- a/src/main/java/org/onap/aai/sa/rest/DocumentApi.java +++ b/src/main/java/org/onap/aai/sa/rest/DocumentApi.java @@ -23,7 +23,10 @@ package org.onap.aai.sa.rest; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; - +import org.onap.aai.cl.api.LogFields; +import org.onap.aai.cl.api.LogLine; +import org.onap.aai.cl.api.Logger; +import org.onap.aai.cl.eelf.LoggerFactory; import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreDataEntityImpl; import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreInterface; import org.onap.aai.sa.searchdbabstraction.entity.AggregationResults; @@ -32,35 +35,37 @@ import org.onap.aai.sa.searchdbabstraction.entity.SearchOperationResult; import org.onap.aai.sa.searchdbabstraction.logging.SearchDbMsgs; import org.onap.aai.sa.searchdbabstraction.searchapi.SearchStatement; import org.onap.aai.sa.searchdbabstraction.searchapi.SuggestionStatement; -import org.onap.aai.cl.api.LogFields; -import org.onap.aai.cl.api.LogLine; -import org.onap.aai.cl.api.Logger; -import org.onap.aai.cl.eelf.LoggerFactory; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; +//import javax.ws.rs.core.HttpHeaders; +//import javax.ws.rs.core.MediaType; +//import javax.ws.rs.core.Response; +//import javax.ws.rs.core.Response.Status; +// Spring Imports public class DocumentApi { private static final String REQUEST_HEADER_RESOURCE_VERSION = "If-Match"; private static final String RESPONSE_HEADER_RESOURCE_VERSION = "ETag"; private static final String REQUEST_HEADER_ALLOW_IMPLICIT_INDEX_CREATION = "X-CreateIndex"; - + protected SearchServiceApi searchService = null; private Logger logger = LoggerFactory.getInstance().getLogger(DocumentApi.class.getName()); - private Logger auditLogger = - LoggerFactory.getInstance().getAuditLogger(DocumentApi.class.getName()); + private Logger auditLogger = LoggerFactory.getInstance() + .getAuditLogger(DocumentApi.class.getName()); public DocumentApi(SearchServiceApi searchService) { this.searchService = searchService; } - public Response processPost(String content, HttpServletRequest request, HttpHeaders headers, - HttpServletResponse httpResponse, String index, DocumentStoreInterface documentStore) { + public ResponseEntity processPost(String content, HttpServletRequest request, HttpHeaders headers, + HttpServletResponse httpResponse, String index, + DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); @@ -69,7 +74,7 @@ public class DocumentApi { ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(Include.NON_EMPTY); if (content == null) { - return handleError(request, content, Status.BAD_REQUEST); + return handleError(request, content, HttpStatus.BAD_REQUEST); } boolean isValid; @@ -77,20 +82,20 @@ public class DocumentApi { isValid = searchService.validateRequest(headers, request, ApiUtils.Action.POST, ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { - logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "DocumentApi.processPost", + logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, + "DocumentApi.processPost", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } DocumentStoreDataEntityImpl document = new DocumentStoreDataEntityImpl(); document.setContent(content); - DocumentOperationResult result = - documentStore.createDocument(index, document, implicitlyCreateIndex(headers)); + DocumentOperationResult result = documentStore.createDocument(index, document, implicitlyCreateIndex(headers)); String output = null; if (result.getResultCode() >= 200 && result.getResultCode() <= 299) { output = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getDocument()); @@ -103,8 +108,9 @@ public class DocumentApi { if (httpResponse != null) { httpResponse.setHeader(RESPONSE_HEADER_RESOURCE_VERSION, result.getResultVersion()); } - Response response = Response.status(result.getResultCode()).entity(output).build(); - logResult(request, Response.Status.fromStatusCode(response.getStatus())); + ResponseEntity response = ResponseEntity.status(result.getResultCode()).contentType ( MediaType.APPLICATION_JSON ).body(output); + logResult(request, HttpStatus.valueOf ( response.getStatusCodeValue () )); + logResult(request, HttpStatus.valueOf ( response.getStatusCodeValue () )); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -112,13 +118,13 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } - public Response processPut(String content, HttpServletRequest request, HttpHeaders headers, - HttpServletResponse httpResponse, String index, String id, - DocumentStoreInterface documentStore) { + public ResponseEntity processPut(String content, HttpServletRequest request, HttpHeaders headers, + HttpServletResponse httpResponse, String index, + String id, DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); @@ -127,7 +133,7 @@ public class DocumentApi { ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(Include.NON_EMPTY); if (content == null) { - return handleError(request, content, Status.BAD_REQUEST); + return handleError(request, content, HttpStatus.BAD_REQUEST); } boolean isValid; @@ -135,17 +141,17 @@ public class DocumentApi { isValid = searchService.validateRequest(headers, request, ApiUtils.Action.PUT, ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { - logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "DocumentApi.processPut", + logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, + "DocumentApi.processPut", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } - String resourceVersion = - headers.getRequestHeaders().getFirst(REQUEST_HEADER_RESOURCE_VERSION); + String resourceVersion = headers.getFirst(REQUEST_HEADER_RESOURCE_VERSION); DocumentStoreDataEntityImpl document = new DocumentStoreDataEntityImpl(); document.setId(id); @@ -170,8 +176,8 @@ public class DocumentApi { if (httpResponse != null) { httpResponse.setHeader(RESPONSE_HEADER_RESOURCE_VERSION, result.getResultVersion()); } - Response response = Response.status(result.getResultCode()).entity(output).build(); - logResult(request, Response.Status.fromStatusCode(response.getStatus())); + ResponseEntity response = ResponseEntity.status(result.getResultCode()).contentType ( MediaType.APPLICATION_JSON ).body(output); + logResult(request, HttpStatus.valueOf ( response.getStatusCodeValue () )); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -179,13 +185,13 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } - public Response processDelete(String content, HttpServletRequest request, HttpHeaders headers, - HttpServletResponse httpResponse, String index, String id, - DocumentStoreInterface documentStore) { + public ResponseEntity processDelete(String content, HttpServletRequest request, HttpHeaders headers, + HttpServletResponse httpResponse, String index, String id, + DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); @@ -198,20 +204,20 @@ public class DocumentApi { isValid = searchService.validateRequest(headers, request, ApiUtils.Action.DELETE, ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { - logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "DocumentApi.processDelete", + logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, + "DocumentApi.processDelete", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } - String resourceVersion = - headers.getRequestHeaders().getFirst(REQUEST_HEADER_RESOURCE_VERSION); + String resourceVersion = headers.getFirst(REQUEST_HEADER_RESOURCE_VERSION); if (resourceVersion == null || resourceVersion.isEmpty()) { return handleError(request, "Request header 'If-Match' missing", - javax.ws.rs.core.Response.Status.BAD_REQUEST); + HttpStatus.BAD_REQUEST); } DocumentStoreDataEntityImpl document = new DocumentStoreDataEntityImpl(); @@ -229,14 +235,14 @@ public class DocumentApi { if (httpResponse != null) { httpResponse.setHeader(RESPONSE_HEADER_RESOURCE_VERSION, result.getResultVersion()); } - Response response; + ResponseEntity response; if (output == null) { - response = Response.status(result.getResultCode()).build(); + response = ResponseEntity.status(result.getResultCode()).build(); } else { - response = Response.status(result.getResultCode()).entity(output).build(); + response = ResponseEntity.status(result.getResultCode()).contentType ( MediaType.APPLICATION_JSON ).body(output); } - logResult(request, Response.Status.fromStatusCode(response.getStatus())); + logResult(request, HttpStatus.valueOf ( response.getStatusCodeValue () )); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -244,13 +250,13 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } - public Response processGet(String content, HttpServletRequest request, HttpHeaders headers, - HttpServletResponse httpResponse, String index, String id, - DocumentStoreInterface documentStore) { + public ResponseEntity processGet(String content, HttpServletRequest request, HttpHeaders headers, + HttpServletResponse httpResponse, String index, String id, + DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); @@ -263,17 +269,17 @@ public class DocumentApi { isValid = searchService.validateRequest(headers, request, ApiUtils.Action.GET, ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { - logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "DocumentApi.processGet", + logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, + "DocumentApi.processGet", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } - String resourceVersion = - headers.getRequestHeaders().getFirst(REQUEST_HEADER_RESOURCE_VERSION); + String resourceVersion = headers.getFirst(REQUEST_HEADER_RESOURCE_VERSION); DocumentStoreDataEntityImpl document = new DocumentStoreDataEntityImpl(); document.setId(id); @@ -291,8 +297,8 @@ public class DocumentApi { if (httpResponse != null) { httpResponse.setHeader(RESPONSE_HEADER_RESOURCE_VERSION, result.getResultVersion()); } - Response response = Response.status(result.getResultCode()).entity(output).build(); - logResult(request, Response.Status.fromStatusCode(response.getStatus())); + ResponseEntity response = ResponseEntity.status(result.getResultCode()).contentType ( MediaType.APPLICATION_JSON ).body(output); + logResult(request, HttpStatus.valueOf ( response.getStatusCodeValue () )); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -300,12 +306,13 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } - public Response processSearchWithGet(String content, HttpServletRequest request, - HttpHeaders headers, String index, String queryText, DocumentStoreInterface documentStore) { + public ResponseEntity processSearchWithGet(String content, HttpServletRequest request, + HttpHeaders headers, String index, + String queryText, DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); @@ -319,26 +326,27 @@ public class DocumentApi { isValid = searchService.validateRequest(headers, request, ApiUtils.Action.GET, ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { - logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "processSearchWithGet", + logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, + "processSearchWithGet", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } SearchOperationResult result = documentStore.search(index, queryText); String output = null; if (result.getResultCode() >= 200 && result.getResultCode() <= 299) { - output = - mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getSearchResult()); + output = mapper.writerWithDefaultPrettyPrinter() + .writeValueAsString(result.getSearchResult()); } else { output = result.getError() != null ? mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getError()) : result.getFailureCause(); } - Response response = Response.status(result.getResultCode()).entity(output).build(); + ResponseEntity response = ResponseEntity.status(result.getResultCode()).contentType ( MediaType.APPLICATION_JSON ).body(output); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -346,32 +354,34 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } - public Response queryWithGetWithPayload(String content, HttpServletRequest request, - HttpHeaders headers, String index, DocumentStoreInterface documentStore) { + public ResponseEntity queryWithGetWithPayload(String content, HttpServletRequest request, + HttpHeaders headers, String index, + DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); - logger.info(SearchDbMsgs.PROCESS_PAYLOAD_QUERY, "GET", - (request != null) ? request.getRequestURL().toString() : ""); + logger.info(SearchDbMsgs.PROCESS_PAYLOAD_QUERY, "GET", (request != null) + ? request.getRequestURL ().toString () : ""); if (logger.isDebugEnabled()) { logger.debug("Request Body: " + content); } return processQuery(index, content, request, headers, documentStore); } - public Response processSearchWithPost(String content, HttpServletRequest request, - HttpHeaders headers, String index, DocumentStoreInterface documentStore) { + public ResponseEntity processSearchWithPost(String content, HttpServletRequest request, + HttpHeaders headers, String index, + DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); - logger.info(SearchDbMsgs.PROCESS_PAYLOAD_QUERY, "POST", - (request != null) ? request.getRequestURL().toString() : ""); + logger.info(SearchDbMsgs.PROCESS_PAYLOAD_QUERY, "POST", (request != null) + ? request.getRequestURL ().toString () : ""); if (logger.isDebugEnabled()) { logger.debug("Request Body: " + content); } @@ -379,14 +389,15 @@ public class DocumentApi { return processQuery(index, content, request, headers, documentStore); } - public Response processSuggestQueryWithPost(String content, HttpServletRequest request, - HttpHeaders headers, String index, DocumentStoreInterface documentStore) { + + public ResponseEntity processSuggestQueryWithPost(String content, HttpServletRequest request, + HttpHeaders headers, String index, DocumentStoreInterface documentStore) { // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); logger.info(SearchDbMsgs.PROCESS_PAYLOAD_QUERY, "POST", - (request != null) ? request.getRequestURL().toString() : ""); + (request != null) ? request.getRequestURL().toString() : ""); if (logger.isDebugEnabled()) { logger.debug("Request Body: " + content); } @@ -395,17 +406,17 @@ public class DocumentApi { } /** - * Common handler for query requests. This is called by both the GET with payload and POST with - * payload variants of the query endpoint. + * Common handler for query requests. This is called by both the GET with + * payload and POST with payload variants of the query endpoint. * - * @param index - The index to be queried against. + * @param index - The index to be queried against. * @param content - The payload containing the query structure. * @param request - The HTTP request. * @param headers - The HTTP headers. * @return - A standard HTTP response. */ - private Response processQuery(String index, String content, HttpServletRequest request, - HttpHeaders headers, DocumentStoreInterface documentStore) { + private ResponseEntity processQuery(String index, String content, HttpServletRequest request, + HttpHeaders headers, DocumentStoreInterface documentStore) { try { ObjectMapper mapper = new ObjectMapper(); @@ -413,7 +424,7 @@ public class DocumentApi { // Make sure that we were supplied a payload before proceeding. if (content == null) { - return handleError(request, content, Status.BAD_REQUEST); + return handleError(request, content, HttpStatus.BAD_REQUEST); } // Validate that the request has the appropriate authorization. @@ -423,12 +434,14 @@ public class DocumentApi { ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { - logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "processQuery", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, + "processQuery", + e.getMessage()); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } SearchStatement searchStatement; @@ -439,13 +452,13 @@ public class DocumentApi { searchStatement = mapper.readValue(content, SearchStatement.class); } catch (Exception e) { - return handleError(request, e.getMessage(), Status.BAD_REQUEST); + return handleError(request, e.getMessage(), HttpStatus.BAD_REQUEST); } // Now, submit the search statement, translated into // ElasticSearch syntax, to the document store DAO. - SearchOperationResult result = - documentStore.searchWithPayload(index, searchStatement.toElasticSearch()); + SearchOperationResult result = documentStore.searchWithPayload(index, + searchStatement.toElasticSearch()); String output = null; if (result.getResultCode() >= 200 && result.getResultCode() <= 299) { output = prepareOutput(mapper, result); @@ -454,7 +467,7 @@ public class DocumentApi { ? mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getError()) : result.getFailureCause(); } - Response response = Response.status(result.getResultCode()).entity(output).build(); + ResponseEntity response = ResponseEntity.status(result.getResultCode()).contentType ( MediaType.APPLICATION_JSON ).body(output); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -463,10 +476,11 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } + /** * Common handler for query requests. This is called by both the GET with payload and POST with * payload variants of the query endpoint. @@ -477,8 +491,8 @@ public class DocumentApi { * @param headers - The HTTP headers. * @return - A standard HTTP response. */ - private Response processSuggestQuery(String index, String content, HttpServletRequest request, - HttpHeaders headers, DocumentStoreInterface documentStore) { + private ResponseEntity processSuggestQuery(String index, String content, HttpServletRequest request, + HttpHeaders headers, DocumentStoreInterface documentStore) { try { ObjectMapper mapper = new ObjectMapper(); @@ -486,22 +500,22 @@ public class DocumentApi { // Make sure that we were supplied a payload before proceeding. if (content == null) { - return handleError(request, content, Status.BAD_REQUEST); + return handleError(request, content, HttpStatus.BAD_REQUEST); } // Validate that the request has the appropriate authorization. boolean isValid; try { isValid = searchService.validateRequest(headers, request, ApiUtils.Action.POST, - ApiUtils.SEARCH_AUTH_POLICY_NAME); + ApiUtils.SEARCH_AUTH_POLICY_NAME); } catch (Exception e) { logger.info(SearchDbMsgs.EXCEPTION_DURING_METHOD_CALL, "processQuery", e.getMessage()); - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } if (!isValid) { - return handleError(request, content, Status.FORBIDDEN); + return handleError(request, content, HttpStatus.FORBIDDEN); } SuggestionStatement suggestionStatement; @@ -512,22 +526,22 @@ public class DocumentApi { suggestionStatement = mapper.readValue(content, SuggestionStatement.class); } catch (Exception e) { - return handleError(request, e.getMessage(), Status.BAD_REQUEST); + return handleError(request, e.getMessage(), HttpStatus.BAD_REQUEST); } // Now, submit the search statement, translated into // ElasticSearch syntax, to the document store DAO. SearchOperationResult result = - documentStore.suggestionQueryWithPayload(index, suggestionStatement.toElasticSearch()); + documentStore.suggestionQueryWithPayload(index, suggestionStatement.toElasticSearch()); String output = null; if (result.getResultCode() >= 200 && result.getResultCode() <= 299) { output = prepareSuggestOutput(mapper, result); } else { output = result.getError() != null - ? mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getError()) - : result.getFailureCause(); + ? mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getError()) + : result.getFailureCause(); } - Response response = Response.status(result.getResultCode()).entity(output).build(); + ResponseEntity response = ResponseEntity.status(result.getResultCode()).body(output); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -536,82 +550,83 @@ public class DocumentApi { return response; } catch (Exception e) { - return handleError(request, e.getMessage(), Status.INTERNAL_SERVER_ERROR); + return handleError(request, e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } - + /** - * Checks the supplied HTTP headers to see if we should allow the underlying document store to - * implicitly create the index referenced in a document PUT or POST if it does not already exist - * in the data store. + * Checks the supplied HTTP headers to see if we should allow the underlying document + * store to implicitly create the index referenced in a document PUT or POST if it + * does not already exist in the data store. * * @param headers - The HTTP headers to examine. * - * @return - true if the headers indicate that missing indices should be implicitly created, false - * otherwise. + * @return - true if the headers indicate that missing indices should be implicitly created, + * false otherwise. */ private boolean implicitlyCreateIndex(HttpHeaders headers) { - + boolean createIndexIfNotPresent = false; - String implicitIndexCreationHeader = - headers.getRequestHeaders().getFirst(REQUEST_HEADER_ALLOW_IMPLICIT_INDEX_CREATION); - - if ((implicitIndexCreationHeader != null) && (implicitIndexCreationHeader.equals("true"))) { + String implicitIndexCreationHeader = + headers.getFirst(REQUEST_HEADER_ALLOW_IMPLICIT_INDEX_CREATION); + + if( (implicitIndexCreationHeader != null) && (implicitIndexCreationHeader.equals("true")) ) { createIndexIfNotPresent = true; } - + return createIndexIfNotPresent; } private String prepareOutput(ObjectMapper mapper, SearchOperationResult result) - throws JsonProcessingException { + throws JsonProcessingException { StringBuffer output = new StringBuffer(); output.append("{\r\n\"searchResult\":"); output.append( - mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getSearchResult())); + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getSearchResult())); AggregationResults aggs = result.getAggregationResult(); if (aggs != null) { output.append(",\r\n\"aggregationResult\":"); output.append(mapper.setSerializationInclusion(Include.NON_NULL) - .writerWithDefaultPrettyPrinter().writeValueAsString(aggs)); + .writerWithDefaultPrettyPrinter().writeValueAsString(aggs)); } output.append("\r\n}"); return output.toString(); } private String prepareSuggestOutput(ObjectMapper mapper, SearchOperationResult result) - throws JsonProcessingException { + throws JsonProcessingException { StringBuffer output = new StringBuffer(); output.append("{\r\n\"searchResult\":"); output.append( - mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getSuggestResult())); + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result.getSuggestResult())); AggregationResults aggs = result.getAggregationResult(); if (aggs != null) { output.append(",\r\n\"aggregationResult\":"); output.append(mapper.setSerializationInclusion(Include.NON_NULL) - .writerWithDefaultPrettyPrinter().writeValueAsString(aggs)); + .writerWithDefaultPrettyPrinter().writeValueAsString(aggs)); } output.append("\r\n}"); return output.toString(); } - private Response handleError(HttpServletRequest request, String message, Status status) { + private ResponseEntity handleError( HttpServletRequest request, String message, HttpStatus status) { logResult(request, status); - return Response.status(status).entity(message).type(MediaType.APPLICATION_JSON).build(); + return ResponseEntity.status(status).contentType ( MediaType.APPLICATION_JSON ).body(message); } - void logResult(HttpServletRequest request, Response.Status status) { + void logResult(HttpServletRequest request, HttpStatus status) { - logger.info(SearchDbMsgs.PROCESS_REST_REQUEST, (request != null) ? request.getMethod() : "", - (request != null) ? request.getRequestURL().toString() : "", - (request != null) ? request.getRemoteHost() : "", Integer.toString(status.getStatusCode())); + logger.info(SearchDbMsgs.PROCESS_REST_REQUEST, (request != null) ? request.getMethod().toString () : "", + (request != null) ? request.getRequestURL ().toString () : "", + (request != null) ? request.getRemoteHost () : "", Integer.toString(status.value ())); auditLogger.info(SearchDbMsgs.PROCESS_REST_REQUEST, - new LogFields().setField(LogLine.DefinedFields.RESPONSE_CODE, status.getStatusCode()) + new LogFields() + .setField(LogLine.DefinedFields.RESPONSE_CODE, status.value()) .setField(LogLine.DefinedFields.RESPONSE_DESCRIPTION, status.getReasonPhrase()), - (request != null) ? request.getMethod() : "", - (request != null) ? request.getRequestURL().toString() : "", - (request != null) ? request.getRemoteHost() : "", Integer.toString(status.getStatusCode())); + (request != null) ? request.getMethod().toString () : "", + (request != null) ? request.getRequestURL ().toString () : "", + (request != null) ? request.getRemoteHost () : "", Integer.toString(status.value())); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id.