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

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

Introduction

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

Prototype

public abstract void writeString(SerializableString text) throws IOException, JsonGenerationException;

Source Link

Document

Method similar to #writeString(String) , but that takes SerializableString which can make this potentially more efficient to call as generator may be able to reuse quoted and/or encoded representation.

Usage

From source file:org.opendaylight.sxp.csit.libraries.DeviceTestLibrary.java

/**
 * @param libraryServer Server where Library will be added
 *///ww  w.  ja  va2 s  .c  o m
public DeviceTestLibrary(RobotLibraryServer libraryServer) {
    super(libraryServer);
    connectionTimers.setReconciliationTime(0);
    connectionTimers.setDeleteHoldDownTime(0);
    pojoBindingsSerializer.registerModule(
            new SimpleModule().addSerializer(SxpBindingFields.class, new JsonSerializer<SxpBindingFields>() {

                @Override
                public void serialize(SxpBindingFields value, JsonGenerator jgen, SerializerProvider provider)
                        throws IOException {
                    jgen.writeStartObject();
                    jgen.writeNumberField("sgt", value.getSecurityGroupTag().getValue());
                    jgen.writeArrayFieldStart("ip-prefix");
                    jgen.writeString(new String(value.getIpPrefix().getValue()));
                    jgen.writeEndArray();
                    jgen.writeEndObject();
                }
            }));
}

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)//  www.  j  ava  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:net.logstash.logback.composite.loggingevent.TagsJsonProvider.java

@SuppressWarnings("deprecation")
private boolean writeTagIfNecessary(JsonGenerator generator, boolean hasWrittenStart, final Marker marker)
        throws IOException {
    if (!marker.getName().equals(JsonMessageJsonProvider.JSON_MARKER_NAME)
            && !LogstashMarkersJsonProvider.isLogstashMarker(marker)) {

        if (!hasWrittenStart) {
            generator.writeArrayFieldStart(getFieldName());
            hasWrittenStart = true;/* w  w w .j  a  v  a 2 s.com*/
        }
        generator.writeString(marker.getName());
    }
    if (marker.hasReferences()) {

        for (Iterator<?> i = marker.iterator(); i.hasNext();) {
            Marker next = (Marker) i.next();

            hasWrittenStart |= writeTagIfNecessary(generator, hasWrittenStart, next);
        }
    }
    return hasWrittenStart;
}

From source file:net.opentsdb.contrib.tsquare.web.controller.ExtendedApiController.java

@RequestMapping(value = "/grep", method = RequestMethod.GET)
public void grep(@RequestParam(required = false, defaultValue = "") String type,
        @RequestParam(required = false, defaultValue = "wildcard") String method,
        @RequestParam(required = true) String q, final HttpServletResponse servletResponse) throws IOException {

    if (log.isInfoEnabled()) {
        log.info("Suggest {} using {} expression: {}", type, method, q);
    }/*from   w ww  .j  a  va 2s. c o m*/

    // Do we have a valid type? Note that an empty "type" is valid.
    if (!Strings.isNullOrEmpty(type)) {
        Preconditions.checkArgument(getTsdbManager().getKnownUidKinds().contains(type), "Unknown type: %s",
                type);
    }

    // We can only query hbase using regex, so convert a wildcard query into
    // a regex if necessary.
    final String regex;
    if ("wildcard".equalsIgnoreCase(method)) {
        regex = TsWebUtils.wildcardToRegex(q);
        log.debug("Converted wildcard expression {} to regex: {}", q, regex);
    } else {
        regex = q;
    }

    final UidQuery query = getTsdbManager().newUidQuery();
    query.setRegex(regex);

    if (Strings.isNullOrEmpty(type)) {
        query.includeAllKinds();
    } else {
        query.includeKind(type);
    }

    servletResponse.setContentType("application/json");
    final OutputStream stream = servletResponse.getOutputStream();
    final JsonGenerator json = new JsonFactory().createJsonGenerator(stream);

    try {
        json.writeStartArray();

        query.run(new QueryCallback<Uid>() {
            @Override
            public boolean onResult(final Uid resultObject) {
                try {
                    json.writeString(resultObject.getName());
                    return true;
                } catch (IOException e) {
                    throw new IllegalArgumentException("Unable to serialize " + resultObject + " to JSON", e);
                }
            }
        });

        json.writeEndArray();
        json.flush();
    } finally {
        Closeables.close(stream, false);
    }
}

From source file:com.acmemotors.batch.LoaderJobConfiguration.java

