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

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

Introduction

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

Prototype

@Override
public abstract void close() throws IOException;

Source Link

Document

Method called to close this generator, so that no more content can be written.

Usage

From source file:com.ntsync.shared.RequestGenerator.java

private static byte[] createHeader(SyncAnchor syncAnchor, String pkgVersion, String clientId,
        String pwdSaltHexStr, Map<Long, String> newIdMap, boolean syncOnlyGroup, Restrictions restr,
        boolean explizitPhotoSave) throws HeaderCreateException {

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    try {//from   w  ww . j  a  va 2s  .c o m
        JsonGenerator g = getJsonFactory().createGenerator(out);

        g.writeStartObject();

        g.writeObjectFieldStart(CLIENT_FIELD_NAME);

        g.writeObjectFieldStart(PARAM_SYNC_ANCHOR);
        for (Byte contType : syncAnchor.containers()) {
            long anchor = syncAnchor.getAnchor(contType);
            if (anchor > 0) {
                String type = String.valueOf((char) contType.byteValue());
                g.writeNumberField(type, anchor);
            }
        }
        g.writeEndObject();

        if (syncOnlyGroup) {
            LOG.info("Sync only ContactGroups");
            g.writeBooleanField(PARAM_SYNCONLYGROUP, true);
        }

        g.writeStringField(FIELD_SOFTWARE, "Android|" + pkgVersion);

        // Set ClientId
        if (clientId != null) {
            g.writeStringField(PARAM_CLIENTID, clientId);
        }

        if (restr != null) {
            g.writeBooleanField(PARAM_IS_PHOTO_SYNC_ENABLED, restr.isPhotoSyncSupported());
        }

        if (explizitPhotoSave) {
            g.writeBooleanField(PARAM_FORCE_PHOTO_SAVE, true);
        }

        // Set PwdSalt
        if (pwdSaltHexStr != null) {
            g.writeStringField(FIELD_PWDSALT, pwdSaltHexStr);
        }

        if (newIdMap != null && !newIdMap.isEmpty()) {
            g.writeObjectFieldStart(TAG_CONTACTIDS);
            for (Map.Entry<Long, String> idRow : newIdMap.entrySet()) {
                String serverId = idRow.getValue();
                if (serverId != null && serverId.length() > 0) {
                    g.writeStringField(String.valueOf(idRow.getKey()), serverId);
                }
            }
            g.writeEndObject();
        }
        g.writeEndObject();
        g.writeEndObject();
        g.close();
    } catch (IOException ex) {
        throw new HeaderCreateException(ex);
    }

    return out.toByteArray();
}

From source file:com.baidubce.services.bmr.BmrClient.java

/**
 * Add steps to a BMR cluster.// ww  w  . j  ava2  s . co m
 *
 * @param request containing the ID of target BMR cluster and several steps to be added.
 * @return The response containing a list of IDs of newly added steps.
 */
public AddStepsResponse addSteps(AddStepsRequest request) {
    checkNotNull(request, "request should not be null.");
    checkNotNull(request.getSteps(), "The parameter steps should not be null.");
    checkStringNotEmpty(request.getClusterId(), "The parameter clusterId should not be null or empty string.");

    StringWriter writer = new StringWriter();
    List<StepConfig> steps = request.getSteps();
    try {
        JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeArrayFieldStart("steps");
        for (StepConfig step : steps) {
            jsonGenerator.writeStartObject();
            if (step.getName() != null) {
                jsonGenerator.writeStringField("name", step.getName());
            }
            jsonGenerator.writeStringField("type", step.getType());
            jsonGenerator.writeStringField("actionOnFailure", step.getActionOnFailure());
            jsonGenerator.writeObjectFieldStart("properties");
            for (String propertyKey : step.getProperties().keySet()) {
                jsonGenerator.writeObjectField(propertyKey, step.getProperties().get(propertyKey));
            }
            jsonGenerator.writeEndObject();
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
    } catch (IOException e) {
        throw new BceClientException("Fail to generate json", e);
    }

    byte[] json = null;
    try {
        json = writer.toString().getBytes(DEFAULT_ENCODING);
    } catch (UnsupportedEncodingException e) {
        throw new BceClientException("Fail to get UTF-8 bytes", e);
    }

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, CLUSTER,
            request.getClusterId(), STEP);
    internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
    internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");

    internalRequest.setContent(RestartableInputStream.wrap(json));

    if (request.getClientToken() != null) {
        internalRequest.addParameter("clientToken", request.getClientToken());
    }

    return this.invokeHttpClient(internalRequest, AddStepsResponse.class);
}

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/* w w w. java  2s.com*/
  *            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:net.opentsdb.meta.Annotation.java

