List of usage examples for com.fasterxml.jackson.databind ObjectWriter withView
public ObjectWriter withView(Class<?> view)
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
From source file:com.groupon.odo.controllers.BackupController.java
/** * Get all backup data//from ww w . j a v a 2 s .com * * @param model * @return * @throws Exception */ @SuppressWarnings("deprecation") @RequestMapping(value = "/api/backup", method = RequestMethod.GET) public @ResponseBody String getBackup(Model model, HttpServletResponse response) throws Exception { response.addHeader("Content-Disposition", "attachment; filename=backup.json"); response.setContentType("application/json"); Backup backup = BackupService.getInstance().getBackupData(); ObjectMapper objectMapper = new ObjectMapper(); ObjectWriter writer = objectMapper.writerWithDefaultPrettyPrinter(); return writer.withView(ViewFilters.Default.class).writeValueAsString(backup); }
From source file:com.groupon.odo.proxylib.models.History.java
public void setFormattedResponseData(String data) throws Exception { this.formattedResponseData = data; if (data != null && !data.equals("") && responseContentType != null && responseContentType.toLowerCase().indexOf("application/json") != -1) { // try to format it try {/*from w w w . j a v a2 s . c o m*/ ObjectMapper objectMapper = new ObjectMapper(); ObjectWriter writer = objectMapper.writerWithDefaultPrettyPrinter(); Object json = objectMapper.readValue(data, Object.class); this.formattedResponseData = writer.withView(ViewFilters.Default.class).writeValueAsString(json); } catch (JsonParseException jpe) { // nothing to do here as this.formattedResponseData was already set to the appropriate data } } }
From source file:com.groupon.odo.proxylib.models.History.java
public void setFormattedOriginalResponseData(String originalResponseData) throws Exception { this.formattedOriginalResponseData = originalResponseData; if (originalResponseData != null && !originalResponseData.equals("") && originalResponseContentType != null && originalResponseContentType.toLowerCase().indexOf("application/json") != -1) { try {//w w w. j a v a2 s . c o m // try to format it ObjectMapper objectMapper = new ObjectMapper(); ObjectWriter writer = objectMapper.writerWithDefaultPrettyPrinter(); Object json = objectMapper.readValue(originalResponseData, Object.class); this.formattedOriginalResponseData = writer.withView(ViewFilters.Default.class) .writeValueAsString(json); } catch (JsonParseException jpe) { // nothing to do here as this.formattedResponseData was already set to the appropriate data } } }
From source file:com.groupon.odo.controllers.BackupController.java
/** * API call to backup active overreides and active server group for a client * Can also backup entire odo configuration * * @param model/*from w w w . j a v a 2 s . c o m*/ * @param response * @param profileID Id of profile to backup * @param clientUUID Client Id to backup * @param odoExport Flag to also include whole odo backup in client backpu * @return * @throws Exception */ @SuppressWarnings("deprecation") @RequestMapping(value = "/api/backup/profile/{profileID}/{clientUUID}", method = RequestMethod.GET) public @ResponseBody String getSingleProfileConfiguration(Model model, HttpServletResponse response, @PathVariable int profileID, @PathVariable String clientUUID, @RequestParam(value = "odoExport", defaultValue = "false") boolean odoExport) throws Exception { response.setContentType("application/json"); ObjectMapper objectMapper = new ObjectMapper(); ObjectWriter writer = objectMapper.writerWithDefaultPrettyPrinter(); if (odoExport) { response.addHeader("Content-Disposition", "attachment; filename=Config_and_Profile_Backup.json"); ConfigAndProfileBackup configAndProfileBackup = BackupService.getInstance() .getConfigAndProfileData(profileID, clientUUID); return writer.withView(ViewFilters.Default.class).writeValueAsString(configAndProfileBackup); } else { response.addHeader("Content-Disposition", "attachment; filename=Enabled_Endpoints.json"); SingleProfileBackup singleProfileBackup = BackupService.getInstance().getProfileBackupData(profileID, clientUUID); return writer.withView(ViewFilters.Default.class).writeValueAsString(singleProfileBackup); } }
From source file:com.basistech.rosette.api.HttpRosetteAPI.java
/** * Sends a POST request to Rosette API./*w ww .j a v a 2 s .c o m*/ * <p> * Returns a Response. * * @param urlStr Rosette API end point. * @param clazz Response class * @return Response * @throws IOException */ private <T> T sendPostRequest(Object request, String urlStr, Class<T> clazz) throws IOException, URISyntaxException { ObjectWriter writer = mapper.writer().without(JsonGenerator.Feature.AUTO_CLOSE_TARGET); boolean notPlainText = false; if (request instanceof DocumentRequest) { Object rawContent = ((DocumentRequest) request).getRawContent(); if (rawContent instanceof String) { writer = writer.withView(DocumentRequestMixin.Views.Content.class); } else if (rawContent != null) { notPlainText = true; } } else if (request instanceof AdmRequest) { notPlainText = true; } URIBuilder uriBuilder = new URIBuilder(urlStr); if (AdmResponse.class.isAssignableFrom(clazz)) { //TODO: change output=rosette to Accept: model/vnd.rosette.annotated-data-model header uriBuilder.addParameter("output", "rosette"); } final ObjectWriter finalWriter = writer; HttpPost post = new HttpPost(uriBuilder.build()); for (Header header : additionalHeaders) { post.addHeader(header); } //TODO: add compression! if (notPlainText) { setupMultipartRequest((Request) request, finalWriter, post); } else { setupPlainRequest(request, finalWriter, post); } HttpRosetteAPIException lastException = null; int numRetries = this.failureRetries; while (numRetries-- > 0) { try (CloseableHttpResponse response = httpClient.execute(post)) { T resp = getResponse(response, clazz); Header ridHeader = response.getFirstHeader("X-RosetteAPI-DocumentRequest-Id"); if (ridHeader != null && ridHeader.getValue() != null) { LOG.debug("DocumentRequest ID " + ridHeader.getValue()); } if (resp instanceof Response) { responseHeadersToExtendedInformation((Response) resp, response); } return resp; } catch (HttpRosetteAPIException e) { // only 5xx errors are worthy retrying, others throw right away if (e.getHttpStatusCode() < 500) { throw e; } else { lastException = e; } } } throw lastException; }
From source file:com.basistech.rosette.api.RosetteAPI.java
/** * Sends a POST request to Rosette API./* w w w . ja v a2s.c om*/ * <p> * Returns a Response. * * @param urlStr Rosette API end point. * @param clazz Response class * @return Response * @throws RosetteAPIException * @throws IOException */ private <T extends Response> T sendPostRequest(Object request, String urlStr, Class<T> clazz) throws RosetteAPIException, IOException { ObjectWriter writer = mapper.writer().without(JsonGenerator.Feature.AUTO_CLOSE_TARGET); boolean notPlainText = false; if (request instanceof DocumentRequest) { Object rawContent = ((DocumentRequest) request).getRawContent(); if (rawContent instanceof String) { writer = writer.withView(DocumentRequestMixin.Views.Content.class); } else if (rawContent != null) { notPlainText = true; } } final ObjectWriter finalWriter = writer; HttpPost post = new HttpPost(urlStr); for (Header header : additionalHeaders) { post.addHeader(header); } //TODO: add compression! if (notPlainText) { setupMultipartRequest((DocumentRequest) request, finalWriter, post); } else { setupPlainRequest(request, finalWriter, post); } RosetteAPIException lastException = null; int numRetries = this.failureRetries; while (numRetries-- > 0) { HttpResponse response = null; try { response = httpClient.execute(post); T resp = getResponse(response, clazz); Header ridHeader = response.getFirstHeader("X-RosetteAPI-DocumentRequest-Id"); if (ridHeader != null && ridHeader.getValue() != null) { LOG.debug("DocumentRequest ID " + ridHeader.getValue()); } responseHeadersToExtendedInformation(resp, response); return resp; } catch (RosetteAPIException e) { // only 5xx errors are worthy retrying, others throw right away if (e.getHttpStatusCode() < 500) { throw e; } else { lastException = e; } } finally { if (response != null) { if (response instanceof CloseableHttpResponse) { ((CloseableHttpResponse) response).close(); } } } } throw lastException; }