Example usage for io.vertx.core.json JsonArray JsonArray

List of usage examples for io.vertx.core.json JsonArray JsonArray

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray JsonArray.

Prototype

public JsonArray() 

Source Link

Document

Create an empty instance

Usage

From source file:org.sfs.integration.java.BaseTestVerticle.java

License:Apache License

@Before
public void before(TestContext context) {
    vertx = rule.vertx();//from w  w w.  j av a  2  s  . c o m
    Async async = context.async();
    aVoid().flatMap(aVoid -> {
        String clusteruuid = UUID.randomUUID().toString();
        try {
            rootTmpDir = createTempDirectory("");
            esTempDir = createTempDirectory(rootTmpDir, format("test-cluster-%s", clusteruuid));
            tmpDir = createTempDirectory(rootTmpDir, valueOf(currentTimeMillis()));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        int esPort = findFreePort(9300, 9400);
        esHost = "127.0.0.1:" + esPort;
        esClusterName = format("test-cluster-%s", clusteruuid);
        esNodeName = format("test-server-node-%s", clusteruuid);

        Builder settings = settingsBuilder();
        settings.put("script.groovy.sandbox.enabled", false);
        settings.put("cluster.name", esClusterName);
        settings.put("node.name", esNodeName);
        settings.put("http.enabled", false);
        settings.put("discovery.zen.ping.multicast.enabled", false);
        settings.put("discovery.zen.ping.unicast.hosts", esHost);
        settings.put("transport.tcp.port", esPort);
        settings.put("network.host", "127.0.0.1");
        settings.put("node.data", true);
        settings.put("node.master", true);
        settings.put("path.home", esTempDir);
        esNode = nodeBuilder().settings(settings).node();
        esClient = esNode.client();

        JsonObject verticleConfig;

        Buffer buffer = vertx.fileSystem().readFileBlocking(
                currentThread().getContextClassLoader().getResource("intgtestconfig.json").getFile());
        verticleConfig = new JsonObject(buffer.toString(UTF_8));
        verticleConfig.put("fs.home", tmpDir.toString());

        if (!verticleConfig.containsKey("elasticsearch.cluster.name")) {
            verticleConfig.put("elasticsearch.cluster.name", esClusterName);
        }

        if (!verticleConfig.containsKey("elasticsearch.node.name")) {
            verticleConfig.put("elasticsearch.node.name", esNodeName);
        }

        if (!verticleConfig.containsKey("elasticsearch.discovery.zen.ping.unicast.hosts")) {
            verticleConfig.put("elasticsearch.discovery.zen.ping.unicast.hosts", new JsonArray().add(esHost));
        }

        if (!verticleConfig.containsKey("http.listen.addresses")) {
            int freePort = findFreePort(6677, 7777);
            verticleConfig.put("http.listen.addresses",
                    new JsonArray().add(HostAndPort.fromParts("127.0.0.1", freePort).toString()));
        }

        HostAndPort hostAndPort = HostAndPort
                .fromString(verticleConfig.getJsonArray("http.listen.addresses").getString(0));

        HttpClientOptions httpClientOptions = new HttpClientOptions();
        httpClientOptions.setDefaultPort(hostAndPort.getPort()).setDefaultHost(hostAndPort.getHostText())
                .setMaxPoolSize(25).setConnectTimeout(1000).setKeepAlive(false).setLogActivity(true);

        HttpClientOptions httpsClientOptions = new HttpClientOptions();
        httpsClientOptions.setDefaultPort(hostAndPort.getPort()).setDefaultHost(hostAndPort.getHostText())
                .setMaxPoolSize(25).setConnectTimeout(1000).setKeepAlive(false).setLogActivity(true)
                .setSsl(true);
        httpClient = vertx.createHttpClient(httpClientOptions);
        httpsClient = vertx.createHttpClient(httpsClientOptions);

        SfsServer sfsServer = new SfsServer();

        ObservableFuture<String> handler = RxHelper.observableFuture();
        vertx.deployVerticle(sfsServer, new DeploymentOptions().setConfig(verticleConfig), handler.toHandler());
        return handler.map(new ToVoid<>()).doOnNext(aVoid1 -> {
            vertxContext = sfsServer.vertxContext();
            checkState(vertxContext != null, "VertxContext was null on Verticle %s", sfsServer);
        }).onErrorResumeNext(throwable -> {
            throwable.printStackTrace();
            return cleanup().flatMap(aVoid1 -> Observable.<Void>error(throwable));
        });
    }).subscribe(new TestSubscriber(context, async));
}

From source file:org.sfs.metadata.Metadata.java

License:Apache License

public JsonArray toJsonObject() {
    JsonArray metadata = new JsonArray();
    if (!meta.isEmpty()) {
        for (String key : keySet()) {
            SortedSet<String> values = get(key);
            if (!values.isEmpty()) {
                JsonArray valueJsonArray = new JsonArray();
                for (String value : values) {
                    valueJsonArray.add(value);
                }//  www  .  ja v a2 s  . co m
                JsonObject metaObject = new JsonObject();
                metaObject.put("name", key);
                metaObject.put("values", valueJsonArray);

                metadata.add(metaObject);
            }
        }
    }
    return metadata;
}

From source file:org.sfs.metadata.Metadata.java

License:Apache License

public Metadata withJsonObject(JsonArray metadataArray) {
    for (Object o : metadataArray) {
        JsonObject jsonObject = (JsonObject) o;
        String name = jsonObject.getString("name");
        JsonArray valueArray = jsonObject.getJsonArray("values", new JsonArray());
        for (Object p : valueArray) {
            String metaValue = (String) p;
            put(name, metaValue);/*w  w w . j  a va2 s  .  c  o m*/
        }

    }
    return this;
}

From source file:org.sfs.nodes.all.stats.GetClusterStats.java

License:Apache License

@Override
public void handle(final SfsRequest httpServerRequest) {

    VertxContext<Server> vertxContext = httpServerRequest.vertxContext();

    aVoid().flatMap(new Authenticate(httpServerRequest))
            .flatMap(new ValidateActionAdminOrSystem(httpServerRequest)).map(aVoid -> httpServerRequest)
            .map(new ToVoid<>()).map(aVoid -> {
                ClusterInfo clusterInfo = vertxContext.verticle().getClusterInfo();
                JsonArray jsonArray = new JsonArray();
                for (TransientServiceDef node : clusterInfo.getAllNodes()) {
                    jsonArray.add(node.toJsonObject());
                }/*from  www.j  av a 2 s  . com*/
                return jsonArray;
            }).single().subscribe(new Terminus<JsonArray>(httpServerRequest) {

                @Override
                public void onNext(JsonArray jsonArray) {
                    Buffer encoded = buffer(jsonArray.encode().getBytes(UTF_8));
                    httpServerRequest.response().setStatusCode(HTTP_OK)
                            .putHeader(CONTENT_LENGTH, valueOf(encoded.length())).write(encoded);
                }
            });

}

From source file:org.sfs.nodes.compute.account.GetAccount.java

License:Apache License

@Override
public void handle(final SfsRequest httpServerRequest) {

    aVoid().flatMap(new Authenticate(httpServerRequest))
            .flatMap(new ValidateActionAuthenticated(httpServerRequest))
            .map(aVoid -> fromSfsRequest(httpServerRequest)).map(new ValidateAccountPath())
            .map(objectPath -> objectPath.accountPath().get())
            .flatMap(new LoadAccount(httpServerRequest.vertxContext()))
            .map(new ValidatePersistentAccountExists()).flatMap(new ListContainers(httpServerRequest))
            .flatMap(containerList -> {
                HttpServerResponse httpServerResponse = httpServerRequest.response();
                MultiMap headerParams = httpServerRequest.headers();
                MultiMap queryParams = httpServerRequest.params();
                String format = queryParams.get(FORMAT);

                String accept = headerParams.get(ACCEPT);

                Account account = containerList.getAccount();

                Metadata metadata = account.getMetadata();

                for (String key : metadata.keySet()) {
                    SortedSet<String> values = metadata.get(key);
                    if (values != null && !values.isEmpty()) {
                        httpServerResponse.putHeader(format("%s%s", X_ADD_ACCOUNT_META_PREFIX, key), values);
                    }/*from w w w.j av  a 2s.  c  o m*/
                }

                httpServerResponse.putHeader(X_ACCOUNT_OBJECT_COUNT, valueOf(containerList.getObjectCount()));
                httpServerResponse.putHeader(X_ACCOUNT_CONTAINER_COUNT,
                        valueOf(containerList.getContainerCount()));
                httpServerResponse.putHeader(X_ACCOUNT_BYTES_USED,
                        BigDecimal.valueOf(containerList.getBytesUsed()).setScale(0, ROUND_HALF_UP).toString());

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

                if (equalsIgnoreCase("xml", format)) {
                    parsedAccept = APPLICATION_XML_UTF_8;
                } else if (equalsIgnoreCase("json", format)) {
                    parsedAccept = JSON_UTF_8;
                }

                httpServerResponse.setStatusCode(HTTP_OK);

                if (parsedAccept != null && JSON_UTF_8.is(parsedAccept)) {
                    String charset = UTF_8.toString();

                    JsonArray array = new JsonArray();

                    for (SparseContainer container : ordered(containerList.getContainers())) {

                        array.add(new JsonObject().put("name", container.getContainerName())
                                .put("count", container.getObjectCount())
                                .put("bytes", BigDecimal.valueOf(container.getByteCount())
                                        .setScale(0, ROUND_HALF_UP).longValue()));

                    }

                    Buffer buffer = buffer(array.encode(), charset);
                    httpServerResponse = httpServerResponse.putHeader(CONTENT_TYPE, JSON_UTF_8.toString());
                    httpServerResponse = httpServerResponse.putHeader(CONTENT_LENGTH, valueOf(buffer.length()));
                    return AsyncIO.append(buffer, httpServerResponse);

                } else if (parsedAccept != null && APPLICATION_XML_UTF_8.is(parsedAccept)) {

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

                        writer.writeStartDocument(charset, "1.0");

                        writer.writeStartElement("account");

                        writer.writeAttribute("name", fromPaths(account.getId()).accountName().get());

                        for (SparseContainer container : ordered(containerList.getContainers())) {

                            writer.writeStartElement("container");

                            writer.writeStartElement("name");
                            writer.writeCharacters(container.getContainerName());
                            writer.writeEndElement();

                            writer.writeStartElement("count");
                            writer.writeCharacters(valueOf(container.getObjectCount()));
                            writer.writeEndElement();

                            writer.writeStartElement("bytes");
                            writer.writeCharacters(BigDecimal.valueOf(container.getByteCount())
                                    .setScale(0, ROUND_HALF_UP).toString());
                            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);
                        }
                    }

                    Buffer buffer = bufferOutputStream.toBuffer();
                    httpServerResponse = httpServerResponse.putHeader(CONTENT_TYPE,
                            APPLICATION_XML_UTF_8.toString());
                    httpServerResponse = httpServerResponse.putHeader(CONTENT_LENGTH, valueOf(buffer.length()));
                    return AsyncIO.append(buffer, httpServerResponse);

                } else {
                    String charset = UTF_8.toString();
                    Buffer buffer = buffer();
                    for (SparseContainer container : ordered(containerList.getContainers())) {
                        buffer.appendString(container.getContainerName(), charset);
                        buffer.appendString("\n", charset);
                    }
                    httpServerResponse = httpServerResponse.putHeader(CONTENT_TYPE,
                            PLAIN_TEXT_UTF_8.toString());
                    httpServerResponse = httpServerResponse.putHeader(CONTENT_LENGTH, valueOf(buffer.length()));
                    return AsyncIO.append(buffer, httpServerResponse);
                }
            }).single().subscribe(new ConnectionCloseTerminus<Void>(httpServerRequest) {

                @Override
                public void onNext(Void aVoid) {

                }

            });

}