@Bean
@StepScope//from w  w  w .  j  a va2 s. com
public ItemProcessor<Map<String, Object>, String> processor(
        @Value("#{jobParameters['delay']}") final long delay) {
    return item -> {
        DefaultSerializerProvider provider = new DefaultSerializerProvider.Impl();

        provider.setNullValueSerializer(new JsonSerializer<Object>() {
            @Override
            public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider)
                    throws IOException {
                if (value == null) {
                    jgen.writeString("");
                } else {
                    if (value instanceof String) {
                        jgen.writeString((String) value);
                    } else {
                        if (value instanceof Integer) {
                            jgen.writeNumber((Integer) value);
                        } else {
                            jgen.writeNumber((Double) value);
                        }
                    }
                }
            }
        });

        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializerProvider(provider);

        String processedItem = mapper.writeValueAsString(item);

        Thread.sleep(delay);

        return processedItem;
    };
}

From source file:org.eclipse.winery.repository.resources.entitytypes.relationshiptypes.VisualAppearanceResource.java

@GET
@RestDoc(methodDescription = "@return JSON object to be used at jsPlumb.registerConnectionType('NAME', <data>)")
@Produces(MediaType.APPLICATION_JSON)//w ww  . j a  v a2s .com
public Response getConnectionTypeForJsPlumbData() {
    JsonFactory jsonFactory = new JsonFactory();
    StringWriter sw = new StringWriter();
    try {
        JsonGenerator jg = jsonFactory.createGenerator(sw);
        jg.writeStartObject();

        jg.writeFieldName("connector");
        jg.writeString("Flowchart");

        jg.writeFieldName("paintStyle");
        jg.writeStartObject();
        jg.writeFieldName("lineWidth");
        jg.writeNumber(this.getLineWidth());
        jg.writeFieldName("strokeStyle");
        jg.writeObject(this.getColor());
        String dash = this.getDash();
        if (!StringUtils.isEmpty(dash)) {
            String dashStyle = null;
            switch (dash) {
            case "dotted":
                dashStyle = "1 5";
                break;
            case "dotted2":
                dashStyle = "3 4";
                break;
            case "plain":
                // default works
                // otherwise, "1 0" can be used
                break;
            }
            if (dashStyle != null) {
                jg.writeStringField("dashstyle", dashStyle);
            }
        }
        jg.writeEndObject();

        jg.writeFieldName("hoverPaintStyle");
        jg.writeStartObject();
        jg.writeFieldName("strokeStyle");
        jg.writeObject(this.getHoverColor());
        jg.writeEndObject();

        // BEGIN: Overlays

        jg.writeFieldName("overlays");
        jg.writeStartArray();

        // source arrow head
        String head = this.getSourceArrowHead();
        if (!head.equals("none")) {
            jg.writeStartArray();
            jg.writeString(head);

            jg.writeStartObject();

            jg.writeFieldName("location");
            jg.writeNumber(0);

            // arrow should point towards the node and not away from it
            jg.writeFieldName("direction");
            jg.writeNumber(-1);

            jg.writeFieldName("width");
            jg.writeNumber(20);

            jg.writeFieldName("length");
            jg.writeNumber(12);

            jg.writeEndObject();
            jg.writeEndArray();
        }

        // target arrow head
        head = this.getTargetArrowHead();
        if (!head.equals("none")) {
            jg.writeStartArray();
            jg.writeString(head);
            jg.writeStartObject();
            jg.writeFieldName("location");
            jg.writeNumber(1);
            jg.writeFieldName("width");
            jg.writeNumber(20);
            jg.writeFieldName("length");
            jg.writeNumber(12);
            jg.writeEndObject();
            jg.writeEndArray();
        }

        // Type in brackets on the arrow
        jg.writeStartArray();
        jg.writeString("Label");
        jg.writeStartObject();
        jg.writeStringField("id", "label");
        //jg.writeStringField("label", "(" + ((RelationshipTypeResource) this.res).getName() + ")");
        jg.writeStringField("label", "");
        jg.writeStringField("cssClass", "relationshipTypeLabel");
        jg.writeFieldName("location");
        jg.writeNumber(0.5);
        jg.writeEndObject();
        jg.writeEndArray();

        jg.writeEndArray();

        // END: Overlays

        jg.writeEndObject();

        jg.close();
    } catch (Exception e) {
        VisualAppearanceResource.logger.error(e.getMessage(), e);
        return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e).build();
    }
    String res = sw.toString();
    return Response.ok(res).build();
}

From source file:com.predic8.membrane.core.interceptor.authentication.session.TelekomSMSTokenProvider.java