/**
 * Serializes the object in a uniform matter for storage. Needed for 
 * successful CAS calls/*from   w  w w.j  a  va2 s. c  o m*/
 * @return The serialized object as a byte array
 */
private byte[] getStorageJSON() {
    // TODO - precalculate size
    final ByteArrayOutputStream output = new ByteArrayOutputStream();
    try {
        final JsonGenerator json = JSON.getFactory().createGenerator(output);
        json.writeStartObject();
        if (tsuid != null && !tsuid.isEmpty()) {
            json.writeStringField("tsuid", tsuid);
        }
        json.writeNumberField("startTime", start_time);
        json.writeNumberField("endTime", end_time);
        json.writeStringField("description", description);
        json.writeStringField("notes", notes);
        if (custom == null) {
            json.writeNullField("custom");
        } else {
            json.writeObjectFieldStart("custom");
            for (Map.Entry<String, String> entry : custom.entrySet()) {
                json.writeStringField(entry.getKey(), entry.getValue());
            }
            json.writeEndObject();
        }

        json.writeEndObject();
        json.close();
        return output.toByteArray();
    } catch (IOException e) {
        throw new RuntimeException("Unable to serialize Annotation", e);
    }
}

From source file:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java

@Override
public SerializerResult serviceDocument(final ServiceMetadata metadata, final String serviceRoot)
        throws SerializerException {
    OutputStream outputStream = null;
    SerializerException cachedException = null;

    try {//from   www.  j av a  2 s. c  o m
        CircleStreamBuffer buffer = new CircleStreamBuffer();
        outputStream = buffer.getOutputStream();
        JsonGenerator json = new JsonFactory().createGenerator(outputStream);
        new ServiceDocumentJsonSerializer(metadata, serviceRoot, isODataMetadataNone)
                .writeServiceDocument(json);

        json.close();
        outputStream.close();
        return SerializerResultImpl.with().content(buffer.getInputStream()).build();
    } catch (final IOException e) {
        cachedException = new SerializerException(IO_EXCEPTION_TEXT, e,
                SerializerException.MessageKeys.IO_EXCEPTION);
        throw cachedException;
    } finally {
        closeCircleStreamBufferOutput(outputStream, cachedException);
    }
}

From source file:org.sfs.nodes.compute.container.GetContainer.java