From source file:org.sfs.util.HttpServerRequestHeaderToJsonObject.java

License:Apache License

public static JsonObject call(HttpServerRequest httpServerRequest) {
    JsonObject jsonObject = new JsonObject();

    String query = httpServerRequest.query();
    String requestLine = String.format("%s %s%s %s", httpServerRequest.method(), httpServerRequest.path(),
            query != null ? '?' + query : "", httpServerRequest.version().toString());
    jsonObject.put("request_line", requestLine);
    MultiMap headers = httpServerRequest.headers();
    JsonArray jsonHeaders = new JsonArray();
    for (String headerName : headers.names()) {
        List<String> values = headers.getAll(headerName);
        JsonObject jsonHeader = new JsonObject();
        jsonHeader.put(headerName, values);
        jsonHeaders.add(jsonHeader);//from   w  w w.  j  a va 2 s  .c  o m
    }
    jsonObject.put("headers", jsonHeaders);
    return jsonObject;
}

From source file:org.sfs.vo.Account.java

License:Apache License

public T merge(JsonObject document) {

    JsonArray metadataJsonObject = document.getJsonArray("metadata", new JsonArray());
    metadata.withJsonObject(metadataJsonObject);

    setNodeId(document.getString("node_id"));

    String createTimestamp = document.getString("create_ts");
    String updateTimestamp = document.getString("update_ts");

    if (createTimestamp != null) {
        setCreateTs(fromDateTimeString(createTimestamp));
    }//from w  w w. ja  v  a 2s .  c o  m
    if (updateTimestamp != null) {
        setUpdateTs(fromDateTimeString(updateTimestamp));
    }

    return (T) this;
}

