Example usage for com.fasterxml.jackson.core JsonGenerator flush

List of usage examples for com.fasterxml.jackson.core JsonGenerator flush

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator flush.

Prototype

@Override
public abstract void flush() throws IOException;

Source Link

Document

Method called to flush any buffered content to the underlying target (output stream, writer), and to flush the target itself as well.

Usage

From source file:gov.bnl.channelfinder.PropertiesResource.java

/**
 * GET method for retrieving the list of properties in the database.
 *
 * @return list of properties//from   ww  w .java2  s.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:org.talend.daikon.exception.TalendRuntimeException.java

/**
 * Describe this error in json into the given writer.
 * /*from  w  w  w  .  j av  a2 s  .  c o  m*/
 * @param writer where to write this error.
 */
public void writeTo(Writer writer) {
    try {
        JsonGenerator generator = (new JsonFactory()).createGenerator(writer);
        generator.writeStartObject();
        {
            generator.writeStringField("code", //$NON-NLS-1$
                    code.getProduct() + '_' + code.getGroup() + '_' + code.getCode());
            generator.writeStringField("message", code.getCode()); //$NON-NLS-1$
            if (cause != null) {
                generator.writeStringField("cause", cause.getMessage()); //$NON-NLS-1$
            }
            if (context != null) {
                generator.writeFieldName("context"); //$NON-NLS-1$
                generator.writeStartObject();
                for (Map.Entry<String, Object> entry : context.entries()) {
                    generator.writeStringField(entry.getKey(), entry.getValue().toString());
                }
                generator.writeEndObject();
            }
        }
        generator.writeEndObject();
        generator.flush();
    } catch (IOException e) {
        LOGGER.error("Unable to write exception to " + writer + ".", e);
    }
}

From source file:gov.bnl.channelfinder.TagsResource.java

/**
 * GET method for retrieving the list of tags in the database.
 *
 * @return list of tags/*w ww  . j a  v  a  2s.co  m*/
 */
@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:com.attribyte.essem.ESReporter.java

static final void generateTimer(final JsonGenerator generator, final ReportProtos.EssemReport.Timer timer,
        final String application, final String host, final String instance, final long timestamp)
        throws IOException {

    generator.writeStartObject();//from  w  w w . j av  a2  s  .  co  m
    writeStringField(generator, Fields.APPLICATION_FIELD, application);
    writeStringField(generator, Fields.HOST_FIELD, host);
    writeStringField(generator, Fields.INSTANCE_FIELD, instance);
    writeStringField(generator, Fields.NAME_FIELD, timer.getName().trim());
    generator.writeNumberField(Fields.ONE_MINUTE_RATE_FIELD, timer.getOneMinuteRate());
    generator.writeNumberField(Fields.FIVE_MINUTE_RATE_FIELD, timer.getFiveMinuteRate());
    generator.writeNumberField(Fields.FIFTEEN_MINUTE_RATE_FIELD, timer.getFifteenMinuteRate());
    generator.writeNumberField(Fields.MEAN_RATE_FIELD, timer.getMeanRate());
    generator.writeNumberField(Fields.COUNT_FIELD, timer.getCount());
    generator.writeNumberField(Fields.MAX_FIELD, timer.getMax());
    generator.writeNumberField(Fields.MIN_FIELD, timer.getMin());
    generator.writeNumberField(Fields.MEAN_FIELD, timer.getMean());
    generator.writeNumberField(Fields.P50_FIELD, timer.getMedian());
    generator.writeNumberField(Fields.P75_FIELD, timer.getPercentile75());
    generator.writeNumberField(Fields.P95_FIELD, timer.getPercentile95());
    generator.writeNumberField(Fields.P98_FIELD, timer.getPercentile98());
    generator.writeNumberField(Fields.P99_FIELD, timer.getPercentile99());
    generator.writeNumberField(Fields.P999_FIELD, timer.getPercentile999());
    generator.writeNumberField(Fields.STD_FIELD, timer.getStd());
    generator.writeNumberField(Fields.TIMESTAMP_FIELD, timestamp);
    generator.writeEndObject();
    generator.flush();
}

From source file:com.googlecode.jmxtrans.model.output.SensuWriter.java