@Override
public void handle(final SfsRequest httpServerRequest) {

    VertxContext<Server> vertxContext = httpServerRequest.vertxContext();
    aVoid().flatMap(new Authenticate(httpServerRequest))
            .flatMap(new ValidateActionAuthenticated(httpServerRequest))
            .map(aVoid -> fromSfsRequest(httpServerRequest)).map(new ValidateContainerPath())
            .flatMap(new LoadAccountAndContainer(vertxContext))
            .flatMap(new ValidateActionContainerListObjects(httpServerRequest)).flatMap(persistentContainer -> {

                HttpServerResponse httpServerResponse = httpServerRequest.response();

                MultiMap queryParams = httpServerRequest.params();
                MultiMap headerParams = httpServerRequest.headers();

                String format = queryParams.get(FORMAT);
                String accept = headerParams.get(ACCEPT);

                MediaType parsedAccept = null;

                if (equalsIgnoreCase("xml", format)) {
                    parsedAccept = APPLICATION_XML_UTF_8;
                } else if (equalsIgnoreCase("json", format)) {
                    parsedAccept = JSON_UTF_8;
                }/*from  w  w w  .  j av  a  2s .c o m*/

                if (parsedAccept == null) {
                    if (!isNullOrEmpty(accept)) {
                        parsedAccept = parse(accept);
                    }
                }

                if (parsedAccept == null || (!PLAIN_TEXT_UTF_8.is(parsedAccept)
                        && !APPLICATION_XML_UTF_8.is(parsedAccept) && !JSON_UTF_8.equals(parsedAccept))) {
                    parsedAccept = PLAIN_TEXT_UTF_8;
                }

                Observable<Optional<ContainerStats>> oContainerStats;
                boolean hasPrefix = !Strings.isNullOrEmpty(queryParams.get(SfsHttpQueryParams.PREFIX));
                if (hasPrefix) {
                    oContainerStats = just(persistentContainer)
                            .flatMap(new LoadContainerStats(httpServerRequest.vertxContext()))
                            .map(Optional::of);
                } else {
                    oContainerStats = Defer.just(Optional.<ContainerStats>absent());
                }

                Observable<ObjectList> oObjectListing = just(persistentContainer)
                        .flatMap(new ListObjects(httpServerRequest));

                MediaType finalParsedAccept = parsedAccept;
                return combineSinglesDelayError(oContainerStats, oObjectListing,
                        (containerStats, objectList) -> {

                            if (containerStats.isPresent()) {

                                Metadata metadata = persistentContainer.getMetadata();

                                for (String key : metadata.keySet()) {
                                    SortedSet<String> values = metadata.get(key);
                                    if (values != null && !values.isEmpty()) {
                                        httpServerResponse.putHeader(
                                                format("%s%s", X_ADD_CONTAINER_META_PREFIX, key), values);
                                    }
                                }

                                httpServerResponse.putHeader(X_CONTAINER_OBJECT_COUNT,
                                        valueOf(containerStats.get().getObjectCount()));
                                httpServerResponse.putHeader(X_CONTAINER_BYTES_USED,
                                        BigDecimal.valueOf(containerStats.get().getBytesUsed())
                                                .setScale(0, ROUND_HALF_UP).toString());
                            }

                            BufferOutputStream bufferOutputStream = new BufferOutputStream();

                            if (JSON_UTF_8.is(finalParsedAccept)) {

                                try {
                                    JsonFactory jsonFactory = vertxContext.verticle().jsonFactory();
                                    JsonGenerator jg = jsonFactory.createGenerator(bufferOutputStream, UTF8);
                                    jg.writeStartArray();

                                    for (ListedObject listedObject : ordered(objectList.getObjects())) {

                                        jg.writeStartObject();
                                        jg.writeStringField("hash",
                                                base16().lowerCase().encode(listedObject.getEtag()));
                                        jg.writeStringField("last_modified",
                                                toDateTimeString(listedObject.getLastModified()));
                                        jg.writeNumberField("bytes", listedObject.getLength());
                                        jg.writeStringField("content_type", listedObject.getContentType());
                                        jg.writeStringField("name", listedObject.getName());
                                        jg.writeEndObject();
                                    }

                                    jg.writeEndArray();
                                    jg.close();
                                } catch (IOException e) {
                                    throw new RuntimeException(e);
                                }

                            } else if (APPLICATION_XML_UTF_8.is(finalParsedAccept)) {

                                String charset = UTF_8.toString();
                                XMLStreamWriter writer = null;
                                try {
                                    writer = newFactory().createXMLStreamWriter(bufferOutputStream, charset);

                                    writer.writeStartDocument(charset, "1.0");

                                    writer.writeStartElement("container");

                                    writer.writeAttribute("name",
                                            fromPaths(persistentContainer.getId()).containerName().get());

                                    for (ListedObject listedObject : ordered(objectList.getObjects())) {

                                        writer.writeStartElement("object");

                                        writer.writeStartElement("name");
                                        writer.writeCharacters(listedObject.getName());
                                        writer.writeEndElement();

                                        writer.writeStartElement("hash");
                                        writer.writeCharacters(
                                                base16().lowerCase().encode(listedObject.getEtag()));
                                        writer.writeEndElement();

                                        writer.writeStartElement("bytes");
                                        writer.writeCharacters(valueOf(listedObject.getLength()));
                                        writer.writeEndElement();

                                        writer.writeStartElement("content_type");
                                        writer.writeCharacters(listedObject.getContentType());
                                        writer.writeEndElement();

                                        writer.writeStartElement("last_modified");
                                        writer.writeCharacters(
                                                toDateTimeString(listedObject.getLastModified()));
                                        writer.writeEndElement();

                                        writer.writeEndElement();
                                    }

                                    writer.writeEndElement();

                                    writer.writeEndDocument();

                                } catch (XMLStreamException e) {
                                    throw new RuntimeException(e);
                                } finally {
                                    try {
                                        if (writer != null) {
                                            writer.close();
                                        }
                                    } catch (XMLStreamException e) {
                                        LOGGER.warn(e.getLocalizedMessage(), e);
                                    }
                                }

                            } else {
                                String charset = UTF_8.toString();
                                try (OutputStreamWriter outputStreamWriter = new OutputStreamWriter(
                                        bufferOutputStream, charset)) {
                                    for (ListedObject listedObject : ordered(objectList.getObjects())) {
                                        outputStreamWriter.write(listedObject.getName());
                                        outputStreamWriter.write("\n");
                                    }
                                } catch (IOException e) {
                                    throw new RuntimeException(e);
                                }
                            }
                            objectList.clear();
                            return bufferOutputStream;
                        }).flatMap(bufferOutputStream -> {
                            Buffer buffer = bufferOutputStream.toBuffer();
                            httpServerResponse.putHeader(HttpHeaders.CONTENT_TYPE, finalParsedAccept.toString())
                                    .putHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(buffer.length()));
                            return AsyncIO.append(buffer, httpServerRequest.response());
                        });
            }).single().subscribe(new ConnectionCloseTerminus<Void>(httpServerRequest) {
                @Override
                public void onNext(Void aVoid) {

                }
            }

    );

}