@Override
protected void sendSMS(String text, String recipientNumber) {
    recipientNumber = recipientNumber.replaceAll("^00", "\\+");

    try {/*from w ww.  ja va  2  s . c o  m*/
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        JsonFactory jsonFactory = new JsonFactory();
        JsonGenerator jg = jsonFactory.createGenerator(baos, JsonEncoding.UTF8);

        jg.writeStartObject();
        jg.writeObjectFieldStart("outboundSMSMessageRequest");
        jg.writeArrayFieldStart("address");
        jg.writeString("tel:" + recipientNumber);
        jg.writeEndArray();
        jg.writeStringField("senderAddress", senderAddress);
        jg.writeObjectFieldStart("outboundSMSTextMessage");
        jg.writeStringField("message", text);
        jg.writeEndObject();
        jg.writeStringField("outboundEncoding", "7bitGSM");
        jg.writeStringField("clientCorrelator", "" + ((long) (Math.random() * Long.MAX_VALUE)));
        if (senderName != null)
            jg.writeStringField("senderName", senderName);
        jg.writeEndObject();
        jg.writeEndObject();

        jg.close();

        Exchange exc = new Request.Builder()
                .post("https://gateway.developer.telekom.com/plone/sms/rest/"
                        + environment.name().toLowerCase() + "/smsmessaging/v1/outbound/"
                        + URLEncoder.encode(senderAddress, "UTF-8") + "/requests")
                .header("Host", "gateway.developer.telekom.com")
                .header("Authorization",
                        "OAuth realm=\"developergarden.com\",oauth_token=\"" + getAccessToken() + "\"")
                .header("Accept", "application/json").header("Content-Type", "application/json")
                .body(baos.toByteArray()).buildExchange();

        exc.setRule(new NullRule() {
            @Override
            public SSLProvider getSslOutboundContext() {
                return new SSLContext(new SSLParser(), new ResolverMap(), null);
            }
        });
        hc.call(exc, false, true);

        if (exc.getResponse().getStatusCode() != 201)
            throw new RuntimeException("Could not send SMS: " + exc.getResponse());

        log.debug("sent SMS to " + recipientNumber);
    } catch (Exception e2) {
        throw new RuntimeException(e2);
    }
}

From source file:de.alexkamp.sandbox.ChrootSandboxProcess.java

public void toJson(JsonGenerator sender) throws IOException {
    sender.writeStartObject();/*from   w  w w.j  ava 2s . c  o  m*/

    sender.writeObjectField("WorkDir", getWorkdir());
    sender.writeObjectField("Executable", getExecutable());
    sender.writeObjectField("Timeout", getTimeout());
    sender.writeArrayFieldStart("Arguments");
    for (String arg : getArgs()) {
        sender.writeString(arg);
    }
    sender.writeEndArray();

    sender.writeEndObject();
}

From source file:com.basho.riak.client.query.BucketMapReduce.java

@Override
protected void writeInput(JsonGenerator jsonGenerator) throws IOException {
    if (hasFilters()) {
        jsonGenerator.writeObject(new Object() {
            @SuppressWarnings("unused")
            @JsonProperty//from  w ww  .  ja  va 2s . co  m
            String bucket = getBucket();
            @SuppressWarnings("unused")
            @JsonProperty
            Collection<Object[]> key_filters = getKeyFilters();
        });

    } else {
        jsonGenerator.writeString(bucket);
    }
}

From source file:org.eclipse.winery.repository.resources.entitytypes.relationshiptypes.ImplementationsOfOneRelationshipTypeResource.java

/**
 * required by implementations.jsp// www.  j  a  v a  2s  .  co  m
 *
 * Method similar top the one of ImplementationsOfOneNodeTypeResource
 *
 * @return for each node type implementation implementing the associated
 *         node type
 */
@Override
public String getImplementationsTableData() {
    String res;
    JsonFactory jsonFactory = new JsonFactory();
    StringWriter tableDataSW = new StringWriter();
    try {
        JsonGenerator jGenerator = jsonFactory.createGenerator(tableDataSW);
        jGenerator.writeStartArray();

        Collection<RelationshipTypeImplementationId> allNTIids = BackendUtils
                .getAllElementsRelatedWithATypeAttribute(RelationshipTypeImplementationId.class,
                        this.getTypeId().getQName());
        for (RelationshipTypeImplementationId ntiID : allNTIids) {
            jGenerator.writeStartArray();
            jGenerator.writeString(ntiID.getNamespace().getDecoded());
            jGenerator.writeString(ntiID.getXmlId().getDecoded());
            jGenerator.writeEndArray();
        }
        jGenerator.writeEndArray();
        jGenerator.close();
        tableDataSW.close();
        res = tableDataSW.toString();
    } catch (Exception e) {
        ImplementationsOfOneRelationshipTypeResource.LOGGER.error(e.getMessage(), e);
        res = "[]";
    }
    return res;
}