Example usage for com.fasterxml.jackson.core JsonFactory JsonFactory

List of usage examples for com.fasterxml.jackson.core JsonFactory JsonFactory

Introduction

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

Prototype

public JsonFactory() 

Source Link

Document

Default constructor used to create factory instances.

Usage

From source file:io.mesosphere.mesos.frameworks.cassandra.framework.Main.java

private static int _main() throws UnknownHostException {
    final Optional<String> portOption = Env.option("PORT0");
    if (!portOption.isPresent()) {
        throw new SystemExitException("Environment variable PORT0 must be defined", 5);
    }/*from  w ww. java 2s  . c  om*/

    final int port0 = Integer.parseInt(portOption.get());
    final String host = Env.option("HOST").or("localhost");

    final Optional<String> clusterNameOpt = Env.option("CASSANDRA_CLUSTER_NAME");

    final int executorCount = Integer.parseInt(Env.option("CASSANDRA_NODE_COUNT").or("3"));
    final int seedCount = Integer.parseInt(Env.option("CASSANDRA_SEED_COUNT").or("2"));
    final double resourceCpuCores = Double.parseDouble(Env.option("CASSANDRA_RESOURCE_CPU_CORES").or("2.0"));
    final long resourceMemoryMegabytes = Long.parseLong(Env.option("CASSANDRA_RESOURCE_MEM_MB").or("2048"));
    final long resourceDiskMegabytes = Long.parseLong(Env.option("CASSANDRA_RESOURCE_DISK_MB").or("2048"));
    final long javaHeapMb = Long.parseLong(Env.option("CASSANDRA_RESOURCE_HEAP_MB").or("0"));
    final long healthCheckIntervalSec = Long
            .parseLong(Env.option("CASSANDRA_HEALTH_CHECK_INTERVAL_SECONDS").or("60"));
    final long bootstrapGraceTimeSec = Long
            .parseLong(Env.option("CASSANDRA_BOOTSTRAP_GRACE_TIME_SECONDS").or("120"));
    final String cassandraVersion = "2.1.4";
    final String clusterName = clusterNameOpt.or("cassandra");
    final String frameworkName = frameworkName(clusterNameOpt);
    final String zkUrl = Env.option("CASSANDRA_ZK").or("zk://localhost:2181/cassandra-mesos");
    final long zkTimeoutMs = Long.parseLong(Env.option("CASSANDRA_ZK_TIMEOUT_MS").or("10000"));
    final String mesosMasterZkUrl = Env.option("MESOS_ZK").or("zk://localhost:2181/mesos");
    final String mesosUser = Env.option("MESOS_USER").or("");
    final long failoverTimeout = Long.parseLong(Env.option("CASSANDRA_FAILOVER_TIMEOUT_SECONDS")
            .or(String.valueOf(Period.days(7).toStandardSeconds().getSeconds())));
    final String mesosRole = Env.option("CASSANDRA_FRAMEWORK_MESOS_ROLE").or("*");
    final String dataDirectory = Env.option("CASSANDRA_DATA_DIRECTORY").or(DEFAULT_DATA_DIRECTORY); // TODO: Temporary. Will be removed when MESOS-1554 is released
    final String backupDirectory = Env.option("CASSANDRA_BACKUP_DIRECTORY").or(DEFAULT_BACKUP_DIRECTORY);
    final boolean jmxLocal = Boolean.parseBoolean(Env.option("CASSANDRA_JMX_LOCAL").or("true"));
    final boolean jmxNoAuthentication = Boolean
            .parseBoolean(Env.option("CASSANDRA_JMX_NO_AUTHENTICATION").or("false"));
    final String defaultRack = Env.option("CASSANDRA_DEFAULT_RACK").or("RAC1");
    final String defaultDc = Env.option("CASSANDRA_DEFAULT_DC").or("DC1");

    final List<ExternalDc> externalDcs = getExternalDcs(Env.filterStartsWith("CASSANDRA_EXTERNAL_DC_", true));
    final Matcher matcher = validateZkUrl(zkUrl);

    final State state = new ZooKeeperState(matcher.group(1), zkTimeoutMs, TimeUnit.MILLISECONDS,
            matcher.group(2));

    if (seedCount > executorCount || seedCount <= 0 || executorCount <= 0) {
        throw new IllegalArgumentException(
                "number of nodes (" + executorCount + ") and/or number of seeds (" + seedCount + ") invalid");
    }

    final PersistedCassandraFrameworkConfiguration configuration = new PersistedCassandraFrameworkConfiguration(
            state, frameworkName, healthCheckIntervalSec, bootstrapGraceTimeSec, cassandraVersion,
            resourceCpuCores, resourceDiskMegabytes, resourceMemoryMegabytes, javaHeapMb, executorCount,
            seedCount, mesosRole, backupDirectory, dataDirectory, jmxLocal, jmxNoAuthentication, defaultRack,
            defaultDc, externalDcs, clusterName);

    final FrameworkInfo.Builder frameworkBuilder = FrameworkInfo.newBuilder()
            .setFailoverTimeout(failoverTimeout).setUser(mesosUser).setName(frameworkName).setRole(mesosRole)
            .setCheckpoint(true);

    final Optional<String> frameworkId = configuration.frameworkId();
    if (frameworkId.isPresent()) {
        frameworkBuilder.setId(frameworkId(frameworkId.get()));
    }

    final URI httpServerBaseUri = URI.create("http://" + host + ":" + port0 + "/");

    final Clock clock = new SystemClock();
    final PersistedCassandraClusterHealthCheckHistory healthCheckHistory = new PersistedCassandraClusterHealthCheckHistory(
            state);
    final PersistedCassandraClusterState clusterState = new PersistedCassandraClusterState(state);
    final SeedManager seedManager = new SeedManager(configuration, new ObjectMapper(), new SystemClock());
    final CassandraCluster cassandraCluster = new CassandraCluster(clock, httpServerBaseUri.toString(),
            new ExecutorCounter(state, 0L), clusterState, healthCheckHistory,
            new PersistedCassandraClusterJobs(state), configuration, seedManager);
    final HealthReportService healthReportService = new HealthReportService(clusterState, configuration,
            healthCheckHistory, clock);
    final Scheduler scheduler = new CassandraScheduler(configuration, cassandraCluster, clock);

    final JsonFactory factory = new JsonFactory();
    final ObjectMapper objectMapper = new ObjectMapper(factory);
    objectMapper.registerModule(new GuavaModule());

    // create JsonProvider to provide custom ObjectMapper
    JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider();
    provider.setMapper(objectMapper);

    final ResourceConfig rc = new ResourceConfig().registerInstances(
            new FileResourceController(cassandraVersion), new ApiController(factory),
            new ClusterCleanupController(cassandraCluster, factory),
            new ClusterRepairController(cassandraCluster, factory),
            new ClusterRollingRestartController(cassandraCluster, factory),
            new ClusterBackupController(cassandraCluster, factory),
            new ClusterRestoreController(cassandraCluster, factory),
            new ConfigController(cassandraCluster, factory),
            new LiveEndpointsController(cassandraCluster, factory),
            new NodeController(cassandraCluster, factory), new HealthCheckController(healthReportService),
            new QaReportController(cassandraCluster, factory),
            new ScaleOutController(cassandraCluster, factory), provider);
    final HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(httpServerBaseUri, rc);

    final MesosSchedulerDriver driver;
    final Optional<Credential> credentials = getCredential();
    if (credentials.isPresent()) {
        frameworkBuilder.setPrincipal(credentials.get().getPrincipal());
        driver = new MesosSchedulerDriver(scheduler, frameworkBuilder.build(), mesosMasterZkUrl,
                credentials.get());
    } else {
        frameworkBuilder.setPrincipal("cassandra-framework");
        driver = new MesosSchedulerDriver(scheduler, frameworkBuilder.build(), mesosMasterZkUrl);
    }

    seedManager.startSyncingSeeds(60);

    final int status;
    switch (driver.run()) {
    case DRIVER_STOPPED:
        status = 0;
        break;
    case DRIVER_ABORTED:
        status = 1;
        break;
    case DRIVER_NOT_STARTED:
        status = 2;
        break;
    default:
        status = 3;
        break;
    }

    httpServer.shutdownNow();
    // Ensure that the driver process terminates.
    driver.stop(true);
    return status;
}

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

