List of usage examples for com.fasterxml.jackson.core JsonGenerator flush
@Override public abstract void flush() throws IOException;
From source file:com.joliciel.jochre.search.highlight.HighlightManagerImpl.java
@Override public void highlight(Highlighter highlighter, Set<Integer> docIds, Set<String> fields, Writer out) { try {/* ww w . j av a2s.c om*/ Map<Integer, Set<HighlightTerm>> termMap = highlighter.highlight(docIds, fields); 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("terms"); for (HighlightTerm term : termMap.get(docId)) { fields.add(term.getField()); term.toJson(jsonGen, df); } jsonGen.writeEndArray(); if (includeText) { for (String field : fields) { jsonGen.writeObjectFieldStart("field" + field); Set<HighlightTerm> terms = termMap.get(docId); jsonGen.writeStringField("contents", this.displayHighlights(docId, field, terms)); jsonGen.writeEndObject(); } } jsonGen.writeEndObject(); } jsonGen.writeEndObject(); jsonGen.flush(); } catch (IOException ioe) { LogUtils.logError(LOG, ioe); throw new RuntimeException(ioe); } }
From source file:com.viridiansoftware.metrics.elasticsearch.ElasticsearchReporter.java
private void reportHistogram(String index, long timestamp, String name, Histogram histogram) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator jsonGenerator = jsonFactory.createGenerator(writer); jsonGenerator.writeStartObject();//from www . j a va 2 s . co m jsonGenerator.writeNumberField(timestampFieldName, timestamp); jsonGenerator.writeStringField("@name", prefixMetricName(name)); final Snapshot snapshot = histogram.getSnapshot(); jsonGenerator.writeNumberField("count", histogram.getCount()); jsonGenerator.writeNumberField("max", convertDuration(snapshot.getMax())); jsonGenerator.writeNumberField("mean", convertDuration(snapshot.getMean())); jsonGenerator.writeNumberField("min", convertDuration(snapshot.getMin())); jsonGenerator.writeNumberField("stddev", convertDuration(snapshot.getStdDev())); jsonGenerator.writeNumberField("p50", convertDuration(snapshot.getMedian())); jsonGenerator.writeNumberField("p75", convertDuration(snapshot.get75thPercentile())); jsonGenerator.writeNumberField("p95", convertDuration(snapshot.get95thPercentile())); jsonGenerator.writeNumberField("p98", convertDuration(snapshot.get98thPercentile())); jsonGenerator.writeNumberField("p99", convertDuration(snapshot.get99thPercentile())); jsonGenerator.writeNumberField("p999", convertDuration(snapshot.get999thPercentile())); jsonGenerator.writeEndObject(); jsonGenerator.flush(); addReportToBulkRequest(index, MetricElasticsearchTypes.HISTOGRAM, writer.toString()); }
From source file:org.jmxtrans.embedded.output.StackdriverWriter.java
/** * Put the values into the JSON format expected by the Stackdriver custom metrics gateway * * @param results// ww w . j a v a 2 s . co m * Iterable collection of data points (gauges and counters) * @param out * OutputStream to write JSON to * @throws IOException */ public void serialize(@Nonnull Iterable<QueryResult> results, @Nonnull OutputStream out) throws IOException { JsonGenerator g = jsonFactory.createGenerator(out, JsonEncoding.UTF8); g.writeStartObject(); g.writeNumberField("timestamp", System.currentTimeMillis() / 1000); g.writeNumberField("proto_version", STACKDRIVER_PROTOCOL_VERSION); g.writeArrayFieldStart("data"); for (QueryResult metric : results) { g.writeStartObject(); g.writeStringField("name", metric.getName()); if (instanceId != null && !instanceId.isEmpty()) { g.writeStringField("instance", instanceId); } g.writeNumberField("collected_at", metric.getEpoch(TimeUnit.SECONDS)); if (metric.getValue() instanceof Integer) { g.writeNumberField("value", (Integer) metric.getValue()); } else if (metric.getValue() instanceof Long) { g.writeNumberField("value", (Long) metric.getValue()); } else if (metric.getValue() instanceof Float) { g.writeNumberField("value", (Float) metric.getValue()); } else if (metric.getValue() instanceof Double) { g.writeNumberField("value", (Double) metric.getValue()); } g.writeEndObject(); } g.writeEndArray(); g.writeEndObject(); g.flush(); g.close(); }
From source file:com.streamsets.datacollector.http.JMXJsonServlet.java
/** * Process a GET request for the specified resource. * * @param request//from ww w . j a v a 2s .c o m * The servlet request we are processing * @param response * The servlet response we are creating */ @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { try { JsonGenerator jg = null; String jsonpcb = null; PrintWriter writer = null; try { writer = response.getWriter(); // "callback" parameter implies JSONP outpout jsonpcb = request.getParameter(CALLBACK_PARAM); if (jsonpcb != null) { response.setContentType("application/javascript; charset=utf8"); writer.write(jsonpcb + "("); } else { response.setContentType("application/json; charset=utf8"); } jg = jsonFactory.createGenerator(writer); jg.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); jg.useDefaultPrettyPrinter(); jg.writeStartObject(); // query per mbean attribute String getmethod = request.getParameter("get"); if (getmethod != null) { String[] splitStrings = getmethod.split("\\:\\:"); if (splitStrings.length != 2) { jg.writeStringField("result", "ERROR"); jg.writeStringField("message", "query format is not as expected."); jg.flush(); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return; } listBeans(jg, new ObjectName(splitStrings[0]), splitStrings[1], response); return; } // query per mbean String qry = request.getParameter("qry"); if (qry == null) { qry = "*:*"; } listBeans(jg, new ObjectName(qry), null, response); } finally { if (jg != null) { jg.close(); } if (jsonpcb != null) { writer.write(");"); } if (writer != null) { writer.close(); } } } catch (IOException e) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } catch (MalformedObjectNameException e) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); } }
From source file:com.proofpoint.event.client.EventJsonSerializer.java
@Override public void serialize(T event, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException { jsonGenerator.writeStartObject();// w ww .j a va 2s. c o m jsonGenerator.writeStringField("type", eventTypeMetadata.getTypeName()); if (eventTypeMetadata.getUuidField() != null) { eventTypeMetadata.getUuidField().writeField(jsonGenerator, event); } else { jsonGenerator.writeStringField("uuid", UUID.randomUUID().toString()); } if (eventTypeMetadata.getHostField() != null) { eventTypeMetadata.getHostField().writeField(jsonGenerator, event); } else { jsonGenerator.writeStringField("host", hostName); } if (eventTypeMetadata.getTimestampField() != null) { eventTypeMetadata.getTimestampField().writeField(jsonGenerator, event); } else { jsonGenerator.writeFieldName("timestamp"); EventDataType.DATETIME.writeFieldValue(jsonGenerator, new DateTime()); } if (eventTypeMetadata.getTraceTokenField() != null) { eventTypeMetadata.getTraceTokenField().writeField(jsonGenerator, event); } else if (token != null) { jsonGenerator.writeFieldName("traceToken"); EventDataType.STRING.writeFieldValue(jsonGenerator, token); } jsonGenerator.writeObjectFieldStart("data"); for (EventFieldMetadata field : eventTypeMetadata.getFields()) { field.writeField(jsonGenerator, event); } jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject(); jsonGenerator.flush(); }
From source file:org.h2gis.drivers.geojson.GeoJsonWriteDriver.java
/** * Write the spatial table to GeoJSON format. * * @param progress/* w w w . j a v a 2 s .com*/ * @throws SQLException */ private void writeGeoJson(ProgressVisitor progress) throws SQLException, IOException { FileOutputStream fos = null; try { fos = new FileOutputStream(fileName); // Read Geometry Index and type final TableLocation parse = TableLocation.parse(tableName, JDBCUtilities.isH2DataBase(connection.getMetaData())); List<String> spatialFieldNames = SFSUtilities.getGeometryFields(connection, parse); if (spatialFieldNames.isEmpty()) { throw new SQLException(String.format("The table %s does not contain a geometry field", tableName)); } // Read table content Statement st = connection.createStatement(); try { JsonFactory jsonFactory = new JsonFactory(); JsonGenerator jsonGenerator = jsonFactory.createGenerator(new BufferedOutputStream(fos), JsonEncoding.UTF8); // header of the GeoJSON file jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "FeatureCollection"); writeCRS(jsonGenerator, SFSUtilities.getAuthorityAndSRID(connection, parse, spatialFieldNames.get(0))); jsonGenerator.writeArrayFieldStart("features"); ResultSet rs = st.executeQuery(String.format("select * from `%s`", tableName)); try { ResultSetMetaData resultSetMetaData = rs.getMetaData(); int geoFieldIndex = JDBCUtilities.getFieldIndex(resultSetMetaData, spatialFieldNames.get(0)); cacheMetadata(resultSetMetaData); while (rs.next()) { writeFeature(jsonGenerator, rs, geoFieldIndex); } progress.endStep(); // footer jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); jsonGenerator.flush(); jsonGenerator.close(); } finally { rs.close(); } } finally { st.close(); } } catch (FileNotFoundException ex) { throw new SQLException(ex); } finally { try { if (fos != null) { fos.close(); } } catch (IOException ex) { throw new SQLException(ex); } } }
From source file:com.googlecode.jmxtrans.model.output.LibratoWriter2.java
@Override public void write(@Nonnull Writer writer, @Nonnull Server server, @Nonnull Query query, @Nonnull Iterable<Result> results) throws IOException { Closer closer = Closer.create();/* w w w.j a va 2s.com*/ try { JsonGenerator g = closer.register(jsonFactory.createGenerator(writer)); g.writeStartObject(); g.writeArrayFieldStart("counters"); g.writeEndArray(); String source = getSource(server); g.writeArrayFieldStart("gauges"); 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", SECONDS.convert(result.getEpoch(), 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(); } catch (Throwable t) { throw closer.rethrow(t); } finally { closer.close(); } }
From source file:com.viridiansoftware.metrics.elasticsearch.ElasticsearchReporter.java
private void reportTimer(String index, long timestamp, String name, Timer timer) throws IOException { StringWriter writer = new StringWriter(); JsonGenerator jsonGenerator = jsonFactory.createGenerator(writer); jsonGenerator.writeStartObject();//from w ww .j av a 2s . c o m jsonGenerator.writeNumberField(timestampFieldName, timestamp); jsonGenerator.writeStringField("@name", prefixMetricName(name)); final Snapshot snapshot = timer.getSnapshot(); jsonGenerator.writeNumberField("max", convertDuration(snapshot.getMax())); jsonGenerator.writeNumberField("mean", convertDuration(snapshot.getMean())); jsonGenerator.writeNumberField("min", convertDuration(snapshot.getMin())); jsonGenerator.writeNumberField("stddev", convertDuration(snapshot.getStdDev())); jsonGenerator.writeNumberField("p50", convertDuration(snapshot.getMedian())); jsonGenerator.writeNumberField("p75", convertDuration(snapshot.get75thPercentile())); jsonGenerator.writeNumberField("p95", convertDuration(snapshot.get95thPercentile())); jsonGenerator.writeNumberField("p98", convertDuration(snapshot.get98thPercentile())); jsonGenerator.writeNumberField("p99", convertDuration(snapshot.get99thPercentile())); jsonGenerator.writeNumberField("p999", convertDuration(snapshot.get999thPercentile())); jsonGenerator.writeNumberField("count", timer.getCount()); jsonGenerator.writeNumberField("m1_rate", convertRate(timer.getOneMinuteRate())); jsonGenerator.writeNumberField("m5_rate", convertRate(timer.getFiveMinuteRate())); jsonGenerator.writeNumberField("m15_rate", convertRate(timer.getFifteenMinuteRate())); jsonGenerator.writeNumberField("mean_rate", convertRate(timer.getMeanRate())); jsonGenerator.writeEndObject(); jsonGenerator.flush(); addReportToBulkRequest(index, MetricElasticsearchTypes.TIMER, writer.toString()); }
From source file:com.buaa.cfs.conf.Configuration.java
/** * Writes out all the parameters and their properties (final and resource) to the given {@link Writer} The format of * the output would be { "properties" : [ {key1,value1,key1.isFinal,key1.resource}, {key2,value2, * key2.isFinal,key2.resource}... ] } It does not output the parameters of the configuration object which is loaded * from an input stream.//from www.java 2s . c om * * @param out the Writer to write to * * @throws IOException */ public static void dumpConfiguration(Configuration config, Writer out) throws IOException { JsonFactory dumpFactory = new JsonFactory(); JsonGenerator dumpGenerator = dumpFactory.createJsonGenerator(out); dumpGenerator.writeStartObject(); dumpGenerator.writeFieldName("properties"); dumpGenerator.writeStartArray(); dumpGenerator.flush(); synchronized (config) { for (Entry<Object, Object> item : config.getProps().entrySet()) { dumpGenerator.writeStartObject(); dumpGenerator.writeStringField("key", (String) item.getKey()); dumpGenerator.writeStringField("value", config.get((String) item.getKey())); dumpGenerator.writeBooleanField("isFinal", config.finalParameters.contains(item.getKey())); String[] resources = config.updatingResource.get(item.getKey()); String resource = UNKNOWN_RESOURCE; if (resources != null && resources.length > 0) { resource = resources[0]; } dumpGenerator.writeStringField("resource", resource); dumpGenerator.writeEndObject(); } } dumpGenerator.writeEndArray(); dumpGenerator.writeEndObject(); dumpGenerator.flush(); }
From source file:org.talend.dataprep.schema.xls.serialization.XlsxStreamRunnable.java
/** * @see Runnable#run()/*from w w w.j a va2 s . c o m*/ */ @Override public void run() { try { JsonGenerator generator = jsonFactory.createGenerator(jsonOutput); Workbook workbook = StreamingReader.builder() // .bufferSize(4096) // .rowCacheSize(1) // .open(rawContent); try { Sheet sheet = StringUtils.isEmpty(metadata.getSheetName()) ? // workbook.getSheetAt(0) : workbook.getSheet(metadata.getSheetName()); generator.writeStartArray(); for (Row row : sheet) { if (limit > 0 && row.getRowNum() > limit) { break; } if (!XlsSerializer.isHeaderLine(row.getRowNum(), metadata.getRowMetadata().getColumns())) { generator.writeStartObject(); // data quality Analyzer doesn't like to not have all columns even if we don't have any values // so create so field with empty value otherwise we get exceptions int i = 0; for (ColumnMetadata columnMetadata : metadata.getRowMetadata().getColumns()) { Cell cell = row.getCell(i); String cellValue = cell == null ? null : cell.getStringCellValue(); // StringUtils.EMPTY generator.writeFieldName(columnMetadata.getId()); if (cellValue != null) { generator.writeString(cellValue); } else { generator.writeNull(); } i++; } generator.writeEndObject(); } } generator.writeEndArray(); generator.flush(); } finally { workbook.close(); } } catch (Exception e) { // Consumer may very well interrupt consumption of stream (in case of limit(n) use for sampling). // This is not an issue as consumer is allowed to partially consumes results, it's up to the // consumer to ensure data it consumed is consistent. LOG.debug("Unable to continue serialization for {}. Skipping remaining content.", metadata.getId(), e); } finally { try { jsonOutput.close(); } catch (IOException e) { LOG.error("Unable to close output", e); } } }