From source file:com.spotify.docker.client.DefaultDockerClient.java

@Override
public LogStream execStart(String execId, ExecStartParameter... params)
        throws DockerException, InterruptedException {
    WebTarget resource = resource().path("exec").path(execId).path("start");

    final StringWriter writer = new StringWriter();
    try {/*from   ww w  .j  a  va  2s .c o m*/
        final JsonGenerator generator = objectMapper().getFactory().createGenerator(writer);
        generator.writeStartObject();

        for (ExecStartParameter param : params) {
            generator.writeBooleanField(param.getName(), true);
        }

        generator.writeEndObject();
        generator.close();
    } catch (IOException e) {
        throw new DockerException(e);
    }

    try {
        return request(POST, LogStream.class, resource, resource.request("application/vnd.docker.raw-stream"),
                Entity.json(writer.toString()));
    } catch (DockerRequestException e) {
        switch (e.status()) {
        case 404:
            throw new ExecNotFoundException(execId);
        default:
            throw e;
        }
    }
}

From source file:tds.student.web.controls.dummy.GlobalJavascriptWriter.java

public void writeBrowserInfo() throws JsonGenerationException, IOException {
    StringWriter sw = new StringWriter();
    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator jsonWriter = jsonFactory.createGenerator(sw);

    jsonWriter.writeStartObject();// {

    // browser info
    BrowserParser browser = new BrowserParser();
    jsonWriter.writeStringField("userAgent", browser.getUserAgent());
    jsonWriter.writeStringField("osLabel", browser.getOSFullName());
    jsonWriter.writeStringField("osName", String.valueOf(browser.getOsName()));
    jsonWriter.writeNumberField("osVersion", browser.getVersion());
    jsonWriter.writeStringField("architecture", browser.getHardwareArchitecture());
    jsonWriter.writeStringField("name", browser.getName());
    jsonWriter.writeNumberField("version", browser.getVersion());
    jsonWriter.writeBooleanField("isSecure", browser.isSecureBrowser());

    String label;//from ww w . ja  v a2s . c  o  m
    if (browser.isSecureBrowser())
        label = String.format("Secure v%s", "" + browser.getVersion());
    else
        label = String.format("%s v%s", browser.getName(), "" + browser.getVersion());
    jsonWriter.writeStringField("label", label);

    jsonWriter.writeEndObject(); // }
    jsonWriter.close();
    // TODO shiva: do we need to do sw.getBuffer () below.
    _writer.write(String.format("TDS.BrowserInfo = %s; ", sw.getBuffer().toString()));
    _writer.write("\n\r");
}

From source file:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java

@Override
public SerializerResult reference(final ServiceMetadata metadata, final EdmEntitySet edmEntitySet,
        final Entity entity, final ReferenceSerializerOptions options) throws SerializerException {
    OutputStream outputStream = null;
    SerializerException cachedException = null;

    try {//from www  . j a v a 2s.  c  o m
        final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
        CircleStreamBuffer buffer = new CircleStreamBuffer();
        final UriHelper uriHelper = new UriHelperImpl();
        outputStream = buffer.getOutputStream();
        final JsonGenerator json = new JsonFactory().createGenerator(outputStream);

        json.writeStartObject();
        writeContextURL(contextURL, json);
        json.writeStringField(constants.getId(), uriHelper.buildCanonicalURL(edmEntitySet, entity));
        json.writeEndObject();

        json.close();
        outputStream.close();
        return SerializerResultImpl.with().content(buffer.getInputStream()).build();
    } catch (final IOException e) {
        cachedException = new SerializerException(IO_EXCEPTION_TEXT, e,
                SerializerException.MessageKeys.IO_EXCEPTION);
        throw cachedException;
    } finally {
        closeCircleStreamBufferOutput(outputStream, cachedException);
    }
}