List of usage examples for com.fasterxml.jackson.databind ObjectMapper getFactory
@Override
public JsonFactory getFactory()
From source file:gov.bnl.channelfinder.ChannelsResource.java
/** * GET method for retrieving an instance of Channel identified by <tt>chan</tt>. * * @param chan channel name//w ww .j a v a2s .c o m * @return HTTP Response */ @GET @Path("{chName: " + chNameRegex + "}") @Produces({ "application/json" }) public Response read(@PathParam("chName") String chan) { audit.info("getting ch:" + chan); Client client = ElasticSearchClient.getSearchClient(); String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; try { final GetResponse response = client.prepareGet("channelfinder", "channel", chan).execute().actionGet(); Response r; if (response.isExists()) { final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlProperty.class, OnlyXmlProperty.class); mapper.addMixIn(XmlTag.class, OnlyXmlTag.class); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeObject(mapper.readValue(response.getSourceAsBytes(), XmlChannel.class)); jg.flush(); jg.close(); } }; r = Response.ok(stream).build(); } else { r = Response.status(Response.Status.NOT_FOUND).build(); } log.fine(user + "|" + uriInfo.getPath() + "|GET|OK|" + r.getStatus()); return r; } catch (Exception e) { return handleException(user, "GET", Response.Status.INTERNAL_SERVER_ERROR, e); } finally { } }
From source file:gov.bnl.channelfinder.ChannelsResource.java
/** * GET method for retrieving a collection of Channel instances, * based on a multi-parameter query specifiying patterns for tags, property values, * and channel names to match against./*from w ww . ja v a 2 s .c o m*/ * * @return HTTP Response */ @GET @Produces({ "application/json" }) public Response query() { StringBuffer performance = new StringBuffer(); long start = System.currentTimeMillis(); long totalStart = System.currentTimeMillis(); Client client = ElasticSearchClient.getSearchClient(); start = System.currentTimeMillis(); String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; try { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); BoolQueryBuilder qb = boolQuery(); int size = 10000; for (Entry<String, List<String>> parameter : parameters.entrySet()) { switch (parameter.getKey()) { case "~name": for (String value : parameter.getValue()) { DisMaxQueryBuilder nameQuery = disMaxQuery(); for (String pattern : value.split("\\|")) { nameQuery.add(wildcardQuery("name", pattern.trim())); } qb.must(nameQuery); } break; case "~tag": for (String value : parameter.getValue()) { DisMaxQueryBuilder tagQuery = disMaxQuery(); for (String pattern : value.split("\\|")) { tagQuery.add(wildcardQuery("tags.name", pattern.trim())); } qb.must(nestedQuery("tags", tagQuery)); } break; case "~size": Optional<String> maxSize = parameter.getValue().stream().max((o1, o2) -> { return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); }); if (maxSize.isPresent()) { size = Integer.valueOf(maxSize.get()); } default: DisMaxQueryBuilder propertyQuery = disMaxQuery(); for (String value : parameter.getValue()) { for (String pattern : value.split("\\|")) { propertyQuery.add(nestedQuery("properties", boolQuery().must(matchQuery("properties.name", parameter.getKey().trim())) .must(wildcardQuery("properties.value", pattern.trim())))); } } qb.must(propertyQuery); break; } } performance.append("|prepare:" + (System.currentTimeMillis() - start)); start = System.currentTimeMillis(); final SearchResponse qbResult = client.prepareSearch("channelfinder").setQuery(qb).setSize(size) .execute().actionGet(); performance.append( "|query:(" + qbResult.getHits().getTotalHits() + ")" + (System.currentTimeMillis() - start)); start = System.currentTimeMillis(); final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlProperty.class, OnlyXmlProperty.class); mapper.addMixIn(XmlTag.class, OnlyXmlTag.class); start = System.currentTimeMillis(); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartArray(); if (qbResult != null) { for (SearchHit hit : qbResult.getHits()) { jg.writeObject(mapper.readValue(hit.source(), XmlChannel.class)); jg.flush(); } } jg.writeEndArray(); jg.flush(); jg.close(); } }; performance.append("|parse:" + (System.currentTimeMillis() - start)); Response r = Response.ok(stream).build(); log.info(user + "|" + uriInfo.getPath() + "|GET|OK" + performance.toString() + "|total:" + (System.currentTimeMillis() - totalStart) + "|" + r.getStatus() + "|returns " + qbResult.getHits().getTotalHits() + " channels"); // log.info( qbResult.getHits().getTotalHits() + " " +(System.currentTimeMillis() - totalStart)); return r; } catch (Exception e) { return handleException(user, "GET", Response.Status.INTERNAL_SERVER_ERROR, e); } finally { } }
From source file:tachyon.master.MasterInfoIntegrationTest.java
@Test public void writeImageTest() throws IOException { // initialize the MasterInfo Journal journal = new Journal(mLocalTachyonCluster.getTachyonHome() + "journal/", "image.data", "log.data", mMasterTachyonConf);//from w ww. j av a 2 s. c o m MasterInfo info = new MasterInfo(new InetSocketAddress(9999), journal, mExecutorService, mMasterTachyonConf); // create the output streams ByteArrayOutputStream os = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(os); ObjectMapper mapper = JsonObject.createObjectMapper(); ObjectWriter writer = mapper.writer(); ImageElement version = null; ImageElement checkpoint = null; // write the image info.writeImage(writer, dos); // parse the written bytes and look for the Checkpoint and Version ImageElements String[] splits = new String(os.toByteArray()).split("\n"); for (String split : splits) { byte[] bytes = split.getBytes(); JsonParser parser = mapper.getFactory().createParser(bytes); ImageElement ele = parser.readValueAs(ImageElement.class); if (ele.mType.equals(ImageElementType.Checkpoint)) { checkpoint = ele; } if (ele.mType.equals(ImageElementType.Version)) { version = ele; } } // test the elements Assert.assertNotNull(checkpoint); Assert.assertEquals(checkpoint.mType, ImageElementType.Checkpoint); Assert.assertEquals(Constants.JOURNAL_VERSION, version.getInt("version").intValue()); Assert.assertEquals(1, checkpoint.getInt("inodeCounter").intValue()); Assert.assertEquals(0, checkpoint.getInt("editTransactionCounter").intValue()); Assert.assertEquals(0, checkpoint.getInt("dependencyCounter").intValue()); }
From source file:gov.bnl.channelfinder.PropertiesResource.java
/** * GET method for retrieving the list of properties in the database. * * @return list of properties/* w w w . j a v a 2s .c o m*/ */ @GET @Produces({ MediaType.APPLICATION_JSON }) public Response list() { Client client = getNewClient(); final String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlProperty.class, OnlyXmlProperty.class); try { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); int size = 10000; if (parameters.containsKey("~size")) { Optional<String> maxSize = parameters.get("~size").stream().max((o1, o2) -> { return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); }); if (maxSize.isPresent()) { size = Integer.valueOf(maxSize.get()); } } final SearchResponse response = client.prepareSearch("properties").setTypes("property") .setQuery(new MatchAllQueryBuilder()).setSize(size).execute().actionGet(); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartArray(); if (response != null) { for (SearchHit hit : response.getHits()) { jg.writeObject(mapper.readValue(hit.source(), XmlProperty.class)); } } jg.writeEndArray(); jg.flush(); jg.close(); } }; Response r = Response.ok(stream).build(); audit.info(user + "|" + uriInfo.getPath() + "|GET|OK|" + r.getStatus() + "|returns " + response.getHits().getTotalHits() + " properties"); return r; } catch (Exception e) { return handleException(user, "GET", Response.Status.INTERNAL_SERVER_ERROR, e); } finally { client.close(); } }
From source file:gov.bnl.channelfinder.TagsResource.java
/** * GET method for retrieving the list of tags in the database. * * @return list of tags/*w w w . j av a 2s . c om*/ */ @GET @Produces({ MediaType.APPLICATION_JSON }) public Response list() { Client client = getNewClient(); String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlTag.class, OnlyXmlTag.class); try { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); int size = 10000; if (parameters.containsKey("~size")) { Optional<String> maxSize = parameters.get("~size").stream().max((o1, o2) -> { return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); }); if (maxSize.isPresent()) { size = Integer.valueOf(maxSize.get()); } } final SearchResponse response = client.prepareSearch("tags").setTypes("tag") .setQuery(new MatchAllQueryBuilder()).setSize(size).execute().actionGet(); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartArray(); if (response != null) { for (SearchHit hit : response.getHits()) { jg.writeObject(mapper.readValue(hit.source(), XmlTag.class)); } } jg.writeEndArray(); jg.flush(); jg.close(); } }; Response r = Response.ok(stream).build(); log.fine(user + "|" + uriInfo.getPath() + "|GET|OK|" + r.getStatus() + response.getTook() + "|returns " + response.getHits().getTotalHits() + " tags"); return r; } catch (Exception e) { return handleException(user, Response.Status.INTERNAL_SERVER_ERROR, e); } finally { client.close(); } }
From source file:ch.ralscha.extdirectspring.controller.RouterController.java
@SuppressWarnings("resource") public void writeJsonResponse(HttpServletResponse response, Object responseObject, Class<?> jsonView, boolean streamResponse, boolean isMultipart) throws IOException { ObjectMapper objectMapper = this.configurationService.getJsonHandler().getMapper(); if (isMultipart) { response.setContentType(RouterController.TEXT_HTML.toString()); response.setCharacterEncoding(RouterController.TEXT_HTML.getCharset().name()); ByteArrayOutputStream bos = new ByteArrayOutputStream(1024); bos.write("<html><body><textarea>".getBytes(ExtDirectSpringUtil.UTF8_CHARSET)); String responseJson;/*from w ww. j av a 2s . c o m*/ if (jsonView == null) { responseJson = objectMapper.writeValueAsString(responseObject); } else { responseJson = objectMapper.writerWithView(jsonView).writeValueAsString(responseObject); } responseJson = responseJson.replace(""", "\\""); bos.write(responseJson.getBytes(ExtDirectSpringUtil.UTF8_CHARSET)); String frameDomain = this.configurationService.getConfiguration().getFrameDomain(); String frameDomainScript = ""; if (frameDomain != null) { frameDomainScript = String .format(this.configurationService.getConfiguration().getFrameDomainScript(), frameDomain); } bos.write(("</textarea>" + frameDomainScript + "</body></html>") .getBytes(ExtDirectSpringUtil.UTF8_CHARSET)); response.setContentLength(bos.size()); FileCopyUtils.copy(bos.toByteArray(), response.getOutputStream()); } else { response.setContentType(APPLICATION_JSON.toString()); response.setCharacterEncoding(APPLICATION_JSON.getCharset().name()); ServletOutputStream outputStream = response.getOutputStream(); if (!streamResponse) { ByteArrayOutputStream bos = new ByteArrayOutputStream(1024); JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(bos, JsonEncoding.UTF8); if (jsonView == null) { objectMapper.writeValue(jsonGenerator, responseObject); } else { objectMapper.writerWithView(jsonView).writeValue(jsonGenerator, responseObject); } response.setContentLength(bos.size()); outputStream.write(bos.toByteArray()); jsonGenerator.close(); } else { JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(outputStream, JsonEncoding.UTF8); if (jsonView == null) { objectMapper.writeValue(jsonGenerator, responseObject); } else { objectMapper.writerWithView(jsonView).writeValue(jsonGenerator, responseObject); } jsonGenerator.close(); } outputStream.flush(); } }