/**
 * Returns the {@link JsonFactory} configured for this {@link OpenRtbJsonFactory}.
 * If you didn't set any value with {@link #setJsonFactory(JsonFactory)},
 * will create a default factory.//w  ww. j a  v a 2 s.  com
 */
public final JsonFactory getJsonFactory() {
    if (jsonFactory == null) {
        jsonFactory = new JsonFactory();
    }
    return jsonFactory;
}

From source file:org.flockdata.integration.FileProcessor.java

private int processJsonEntities(String fileName, ExtractProfile extractProfile) throws FlockException {
    int rows = 0;

    File file = new File(fileName);
    InputStream stream = null;//  www .j  a v a  2s.  c o m
    if (!file.exists()) {
        stream = ClassLoader.class.getResourceAsStream(fileName);
        if (stream == null) {
            logger.error("{} does not exist", fileName);
            return 0;
        }
    }
    StopWatch watch = new StopWatch();

    JsonFactory jfactory = new JsonFactory();
    JsonParser jParser;
    List<EntityToEntityLinkInput> referenceInputBeans = new ArrayList<>();

    try {

        //String docType = mappable.getDataType();
        watch.start();
        ObjectMapper om = FdJsonObjectMapper.getObjectMapper();
        try {

            if (stream != null)
                jParser = jfactory.createParser(stream);
            else
                jParser = jfactory.createParser(file);

            JsonToken currentToken = jParser.nextToken();
            long then = new DateTime().getMillis();
            JsonNode node;
            if (currentToken == JsonToken.START_ARRAY || currentToken == JsonToken.START_OBJECT) {
                while (currentToken != null && currentToken != JsonToken.END_OBJECT) {

                    while (currentToken != null && jParser.nextToken() != JsonToken.END_ARRAY) {
                        node = om.readTree(jParser);
                        if (node != null) {
                            processJsonNode(node, extractProfile.getContentModel(), referenceInputBeans);
                            if (stopProcessing(rows++, then)) {
                                break;
                            }

                        }
                        currentToken = jParser.nextToken();

                    }
                }
            } else if (currentToken == JsonToken.START_OBJECT) {

                //om.readTree(jParser);
                node = om.readTree(jParser);
                processJsonNode(node, extractProfile.getContentModel(), referenceInputBeans);
            }

        } catch (IOException e1) {
            logger.error("Unexpected", e1);
        }

    } finally {
        getPayloadWriter().flush();
    }

    return endProcess(watch, rows, 0);
}