From source file:org.sfs.vo.Container.java

License:Apache License

public T merge(JsonObject document) {

    checkState(getParent().getId().equals(document.getString("account_id")));

    setOwnerGuid(document.getString("owner_guid"));

    JsonArray metadataJsonObject = document.getJsonArray("metadata", new JsonArray());
    getMetadata().withJsonObject(metadataJsonObject);

    setNodeId(document.getString("node_id"));

    String createTimestamp = document.getString("create_ts");
    String updateTimestamp = document.getString("update_ts");

    if (createTimestamp != null) {
        setCreateTs(fromDateTimeString(createTimestamp));
    }/*  w w w.  j a  v a 2 s .com*/
    if (updateTimestamp != null) {
        setUpdateTs(fromDateTimeString(updateTimestamp));
    }

    setObjectReplicas(
            document.containsKey("object_replicas") ? document.getInteger("object_replicas") : NOT_SET);

    return (T) this;
}

From source file:org.sfs.vo.LargeObjectManifest.java

License:Apache License

public JsonArray toJsonObject() {
    JsonArray entryJsonArray = new JsonArray();
    for (Entry entry : entries) {
        entryJsonArray.add(entry.toJsonObject());
    }//from w  w  w  .j  av a 2  s.c o  m
    return entryJsonArray;
}

