List of usage examples for com.fasterxml.jackson.core JsonGenerator flush
@Override public abstract void flush() throws IOException;
From source file:com.googlecode.jmxtrans.model.output.LibratoWriter.java
private void serialize(Server server, Query query, List<Result> results, OutputStream outputStream) throws IOException { JsonGenerator g = jsonFactory.createGenerator(outputStream, JsonEncoding.UTF8); g.writeStartObject();// w w w .ja v a 2 s .co m g.writeArrayFieldStart("counters"); g.writeEndArray(); String source = getSource(server); g.writeArrayFieldStart("gauges"); List<String> typeNames = getTypeNames(); for (Result result : results) { Map<String, Object> resultValues = result.getValues(); for (Map.Entry<String, Object> values : resultValues.entrySet()) { if (isNumeric(values.getValue())) { g.writeStartObject(); g.writeStringField("name", KeyUtils.getKeyString(query, result, values, typeNames)); if (source != null && !source.isEmpty()) { g.writeStringField("source", source); } g.writeNumberField("measure_time", TimeUnit.SECONDS.convert(result.getEpoch(), TimeUnit.MILLISECONDS)); Object value = values.getValue(); if (value instanceof Integer) { g.writeNumberField("value", (Integer) value); } else if (value instanceof Long) { g.writeNumberField("value", (Long) value); } else if (value instanceof Float) { g.writeNumberField("value", (Float) value); } else if (value instanceof Double) { g.writeNumberField("value", (Double) value); } g.writeEndObject(); } } } g.writeEndArray(); g.writeEndObject(); g.flush(); g.close(); }
From source file:org.jmxtrans.embedded.output.CopperEggWriter.java
public void cue_serialize(@Nonnull Iterable<QueryResult> counters, @Nonnull OutputStream out) throws IOException { int first = 0; long time = 0; String myID = null;//w w w. java 2 s . c om JsonGenerator g = jsonFactory.createGenerator(out, JsonEncoding.UTF8); for (QueryResult counter : counters) { if (0 == first) { time = counter.getEpoch(TimeUnit.SECONDS); myID = counter.getType(); first = 1; g.writeStartObject(); g.writeStringField("identifier", myID); g.writeNumberField("timestamp", time); g.writeObjectFieldStart("values"); } if (counter.getValue() instanceof Integer) { g.writeNumberField(counter.getName(), (Integer) counter.getValue()); } else if (counter.getValue() instanceof Long) { g.writeNumberField(counter.getName(), (Long) counter.getValue()); } else if (counter.getValue() instanceof Float) { g.writeNumberField(counter.getName(), (Float) counter.getValue()); } else if (counter.getValue() instanceof Double) { g.writeNumberField(counter.getName(), (Double) counter.getValue()); } } g.writeEndObject(); g.writeEndObject(); g.flush(); g.close(); }
From source file:com.arpnetworking.logback.serialization.BaseSerializationStrategy.java
/** * Complete writing the Steno JSON wrapper. * * @param event Instance of <code>ILoggingEvent</code>. * @param eventName The name of the event. * @param contextKeys The <code>List</code> of context keys. * @param contextValues The <code>List</code> of context values. * @param jsonGenerator <code>JsonGenerator</code> instance. * @param objectMapper <code>ObjectMapper</code> instance. * @throws IOException If writing JSON fails. *//*from www . j a v a2s . c o m*/ // CHECKSTYLE.OFF: NPathComplexity - Many combinations protected void endStenoWrapper(final ILoggingEvent event, final String eventName, final List<String> contextKeys, final List<Object> contextValues, final JsonGenerator jsonGenerator, final ObjectMapper objectMapper) throws IOException { jsonGenerator.writeObjectFieldStart("context"); if (_encoder.isInjectContextHost()) { jsonGenerator.writeStringField("host", HOST_CONVERTER.convert(event)); } if (_encoder.isInjectContextProcess()) { jsonGenerator.writeStringField("processId", PROCESS_CONVERTER.convert(event)); } if (_encoder.isInjectContextThread()) { jsonGenerator.writeStringField("threadId", THREAD_CONVERTER.convert(event)); } if (_encoder.isInjectContextLogger()) { if (_encoder.isCompressLoggerName()) { jsonGenerator.writeStringField("logger", CONDENSED_LOGGER_CONVERTER.convert(event)); } else { jsonGenerator.writeStringField("logger", LOGGER_CONVERTER.convert(event)); } } if (_encoder.isInjectContextFile()) { jsonGenerator.writeStringField("file", FILE_CONVERTER.convert(event)); } if (_encoder.isInjectContextClass()) { jsonGenerator.writeStringField("class", CLASS_CONVERTER.convert(event)); } if (_encoder.isInjectContextMethod()) { jsonGenerator.writeStringField("method", METHOD_CONVERTER.convert(event)); } if (_encoder.isInjectContextLine()) { jsonGenerator.writeStringField("line", LINE_CONVERTER.convert(event)); } for (final String key : _encoder.getMdcProperties()) { final String value = event.getMDCPropertyMap().get(key); jsonGenerator.writeStringField(key, value); } writeKeyValuePairs(contextKeys, contextValues, jsonGenerator, objectMapper); jsonGenerator.writeEndObject(); // End 'context' field jsonGenerator.writeObjectField("id", createId()); jsonGenerator.writeObjectField("version", "0"); jsonGenerator.writeEndObject(); // End log message jsonGenerator.writeRaw('\n'); jsonGenerator.flush(); }
From source file:com.rhfung.P2PDictionary.DataConnection.java
private byte[] GetEntryMetadataAsJson(DataEntry entry) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); JsonFactory jsonFactory = new JsonFactory(); // or, for data binding, org.codehaus.jackson.mapper.MappingJsonFactory JsonGenerator jg; try {/*from w ww. j a v a 2 s . c om*/ jg = jsonFactory.createJsonGenerator(stream, JsonEncoding.UTF8); WriteJSONForEntry(jg, entry); jg.flush(); } catch (JsonGenerationException ex) { return new byte[0]; } catch (IOException e) { // TODO Auto-generated catch block return new byte[0]; } // or Stream, Reader return stream.toByteArray(); }
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();//from w w w.j a va 2 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:org.neo4j.ontology.server.unmanaged.AnnotationResource.java
@GET @Produces(MediaType.APPLICATION_JSON)/*from w w w . j a v a 2 s . c o m*/ @Path("/{userName}") public Response getAnnotationSets(final @PathParam("userName") String userName, final @DefaultValue("0") @QueryParam("objectification") int objectification) { StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { Map<Long, List<Long>> associatedDataSets = new HashMap<>(); Label annotationLabel = DynamicLabel.label("AnnotationSets" + capitalize(userName)); JsonGenerator jg = objectMapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartObject(); jg.writeFieldName("nodes"); if (objectification > 0) { jg.writeStartObject(); } else { jg.writeStartArray(); } try (Transaction tx = graphDb.beginTx(); ResourceIterator<Node> users = graphDb.findNodes(USER, "name", userName)) { if (users.hasNext()) { getDirectAnnotationTerms(getAccessibleDataSets(users.next()), associatedDataSets); } tx.success(); } try (Transaction tx = graphDb.beginTx(); ResourceIterator<Node> terms = graphDb.findNodes(annotationLabel)) { while (terms.hasNext()) { Node term = terms.next(); if (objectification > 0) { jg.writeFieldName(term.getProperty("uri").toString()); } if (objectification > 1) { if (associatedDataSets.containsKey(term.getId())) { writeJsonNodeObjectifiedObject(jg, term, annotationLabel, associatedDataSets.get(term.getId())); } else { writeJsonNodeObjectifiedObject(jg, term, annotationLabel); } } else { if (associatedDataSets.containsKey(term.getId())) { writeJsonNodeObject(jg, term, annotationLabel, associatedDataSets.get(term.getId())); } else { writeJsonNodeObject(jg, term, annotationLabel); } } } tx.success(); } if (objectification > 0) { jg.writeEndObject(); } else { jg.writeEndArray(); } jg.writeEndObject(); jg.flush(); jg.close(); } }; return Response.ok().entity(stream).type(MediaType.APPLICATION_JSON).build(); }
From source file:org.bedework.carddav.vcard.Card.java
/** * @param indent true for pretty//from w w w . jav a2s.co m * @param version V4 or V3 * @return String json value * @throws WebdavException */ public String outputJson(final boolean indent, final String version) throws WebdavException { if (jsonStrForm != null) { return jsonStrForm; } final StringWriter sw = new StringWriter(); try { final JsonGenerator jgen = jsonFactory.createJsonGenerator(sw); if (indent) { jgen.useDefaultPrettyPrinter(); } jgen.writeStartArray(); // for vcard jgen.writeString("vcard"); jgen.writeStartArray(); // Array of properties /* Version should come before anything else. */ boolean version4 = false; if (version != null) { version4 = version.equals("4.0"); } else { final Version v = (Version) vcard.getProperty(Property.Id.VERSION); if (v != null) { version4 = v.equals(Version.VERSION_4_0); } } final Property pversion; if (version4) { pversion = Version.VERSION_4_0; } else { pversion = new Version("3.0"); } JsonProperty.addFields(jgen, pversion); final Set<String> pnames = VcardDefs.getPropertyNames(); /* Output known properties first */ for (final String pname : pnames) { if ("VERSION".equals(pname)) { continue; } final List<Property> props = findProperties(pname); if (!props.isEmpty()) { for (final Property p : props) { JsonProperty.addFields(jgen, p); } } } /* Now output any extra unknown properties */ final List<Property> props = vcard.getProperties(); if (props != null) { for (final Property p : props) { if (!pnames.contains(p.getId().toString())) { JsonProperty.addFields(jgen, p); } } } jgen.writeEndArray(); // End event properties jgen.writeEndArray(); // for vcard jgen.flush(); } catch (final WebdavException wde) { throw wde; } catch (final Throwable t) { throw new WebdavException(t); } jsonStrForm = sw.toString(); return jsonStrForm; }
From source file:org.jmxtrans.embedded.output.LibratoWriter.java
public void serialize(@Nonnull Iterable<QueryResult> counters, @Nonnull Iterable<QueryResult> gauges, @Nonnull OutputStream out) throws IOException { JsonGenerator g = jsonFactory.createGenerator(out, JsonEncoding.UTF8); g.writeStartObject();/*from w w w .jav a 2 s .c om*/ g.writeArrayFieldStart("counters"); for (QueryResult counter : counters) { g.writeStartObject(); g.writeStringField("name", counter.getName()); if (source != null && !source.isEmpty()) { g.writeStringField("source", source); } g.writeNumberField("measure_time", counter.getEpoch(TimeUnit.SECONDS)); if (counter.getValue() instanceof Integer) { g.writeNumberField("value", (Integer) counter.getValue()); } else if (counter.getValue() instanceof Long) { g.writeNumberField("value", (Long) counter.getValue()); } else if (counter.getValue() instanceof Float) { g.writeNumberField("value", (Float) counter.getValue()); } else if (counter.getValue() instanceof Double) { g.writeNumberField("value", (Double) counter.getValue()); } else if (counter.getValue() instanceof AtomicInteger) { g.writeNumberField("value", ((AtomicInteger) counter.getValue()).get()); } else if (counter.getValue() instanceof AtomicLong) { g.writeNumberField("value", ((AtomicLong) counter.getValue()).get()); } g.writeEndObject(); } g.writeEndArray(); g.writeArrayFieldStart("gauges"); for (QueryResult gauge : gauges) { g.writeStartObject(); g.writeStringField("name", gauge.getName()); if (source != null && !source.isEmpty()) { g.writeStringField("source", source); } g.writeNumberField("measure_time", gauge.getEpoch(TimeUnit.SECONDS)); if (gauge.getValue() instanceof Integer) { g.writeNumberField("value", (Integer) gauge.getValue()); } else if (gauge.getValue() instanceof Long) { g.writeNumberField("value", (Long) gauge.getValue()); } else if (gauge.getValue() instanceof Float) { g.writeNumberField("value", (Float) gauge.getValue()); } else if (gauge.getValue() instanceof Double) { g.writeNumberField("value", (Double) gauge.getValue()); } else if (gauge.getValue() instanceof AtomicInteger) { g.writeNumberField("value", ((AtomicInteger) gauge.getValue()).get()); } else if (gauge.getValue() instanceof AtomicLong) { g.writeNumberField("value", ((AtomicLong) gauge.getValue()).get()); } g.writeEndObject(); } g.writeEndArray(); g.writeEndObject(); g.flush(); g.close(); }
From source file:com.joliciel.jochre.search.highlight.HighlightManagerImpl.java
@Override public void findSnippets(Highlighter highlighter, Set<Integer> docIds, Set<String> fields, Writer out) { try {/*from w w w .ja v a2 s . c o m*/ Map<Integer, Set<HighlightTerm>> termMap = highlighter.highlight(docIds, fields); Map<Integer, List<Snippet>> snippetMap = this.findSnippets(docIds, fields, termMap, this.getSnippetCount(), this.getSnippetSize()); JsonFactory jsonFactory = new JsonFactory(); JsonGenerator jsonGen = jsonFactory.createGenerator(out); jsonGen.writeStartObject(); for (int docId : docIds) { Document doc = indexSearcher.doc(docId); jsonGen.writeObjectFieldStart(doc.get("id")); jsonGen.writeStringField("path", doc.get("path")); jsonGen.writeNumberField("docId", docId); jsonGen.writeArrayFieldStart("snippets"); for (Snippet snippet : snippetMap.get(docId)) { snippet.toJson(jsonGen, df); } jsonGen.writeEndArray(); if (includeText) { jsonGen.writeArrayFieldStart("snippetText"); for (Snippet snippet : snippetMap.get(docId)) { jsonGen.writeStartObject(); jsonGen.writeStringField("snippet", this.displaySnippet(docId, snippet)); jsonGen.writeEndObject(); } jsonGen.writeEndArray(); } if (includeGraphics) { jsonGen.writeArrayFieldStart("snippetGraphics"); for (Snippet snippet : snippetMap.get(docId)) { jsonGen.writeStartObject(); ImageSnippet imageSnippet = this.getImageSnippet(snippet); jsonGen.writeNumberField("left", imageSnippet.getRectangle().getLeft()); jsonGen.writeNumberField("top", imageSnippet.getRectangle().getTop()); jsonGen.writeNumberField("right", imageSnippet.getRectangle().getRight()); jsonGen.writeNumberField("bottom", imageSnippet.getRectangle().getBottom()); jsonGen.writeArrayFieldStart("highlights"); for (Rectangle highlight : imageSnippet.getHighlights()) { jsonGen.writeStartObject(); jsonGen.writeNumberField("left", highlight.getLeft()); jsonGen.writeNumberField("top", highlight.getTop()); jsonGen.writeNumberField("right", highlight.getRight()); jsonGen.writeNumberField("bottom", highlight.getBottom()); jsonGen.writeEndObject(); } jsonGen.writeEndArray(); jsonGen.writeEndObject(); } jsonGen.writeEndArray(); } jsonGen.writeEndObject(); } // next doc jsonGen.writeEndObject(); jsonGen.flush(); } catch (IOException ioe) { LogUtils.logError(LOG, ioe); throw new RuntimeException(ioe); } }
From source file:com.googlecode.jmxtrans.model.output.StackdriverWriter.java
/** * Take query results, make a JSON String * /* ww w.ja v a 2s . c o m*/ * @param results List of Result objects * @return a String containing a JSON message, or null if there are no values to report * * @throws IOException if there is some problem generating the JSON, should be uncommon */ private String getGatewayMessage(final List<Result> results) throws IOException { int valueCount = 0; Writer writer = new StringWriter(); JsonGenerator g = jsonFactory.createGenerator(writer); g.writeStartObject(); g.writeNumberField("timestamp", System.currentTimeMillis() / 1000); g.writeNumberField("proto_version", STACKDRIVER_PROTOCOL_VERSION); g.writeArrayFieldStart("data"); List<String> typeNames = this.getTypeNames(); for (Result metric : results) { Map<String, Object> values = metric.getValues(); if (values != null) { for (Entry<String, Object> entry : values.entrySet()) { if (isNumeric(entry.getValue())) { // we have a numeric value, write a value into the message StringBuilder nameBuilder = new StringBuilder(); // put the prefix if set if (this.prefix != null) { nameBuilder.append(prefix); nameBuilder.append("."); } // put the class name or its alias if available if (!metric.getKeyAlias().isEmpty()) { nameBuilder.append(metric.getKeyAlias()); } else { nameBuilder.append(metric.getClassName()); } // Wildcard "typeNames" substitution String typeName = com.googlecode.jmxtrans.model.naming.StringUtils .cleanupStr(TypeNameValuesStringBuilder.getDefaultBuilder().build(typeNames, metric.getTypeName())); if (typeName != null && typeName.length() > 0) { nameBuilder.append("."); nameBuilder.append(typeName); } // add the attribute name nameBuilder.append("."); nameBuilder.append(metric.getAttributeName()); // put the value name if it differs from the attribute name if (!entry.getKey().equals(metric.getAttributeName())) { nameBuilder.append("."); nameBuilder.append(entry.getKey()); } // check for Float/Double NaN since these will cause the message validation to fail if (entry.getValue() instanceof Float && ((Float) entry.getValue()).isNaN()) { logger.info("Metric value for " + nameBuilder.toString() + " is NaN, skipping"); continue; } if (entry.getValue() instanceof Double && ((Double) entry.getValue()).isNaN()) { logger.info("Metric value for " + nameBuilder.toString() + " is NaN, skipping"); continue; } valueCount++; g.writeStartObject(); g.writeStringField("name", nameBuilder.toString()); g.writeNumberField("value", Double.valueOf(entry.getValue().toString())); // if the metric is attached to an instance, include that in the message if (instanceId != null && !instanceId.isEmpty()) { g.writeStringField("instance", instanceId); } g.writeNumberField("collected_at", metric.getEpoch() / 1000); g.writeEndObject(); } } } } g.writeEndArray(); g.writeEndObject(); g.flush(); g.close(); // return the message if there are any values to report if (valueCount > 0) { return writer.toString(); } else { return null; } }