From source file:com.cinnober.msgcodec.json.JsonCodec.java

@Override
public void encode(Object group, OutputStream out) throws IOException {
    if (group == null) {
        out.write(NULL_BYTES);/*from  ww  w  . j  a  v a2 s  .c  o  m*/
    } else {
        JsonFactory f = new JsonFactory();
        JsonGenerator g = f.createGenerator(out);
        dynamicGroupHandler.writeValue(group, g);
        g.flush();
    }
}

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

@Override
public SerializerResult error(final ODataServerError error) throws SerializerException {
    OutputStream outputStream = null;
    SerializerException cachedException = null;
    try {//from   w w  w .  j a  v a 2 s .c  o  m
        CircleStreamBuffer buffer = new CircleStreamBuffer();
        outputStream = buffer.getOutputStream();
        JsonGenerator json = new JsonFactory().createGenerator(outputStream);
        new ODataErrorSerializer().writeErrorDocument(json, error);

        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:DAO.BestellingDAOJson.java

public void createBestelling(Bestelling bestelling, int klant_id) throws SQLException {
    try {//  w ww  . ja v  a2  s.  co m

        JsonFactory jfactory = new JsonFactory();

        /*** write to file ***/

        JsonGenerator jGenerator = jfactory.createJsonGenerator(
                new FileOutputStream("C:\\Users\\maurice\\Desktop\\Workshoptest.json"), JsonEncoding.UTF8);

        jGenerator.writeStartObject();
        jGenerator.writeNumberField("klantID", bestelling.getKlant_id());
        jGenerator.writeNumberField("bestelID", bestelling.getBestelling_id());
        jGenerator.writeFieldName("ArtikelBestellingArray");
        jGenerator.writeStartArray();
        for (ArtikelBestelling artikel : (ArrayList<ArtikelBestelling>) bestelling.getArtikelBestellingList()) {

            jGenerator.writeStartObject();
            jGenerator.writeNumberField("artikelID", artikel.getArtikelPojo().getArtikelID());
            jGenerator.writeNumberField("artikelAantal", artikel.getAantal_artikelen());
            jGenerator.writeEndObject();
        }
        jGenerator.writeEndArray();
        jGenerator.writeEndObject();
        jGenerator.close();
    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

}

From source file:com.cinnober.msgcodec.json.JsonCodec.java

@Override
public void encode(Object group, ByteSink out) throws IOException {
    if (group == null) {
        out.write(NULL_BYTES);/* www .java  2  s .c o  m*/
    } else {
        JsonFactory f = new JsonFactory();
        JsonGenerator g = f.createGenerator(new ByteSinkOutputStream(out));
        dynamicGroupHandler.writeValue(group, g);
        g.flush();
    }
}

From source file:io.syndesis.jsondb.impl.SqlJsonDB.java

@Override
public void update(String path, InputStream is) {
    ArrayList<String> updatePaths = new ArrayList<>();
    withTransaction(dbi -> {//from w  w w . ja v  a 2  s.c om
        try {
            BatchManager mb = new BatchManager(dbi);

            try (JsonParser jp = new JsonFactory().createParser(is)) {
                JsonToken nextToken = jp.nextToken();
                if (nextToken != JsonToken.START_OBJECT) {
                    throw new JsonParseException(jp, "Update did not contain a json object");
                }

                while (true) {

                    nextToken = jp.nextToken();
                    if (nextToken == JsonToken.END_OBJECT) {
                        break;
                    }
                    if (nextToken != JsonToken.FIELD_NAME) {
                        throw new JsonParseException(jp, "Expected a field name");
                    }

                    String key = Strings.suffix(path, "/") + jp.getCurrentName();
                    updatePaths.add(key);
                    String baseDBPath = JsonRecordSupport.convertToDBPath(key);
                    mb.deleteRecordsForSet(baseDBPath);

                    try {
                        JsonRecordSupport.jsonStreamToRecords(jp, baseDBPath, mb.createSetConsumer());
                    } catch (IOException e) {
                        throw new JsonDBException(e);
                    }
                }

                nextToken = jp.nextToken();
                if (nextToken != null) {
                    throw new JsonParseException(jp, "Document did not terminate as expected.");
                }
                mb.flush();
            }
        } catch (IOException e) {
            throw new JsonDBException(e);
        }

    });
    if (bus != null) {
        for (String updatePath : updatePaths) {
            bus.broadcast("jsondb-updated", Strings.prefix(Strings.trimSuffix(updatePath, "/"), "/"));
        }
    }
}

From source file:com.comcast.cdn.traffic_control.traffic_router.core.external.ConsistentHashTest.java

License:asdf

@Test
public void itAppliesConsistentHashingToSteeringDeliveryService() throws Exception {
    CloseableHttpResponse response = null;
    try {//from   w ww . j  a  v  a 2 s.c om
        String requestPath = URLEncoder.encode("/some/path/thing", "UTF-8");
        HttpGet httpGet = new HttpGet(
                "http://localhost:3333/crs/consistenthash/deliveryservice?ip=98.76.54.123&deliveryServiceId="
                        + steeringDeliveryServiceId + "&requestPath=" + requestPath);
        response = closeableHttpClient.execute(httpGet);

        ObjectMapper objectMapper = new ObjectMapper(new JsonFactory());
        JsonNode deliveryServiceNode = objectMapper.readTree(EntityUtils.toString(response.getEntity()));
        assertThat(deliveryServiceNode.get("id").asText(), isIn(steeredDeliveryServices));

    } finally {
        if (response != null)
            response.close();
    }
}

From source file:org.eclipse.winery.repository.rest.resources.AbstractComponentsResource.java

/**
 * Used by org.eclipse.winery.repository.repository.client and by the artifactcreationdialog.tag. Especially the
 * "name" field is used there at the UI//from w  w w.  j a  v  a  2 s  . c om
 *
 * @param grouped if given, the JSON output is grouped by namespace
 * @return A list of all ids of all instances of this component type. <br /> Format: <code>[({"namespace":
 * "[namespace]", "id": "[id]"},)* ]</code>. <br /><br /> If grouped is set, the list will be grouped by namespace.
 * <br /> <code>[{"id": "[namsepace encoded]", "test": "[namespace decoded]", "children":[{"id": "[qName]", "text":
 * "[id]"}]}]</code>
 */
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getListOfAllIds(@QueryParam("grouped") String grouped) {
    Class<? extends TOSCAComponentId> idClass = RestUtils
            .getComponentIdClassForComponentContainer(this.getClass());
    boolean supportsNameAttribute = Util.instanceSupportsNameAttribute(idClass);
    SortedSet<? extends TOSCAComponentId> allTOSCAcomponentIds = RepositoryFactory.getRepository()
            .getAllTOSCAComponentIds(idClass);
    JsonFactory jsonFactory = new JsonFactory();
    StringWriter sw = new StringWriter();
    try {
        JsonGenerator jg = jsonFactory.createGenerator(sw);
        // We produce org.eclipse.winery.repository.client.WineryRepositoryClient.NamespaceAndId by hand here
        // Refactoring could move this class to common and fill it here
        if (grouped == null) {
            jg.writeStartArray();
            for (TOSCAComponentId id : allTOSCAcomponentIds) {
                jg.writeStartObject();
                jg.writeStringField("namespace", id.getNamespace().getDecoded());
                jg.writeStringField("id", id.getXmlId().getDecoded());
                if (supportsNameAttribute) {
                    AbstractComponentInstanceResource componentInstaceResource = AbstractComponentsResource
                            .getComponentInstaceResource(id);
                    String name = ((IHasName) componentInstaceResource).getName();
                    jg.writeStringField("name", name);
                } else {
                    // used for winery-qNameSelector to avoid an if there
                    jg.writeStringField("name", id.getXmlId().getDecoded());
                }
                jg.writeStringField("qName", id.getQName().toString());
                jg.writeEndObject();
            }
            jg.writeEndArray();
        } else {
            jg.writeStartArray();
            Map<Namespace, ? extends List<? extends TOSCAComponentId>> groupedIds = allTOSCAcomponentIds
                    .stream().collect(Collectors.groupingBy(id -> id.getNamespace()));
            groupedIds.keySet().stream().sorted().forEach(namespace -> {
                try {
                    jg.writeStartObject();
                    jg.writeStringField("id", namespace.getEncoded());
                    jg.writeStringField("text", namespace.getDecoded());
                    jg.writeFieldName("children");
                    jg.writeStartArray();
                    groupedIds.get(namespace).forEach(id -> {
                        try {
                            jg.writeStartObject();
                            String text;
                            if (supportsNameAttribute) {
                                AbstractComponentInstanceResource componentInstaceResource = AbstractComponentsResource
                                        .getComponentInstaceResource(id);
                                text = ((IHasName) componentInstaceResource).getName();
                            } else {
                                text = id.getXmlId().getDecoded();
                            }
                            jg.writeStringField("id", id.getQName().toString());
                            jg.writeStringField("text", text);
                            jg.writeEndObject();
                        } catch (IOException e) {
                            AbstractComponentsResource.LOGGER.error("Could not create JSON", e);
                        }
                    });
                    jg.writeEndArray();
                    jg.writeEndObject();
                } catch (IOException e) {
                    AbstractComponentsResource.LOGGER.error("Could not create JSON", e);
                }
            });
            jg.writeEndArray();
        }
        jg.close();
    } catch (Exception e) {
        AbstractComponentsResource.LOGGER.error(e.getMessage(), e);
        return "[]";
    }
    return sw.toString();
}