From source file:org.sfs.vo.Segment.java

License:Apache License

public JsonObject toJsonObject() {
    JsonObject document = new JsonObject();
    document.put("id", id);
    document.put("read_md5", readMd5);
    document.put("read_sha512", readSha512);
    document.put("read_length", readLength);
    document.put("write_sha512", writeSha512);
    document.put("write_length", writeLength);
    document.put("tiny_data", tinyData);
    document.put("is_tiny_data", TRUE.equals(isTinyData));
    document.put("is_tiny_data_deleted", TRUE.equals(isTinyDataDeleted));
    if (tinyData != null) {
        checkState(TRUE.equals(isTinyData), "isTinyData must be set to true");
        checkState(blobs == null || blobs.isEmpty(), "blobs must be empty when tinyData exists");
    }//w w  w  .  ja  va2 s .com
    if (blobs != null && !blobs.isEmpty()) {
        checkState(!TRUE.equals(isTinyData), "isTinyData must be set to false");
        checkState(tinyData == null, "tinyData must be empty when blobs exist");
    }

    if (segmentCipher != null) {
        document = document.put("container_key_id", segmentCipher.containerKeyId).put("cipher_salt",
                segmentCipher.salt);
    } else {
        document.put("container_key_id", (String) null).put("cipher_salt", (byte[]) null);
    }

    JsonArray blobJsonArray = new JsonArray();
    for (TransientBlobReference transientBlobReference : blobs) {
        blobJsonArray.add(transientBlobReference.toJsonObject());
    }
    document.put("blobs", blobJsonArray);
    return document;
}