List of usage examples for com.fasterxml.jackson.core JsonFactory JsonFactory
public JsonFactory()
From source file:org.restlet.ext.jackson.JacksonRepresentation.java
/** * Creates a Jackson object mapper based on a media type. It supports JSON, * JSON Smile, XML, YAML and CSV.//www . j av a 2 s.com * * @return The Jackson object mapper. */ protected ObjectMapper createObjectMapper() { ObjectMapper result = null; if (MediaType.APPLICATION_JSON.isCompatible(getMediaType())) { JsonFactory jsonFactory = new JsonFactory(); jsonFactory.configure(Feature.AUTO_CLOSE_TARGET, false); result = new ObjectMapper(jsonFactory); } else if (MediaType.APPLICATION_JSON_SMILE.isCompatible(getMediaType())) { SmileFactory smileFactory = new SmileFactory(); smileFactory.configure(Feature.AUTO_CLOSE_TARGET, false); result = new ObjectMapper(smileFactory); // [ifndef android] } else if (MediaType.APPLICATION_XML.isCompatible(getMediaType()) || MediaType.TEXT_XML.isCompatible(getMediaType())) { javax.xml.stream.XMLInputFactory xif = XmlFactoryProvider.newInputFactory(); xif.setProperty(javax.xml.stream.XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, isExpandingEntityRefs()); xif.setProperty(javax.xml.stream.XMLInputFactory.SUPPORT_DTD, isExpandingEntityRefs()); xif.setProperty(javax.xml.stream.XMLInputFactory.IS_VALIDATING, isValidatingDtd()); javax.xml.stream.XMLOutputFactory xof = XmlFactoryProvider.newOutputFactory(); XmlFactory xmlFactory = new XmlFactory(xif, xof); xmlFactory.configure(Feature.AUTO_CLOSE_TARGET, false); result = new XmlMapper(xmlFactory); // [enddef] } else if (MediaType.APPLICATION_YAML.isCompatible(getMediaType()) || MediaType.TEXT_YAML.isCompatible(getMediaType())) { YAMLFactory yamlFactory = new YAMLFactory(); yamlFactory.configure(Feature.AUTO_CLOSE_TARGET, false); result = new ObjectMapper(yamlFactory); } else if (MediaType.TEXT_CSV.isCompatible(getMediaType())) { CsvFactory csvFactory = new CsvFactory(); csvFactory.configure(Feature.AUTO_CLOSE_TARGET, false); result = new CsvMapper(csvFactory); } else { JsonFactory jsonFactory = new JsonFactory(); jsonFactory.configure(Feature.AUTO_CLOSE_TARGET, false); result = new ObjectMapper(jsonFactory); } return result; }
From source file:org.elasticsearch.client.sniff.ElasticsearchNodesSnifferTests.java
private static SniffResponse buildSniffResponse(ElasticsearchNodesSniffer.Scheme scheme) throws IOException { int numNodes = RandomNumbers.randomIntBetween(getRandom(), 1, 5); List<Node> nodes = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();/* w ww. ja v a 2 s. c om*/ if (getRandom().nextBoolean()) { generator.writeStringField("cluster_name", "elasticsearch"); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeObjectFieldStart("nodes"); for (int i = 0; i < numNodes; i++) { String nodeId = RandomStrings.randomAsciiOfLengthBetween(getRandom(), 5, 10); String host = "host" + i; int port = RandomNumbers.randomIntBetween(getRandom(), 9200, 9299); HttpHost publishHost = new HttpHost(host, port, scheme.toString()); Set<HttpHost> boundHosts = new HashSet<>(); boundHosts.add(publishHost); if (randomBoolean()) { int bound = between(1, 5); for (int b = 0; b < bound; b++) { boundHosts.add(new HttpHost(host + b, port, scheme.toString())); } } int numAttributes = between(0, 5); Map<String, List<String>> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { int numValues = frequently() ? 1 : between(2, 5); List<String> values = new ArrayList<>(); for (int v = 0; v < numValues; v++) { values.add(j + "value" + v); } attributes.put("attr" + j, values); } Node node = new Node(publishHost, boundHosts, randomAsciiAlphanumOfLength(5), randomAsciiAlphanumOfLength(5), new Node.Roles(randomBoolean(), randomBoolean(), randomBoolean()), attributes); generator.writeObjectFieldStart(nodeId); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bogus_array"); generator.writeStartObject(); generator.writeEndObject(); generator.writeEndArray(); } boolean isHttpEnabled = rarely() == false; if (isHttpEnabled) { nodes.add(node); generator.writeObjectFieldStart("http"); generator.writeArrayFieldStart("bound_address"); for (HttpHost bound : boundHosts) { generator.writeString(bound.toHostString()); } generator.writeEndArray(); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", publishHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } List<String> roles = Arrays.asList(new String[] { "master", "data", "ingest" }); Collections.shuffle(roles, getRandom()); generator.writeArrayFieldStart("roles"); for (String role : roles) { if ("master".equals(role) && node.getRoles().isMasterEligible()) { generator.writeString("master"); } if ("data".equals(role) && node.getRoles().isData()) { generator.writeString("data"); } if ("ingest".equals(role) && node.getRoles().isIngest()) { generator.writeString("ingest"); } } generator.writeEndArray(); generator.writeFieldName("version"); generator.writeString(node.getVersion()); generator.writeFieldName("name"); generator.writeString(node.getName()); if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); for (Map.Entry<String, List<String>> entry : attributes.entrySet()) { if (entry.getValue().size() == 1) { generator.writeStringField(entry.getKey(), entry.getValue().get(0)); } else { for (int v = 0; v < entry.getValue().size(); v++) { generator.writeStringField(entry.getKey() + "." + v, entry.getValue().get(v)); } } } generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), nodes); }
From source file:org.graylog.plugins.nats.output.AbstractGelfNatsOutput.java
protected byte[] toGELFMessage(final Message message) throws IOException { final HashMap<String, Object> fields = new HashMap<>(message.getFields()); final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(512); final JsonFactory jsonFactory = new JsonFactory(); final JsonGenerator generator = jsonFactory.createGenerator(outputStream); generator.writeStartObject();/* w w w . ja va2 s . c o m*/ generator.writeStringField("version", "1.1"); generator.writeStringField("host", (String) fields.remove(Message.FIELD_SOURCE)); generator.writeStringField("short_message", (String) fields.remove(Message.FIELD_MESSAGE)); final String fullMessage = (String) fields.remove(Message.FIELD_FULL_MESSAGE); if (fullMessage != null) { generator.writeStringField("full_message", fullMessage); } final Object fieldTimeStamp = fields.remove(Message.FIELD_TIMESTAMP); final DateTime timestamp; if (fieldTimeStamp instanceof DateTime) { timestamp = (DateTime) fieldTimeStamp; } else { timestamp = Tools.nowUTC(); } generator.writeNumberField("timestamp", timestamp.getMillis() / 1000d); final Object fieldLevel = fields.remove(Message.FIELD_TIMESTAMP); final Integer level = extractLevel(fieldLevel); if (level != null) { generator.writeNumberField("level", level); } for (Map.Entry<String, Object> field : fields.entrySet()) { final String key = field.getKey(); final Object value = field.getValue(); if (value instanceof String) { generator.writeStringField(key, (String) value); } else if (value instanceof Boolean) { generator.writeBooleanField(key, (Boolean) value); } else if (value instanceof Integer) { generator.writeNumberField(key, (Integer) value); } else if (value instanceof Long) { generator.writeNumberField(key, (Long) value); } else if (value instanceof Float) { generator.writeNumberField(key, (Float) value); } else if (value instanceof Double) { generator.writeNumberField(key, (Double) value); } else if (value instanceof BigDecimal) { generator.writeNumberField(key, (BigDecimal) value); } else if (value == null) { generator.writeNullField(key); } } generator.writeStringField("_forwarder_cluster_id", clusterId); generator.writeStringField("_forwarder_node_id", nodeId); generator.writeEndObject(); generator.flush(); return outputStream.toByteArray(); }
From source file:com.greplin.gec.GecLog4jAppender.java
/** * Writes a formatted exception to the given writer. * * @param message the log message//w w w .j av a 2 s .c o m * @param throwable the exception * @param level the error level * @param out the destination * @throws IOException if there are IO errors in the destination */ void writeFormattedException(final String message, final Throwable throwable, final Level level, final Writer out) throws IOException { JsonGenerator generator = new JsonFactory().createJsonGenerator(out); Throwable rootThrowable = throwable; while (this.passthroughExceptions.contains(rootThrowable.getClass()) && rootThrowable.getCause() != null) { rootThrowable = rootThrowable.getCause(); } generator.writeStartObject(); generator.writeStringField("project", this.project); generator.writeStringField("environment", this.environment); generator.writeStringField("serverName", this.serverName); generator.writeStringField("backtrace", ExceptionUtils.getStackTrace(throwable)); generator.writeStringField("message", rootThrowable.getMessage()); generator.writeStringField("logMessage", message); generator.writeStringField("type", rootThrowable.getClass().getName()); if (level != Level.ERROR) { generator.writeStringField("errorLevel", level.toString()); } writeContext(generator); generator.writeEndObject(); generator.close(); }
From source file:org.apache.olingo.fit.utils.Commons.java
public static InputStream changeFormat(final InputStream is, final Accept target) { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); try {/*from w w w.j av a 2 s . com*/ IOUtils.copy(is, bos); IOUtils.closeQuietly(is); final ObjectMapper mapper = new ObjectMapper( new JsonFactory().configure(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS, true)); final JsonNode node = changeFormat( (ObjectNode) mapper.readTree(new ByteArrayInputStream(bos.toByteArray())), target); return IOUtils.toInputStream(node.toString(), Constants.ENCODING); } catch (Exception e) { LOG.error("Error changing format", e); return new ByteArrayInputStream(bos.toByteArray()); } finally { IOUtils.closeQuietly(is); } }
From source file:com.joliciel.jochre.search.highlight.Snippet.java
public String toJson() { try {/* w w w .j a v a 2 s . c o m*/ DecimalFormatSymbols enSymbols = new DecimalFormatSymbols(Locale.US); DecimalFormat df = new DecimalFormat("0.00", enSymbols); StringWriter writer = new StringWriter(); JsonFactory jsonFactory = new JsonFactory(); JsonGenerator jsonGen = jsonFactory.createGenerator(writer); this.toJson(jsonGen, df); writer.flush(); String json = writer.toString(); return json; } catch (IOException ioe) { LogUtils.logError(LOG, ioe); throw new RuntimeException(ioe); } }
From source file:org.eclipse.winery.repository.resources.servicetemplates.plans.PlansResource.java
@POST @RestDoc(methodDescription = "<p>Linked plans are currently not supported. Existing plans with the same id are overwritten</p> <p>@return JSON with .tableData: Array with row data for dataTable</p>") @Consumes({ MediaType.MULTIPART_FORM_DATA }) @Produces(MediaType.APPLICATION_JSON)/* w w w. ja va 2s . c o m*/ // the supertype consumes JSON and XML at org.eclipse.winery.repository.resources._support.collections.EntityCollectionResource.addNewElement(EntityT) // @formatter:off public Response onPost(@FormDataParam("planName") String name, @FormDataParam("planType") String type, @FormDataParam("planLanguage") @RestDocParam(description = "the plan language (e..g, BPMN or BPEL). Full URL.") String language, @FormDataParam("file") @RestDocParam(description = "(optional in the case of BPMN4TOSCA) file containing the plan.") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileDetail, @FormDataParam("file") FormDataBodyPart body) { // @formatter:on if (StringUtils.isEmpty(name)) { return Response.status(Status.BAD_REQUEST).entity("planName must be given").build(); } if (StringUtils.isEmpty(type)) { return Response.status(Status.BAD_REQUEST).entity("planType must be given").build(); } if (StringUtils.isEmpty(language)) { return Response.status(Status.BAD_REQUEST).entity("planLanguage must be given").build(); } boolean bpmn4toscaMode = org.eclipse.winery.common.constants.Namespaces.URI_BPMN4TOSCA_20.equals(language); if (!bpmn4toscaMode) { if (uploadedInputStream == null) { return Response.status(Status.BAD_REQUEST).entity("file must be given").build(); } } // A plan carries both a name and an ID // To be user-friendly, we create the ID based on the name // the drawback is, that we do not allow two plans with the same name // during creation, but allow renaming plans to the same name (as we do // not allow ID renaming) String xmlId = Utils.createXMLidAsString(name); // BEGIN: Store plan file // Determine Id PlansId plansId = new PlansId((ServiceTemplateId) ((ServiceTemplateResource) this.res).getId()); PlanId planId = new PlanId(plansId, new XMLId(xmlId, false)); // Ensure overwriting if (Repository.INSTANCE.exists(planId)) { try { Repository.INSTANCE.forceDelete(planId); // Quick hack to remove the deleted plan from the plans element ((ServiceTemplateResource) this.res).synchronizeReferences(); } catch (IOException e) { return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); } } String fileName; if (bpmn4toscaMode) { fileName = xmlId + Constants.SUFFIX_BPMN4TOSCA; RepositoryFileReference ref = new RepositoryFileReference(planId, fileName); try { Repository.INSTANCE.putContentToFile(ref, "{}", MediaType.APPLICATION_JSON_TYPE); } catch (IOException e1) { return Response.status(Status.INTERNAL_SERVER_ERROR) .entity("Could not create empty plan. " + e1.getMessage()).build(); } } else { // We use the filename also as local file name. Alternatively, we could use the xml id // With URL encoding, this should not be an issue fileName = Util.URLencode(fileDetail.getFileName()); // Really store it RepositoryFileReference ref = new RepositoryFileReference(planId, fileName); try { Repository.INSTANCE.putContentToFile(ref, uploadedInputStream, body.getMediaType()); } catch (IOException e1) { return Response.status(Status.INTERNAL_SERVER_ERROR) .entity("Could not store plan. " + e1.getMessage()).build(); } } // END: Store plan file TPlan plan = new TPlan(); plan.setId(xmlId); plan.setName(name); plan.setPlanType(type); plan.setPlanLanguage(language); PlansResource.setPlanModelReference(plan, planId, fileName); this.list.add(plan); // prepare result JsonFactory jsonFactory = new JsonFactory(); StringWriter sw = new StringWriter(); try { JsonGenerator jGenerator = jsonFactory.createGenerator(sw); jGenerator.writeStartObject(); jGenerator.writeFieldName("tableData"); jGenerator.writeStartArray(); jGenerator.writeString(xmlId); jGenerator.writeString(""); // precondition jGenerator.writeString(name); jGenerator.writeString(PlanTypesManager.INSTANCE.getShortName(type)); jGenerator.writeString(PlanLanguagesManager.INSTANCE.getShortName(language)); jGenerator.writeEndArray(); jGenerator.writeEndObject(); jGenerator.close(); sw.close(); } catch (JsonGenerationException e) { PlansResource.logger.error(e.getMessage(), e); return Response.serverError().build(); } catch (IOException e) { PlansResource.logger.error(e.getMessage(), e); return Response.serverError().build(); } Response res = BackendUtils.persist(this.res); if (res.getStatus() == 204) { // everything OK, return created return Response.created(Utils.createURI(Util.URLencode(xmlId))).entity(sw.toString()).build(); } else { return res; } }
From source file:org.wso2.extension.siddhi.map.json.sourcemapper.JsonSourceMapper.java
@Override public void init(StreamDefinition streamDefinition, OptionHolder optionHolder, List<AttributeMapping> list, ConfigReader configReader, SiddhiAppContext siddhiAppContext) { this.streamDefinition = streamDefinition; this.streamAttributes = this.streamDefinition.getAttributeList(); attributesSize = this.streamDefinition.getAttributeList().size(); this.mappingPositions = new MappingPositionData[attributesSize]; failOnMissingAttribute = Boolean .parseBoolean(optionHolder.validateAndGetStaticValue(FAIL_ON_MISSING_ATTRIBUTE_IDENTIFIER, "true")); factory = new JsonFactory(); if (list != null && list.size() > 0) { isCustomMappingEnabled = true;// w w w. ja v a 2s .c o m enclosingElement = optionHolder.validateAndGetStaticValue(ENCLOSING_ELEMENT_IDENTIFIER, DEFAULT_ENCLOSING_ELEMENT); for (int i = 0; i < list.size(); i++) { AttributeMapping attributeMapping = list.get(i); String attributeName = attributeMapping.getName(); int position; if (attributeName != null) { position = this.streamDefinition.getAttributePosition(attributeName); } else { position = i; } this.mappingPositions[i] = new MappingPositionData(position, attributeMapping.getMapping()); } } else { for (int i = 0; i < attributesSize; i++) { this.mappingPositions[i] = new MappingPositionData(i, DEFAULT_JSON_MAPPING_PREFIX + this.streamDefinition.getAttributeList().get(i).getName()); } } }
From source file:org.elasticsearch.client.sniff.ElasticsearchHostsSnifferTests.java
private static SniffResponse buildSniffResponse(ElasticsearchHostsSniffer.Scheme scheme) throws IOException { int numNodes = RandomNumbers.randomIntBetween(getRandom(), 1, 5); List<HttpHost> hosts = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();/*www. j ava 2s. com*/ if (getRandom().nextBoolean()) { generator.writeStringField("cluster_name", "elasticsearch"); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeObjectFieldStart("nodes"); for (int i = 0; i < numNodes; i++) { String nodeId = RandomStrings.randomAsciiOfLengthBetween(getRandom(), 5, 10); generator.writeObjectFieldStart(nodeId); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bogus_array"); generator.writeStartObject(); generator.writeEndObject(); generator.writeEndArray(); } boolean isHttpEnabled = rarely() == false; if (isHttpEnabled) { String host = "host" + i; int port = RandomNumbers.randomIntBetween(getRandom(), 9200, 9299); HttpHost httpHost = new HttpHost(host, port, scheme.toString()); hosts.add(httpHost); generator.writeObjectFieldStart("http"); if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bound_address"); generator.writeString("[fe80::1]:" + port); generator.writeString("[::1]:" + port); generator.writeString("127.0.0.1:" + port); generator.writeEndArray(); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", httpHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } if (getRandom().nextBoolean()) { String[] roles = { "master", "data", "ingest" }; int numRoles = RandomNumbers.randomIntBetween(getRandom(), 0, 3); Set<String> nodeRoles = new HashSet<>(numRoles); for (int j = 0; j < numRoles; j++) { String role; do { role = RandomPicks.randomFrom(getRandom(), roles); } while (nodeRoles.add(role) == false); } generator.writeArrayFieldStart("roles"); for (String nodeRole : nodeRoles) { generator.writeString(nodeRole); } generator.writeEndArray(); } int numAttributes = RandomNumbers.randomIntBetween(getRandom(), 0, 3); Map<String, String> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { attributes.put("attr" + j, "value" + j); } if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); } for (Map.Entry<String, String> entry : attributes.entrySet()) { generator.writeStringField(entry.getKey(), entry.getValue()); } if (numAttributes > 0) { generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), hosts); }