private void serialize(Server server, Query query, List<Result> results, OutputStream outputStream)
        throws IOException {
    JsonGenerator g = jsonFactory.createGenerator(outputStream, JsonEncoding.UTF8);
    g.useDefaultPrettyPrinter();//  w  w  w  . j  av  a  2  s.co  m
    g.writeStartObject();
    g.writeStringField("name", "jmxtrans");
    g.writeStringField("type", "metric");
    g.writeStringField("handler", handler);

    StringBuilder jsonoutput = new StringBuilder();
    List<String> typeNames = getTypeNames();
    for (Result result : results) {
        for (Map.Entry<String, Object> values : result.getValues().entrySet()) {
            if (isNumeric(values.getValue())) {
                Object value = values.getValue();
                jsonoutput.append(KeyUtils.getKeyString(server, query, result, values, typeNames, null))
                        .append(" ").append(value).append(" ")
                        .append(TimeUnit.SECONDS.convert(result.getEpoch(), TimeUnit.MILLISECONDS))
                        .append(System.getProperty("line.separator"));
            }
        }
    }
    g.writeStringField("output", jsonoutput.toString());
    g.writeEndObject();
    g.flush();
    g.close();
}

From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java

@SuppressWarnings("unchecked")
@Override/*w w w.  j av  a  2 s  . co  m*/
public <T> void write(final Writer writer, final ResWrap<T> container) throws ODataSerializerException {
    final T obj = container == null ? null : container.getPayload();
    try {
        final JsonGenerator json = new JsonFactory().createGenerator(writer);
        if (obj instanceof EntityCollection) {
            new JsonEntitySetSerializer(serverMode, contentType)
                    .doContainerSerialize((ResWrap<EntityCollection>) container, json);
        } else if (obj instanceof Entity) {
            new JsonEntitySerializer(serverMode, contentType).doContainerSerialize((ResWrap<Entity>) container,
                    json);
        } else if (obj instanceof Property) {
            new JsonPropertySerializer(serverMode, contentType)
                    .doContainerSerialize((ResWrap<Property>) container, json);
        } else if (obj instanceof Link) {
            link((Link) obj, json);
        } else if (obj instanceof URI) {
            reference((ResWrap<URI>) container, json);
        }
        json.flush();
    } catch (final IOException e) {
        throw new ODataSerializerException(e);
    } catch (final EdmPrimitiveTypeException e) {
        throw new ODataSerializerException(e);
    }
}

From source file:org.talend.dataprep.schema.xls.serialization.XlsRunnable.java

/**
 * @see Runnable#run()//from  w w  w . j  ava2 s  .  c  om
 */
@Override
public void run() {
    try {

        Workbook workbook = WorkbookFactory.create(rawContent);

        JsonGenerator generator = jsonFactory.createGenerator(jsonOutput);

        // if no sheet name just get the first one (take it easy mate :-) )
        Sheet sheet = isEmpty(metadata.getSheetName()) ? workbook.getSheetAt(0)
                : workbook.getSheet(metadata.getSheetName());

        if (sheet == null) {
            // auto generated sheet name so take care!! "sheet-" + i
            if (StringUtils.startsWith(metadata.getSheetName(), "sheet-")) {
                String sheetNumberStr = StringUtils.removeStart(metadata.getSheetName(), "sheet-");

                sheet = workbook.getSheetAt(Integer.valueOf(sheetNumberStr));
            }
            // still null so use the first one
            if (sheet == null) {
                sheet = workbook.getSheetAt(0);
            }
        }

        generator.writeStartArray();
        List<ColumnMetadata> columns = metadata.getRowMetadata().getColumns();

        serializeColumns(workbook, generator, sheet, columns);

        generator.writeEndArray();
        generator.flush();
    } 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);
        }
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

/**
 * Serializes a {@link BidRequest} to JSON, with a provided {@link JsonGenerator}
 * which allows several choices of output and encoding.
 *//*from w w  w  . j  a  va2s .  c  o  m*/
public final void writeBidRequest(BidRequest req, JsonGenerator gen) throws IOException {
    gen.writeStartObject();
    writeBidRequestFields(req, gen);
    writeExtensions(req, gen);
    gen.writeEndObject();
    gen.flush();
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

/**
 * Serializes a {@link BidResponse} to JSON, with a provided {@link JsonGenerator}
 * which allows several choices of output and encoding.
 */// w  ww.j a  v a  2s  . c o m
public final void writeBidResponse(BidResponse resp, JsonGenerator gen) throws IOException {
    gen.writeStartObject();
    writeBidResponseFields(resp, gen);
    writeExtensions(resp, gen);
    gen.writeEndObject();
    gen.flush();
}

From source file:io.airlift.event.client.EventJsonSerializer.java

@Override
public void serialize(T event, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
    jsonGenerator.writeStartObject();//from   w w w.j a  va 2  s.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());
    }

    jsonGenerator.writeObjectFieldStart("data");
    for (EventFieldMetadata field : eventTypeMetadata.getFields()) {
        field.writeField(jsonGenerator, event);
    }
    jsonGenerator.writeEndObject();

    jsonGenerator.writeEndObject();
    jsonGenerator.flush();
}