Example usage for io.vertx.core.json JsonObject getString

List of usage examples for io.vertx.core.json JsonObject getString

Introduction

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

Prototype

public String getString(String key) 

Source Link

Document

Get the string value with the specified key, special cases are addressed for extended JSON types Instant , byte[] and Enum which can be converted to String.

Usage

From source file:com.glencoesoftware.omero.ms.thumbnail.ThumbnailMicroserviceVerticle.java

License:Open Source License

/**
 * Deploys our verticles and performs general setup that depends on
 * configuration./*  w ww.jav  a  2  s.c o  m*/
* @param config Current configuration
*/
public void deploy(JsonObject config, Future<Void> future) {
    log.info("Deploying verticle");

    // Deploy our dependency verticles
    JsonObject omero = config.getJsonObject("omero");
    if (omero == null) {
        throw new IllegalArgumentException("'omero' block missing from configuration");
    }
    vertx.deployVerticle(new ThumbnailVerticle(omero.getString("host"), omero.getInteger("port")),
            new DeploymentOptions().setWorker(true).setMultiThreaded(true).setConfig(config));

    HttpServer server = vertx.createHttpServer();
    Router router = Router.router(vertx);

    // Cookie handler so we can pick up the OMERO.web session
    router.route().handler(CookieHandler.create());

    // OMERO session handler which picks up the session key from the
    // OMERO.web session and joins it.
    JsonObject redis = config.getJsonObject("redis");
    if (redis == null) {
        throw new IllegalArgumentException("'redis' block missing from configuration");
    }
    sessionStore = new OmeroWebRedisSessionStore(redis.getString("uri"));
    router.route().handler(new OmeroWebSessionRequestHandler(config, sessionStore));

    // Thumbnail request handlers
    router.get("/webclient/render_thumbnail/size/:longestSide/:imageId*").handler(this::renderThumbnail);
    router.get("/webclient/render_thumbnail/:imageId*").handler(this::renderThumbnail);
    router.get("/webgateway/render_thumbnail/:imageId/:longestSide*").handler(this::renderThumbnail);
    router.get("/webgateway/render_thumbnail/:imageId*").handler(this::renderThumbnail);
    router.get("/webclient/render_birds_eye_view/:imageId/:longestSide*").handler(this::renderThumbnail);
    router.get("/webclient/render_birds_eye_view/:imageId*").handler(this::renderThumbnail);
    router.get("/webgateway/render_birds_eye_view/:imageId/:longestSide*").handler(this::renderThumbnail);
    router.get("/webgateway/render_birds_eye_view/:imageId*").handler(this::renderThumbnail);
    router.get("/webgateway/get_thumbnails/:longestSide*").handler(this::getThumbnails);
    router.get("/webgateway/get_thumbnails*").handler(this::getThumbnails);
    router.get("/webclient/get_thumbnails/:longestSide*").handler(this::getThumbnails);
    router.get("/webclient/get_thumbnails*").handler(this::getThumbnails);

    int port = config.getInteger("port");
    log.info("Starting HTTP server *:{}", port);
    server.requestHandler(router::accept).listen(port, result -> {
        if (result.succeeded()) {
            future.complete();
        } else {
            future.fail(result.cause());
        }
    });
}

From source file:com.glencoesoftware.omero.ms.thumbnail.ThumbnailVerticle.java

License:Open Source License

/**
 * Render thumbnail event handler. Responds with a <code>image/jpeg</code>
 * body on success or a failure.//  ww w  .j  a  v a2 s  .c om
 * @param message JSON encoded event data. Required keys are
 * <code>omeroSessionKey</code> (String), <code>longestSide</code>
 * (Integer), and <code>imageId</code> (Long).
 */
private void renderThumbnail(Message<String> message) {
    JsonObject data = new JsonObject(message.body());
    String omeroSessionKey = data.getString("omeroSessionKey");
    int longestSide = data.getInteger("longestSide");
    long imageId = data.getLong("imageId");
    Optional<Long> renderingDefId = Optional.ofNullable(data.getLong("renderingDefId"));
    log.debug("Render thumbnail request Image:{} longest side {} RenderingDef:{}", imageId, longestSide,
            renderingDefId.orElse(null));

    try (OmeroRequest request = new OmeroRequest(host, port, omeroSessionKey)) {
        byte[] thumbnail = request
                .execute(new ThumbnailRequestHandler(longestSide, imageId, renderingDefId)::renderThumbnail);
        if (thumbnail == null) {
            message.fail(404, "Cannot find Image:" + imageId);
        } else {
            message.reply(thumbnail);
        }
    } catch (PermissionDeniedException | CannotCreateSessionException e) {
        String v = "Permission denied";
        log.debug(v);
        message.fail(403, v);
    } catch (Exception e) {
        String v = "Exception while retrieving thumbnail";
        log.error(v, e);
        message.fail(500, v);
    }
}

From source file:com.glencoesoftware.omero.ms.thumbnail.ThumbnailVerticle.java

License:Open Source License

/**
 * Get thumbnails event handler. Responds with a JSON dictionary of Base64
 * encoded <code>image/jpeg</code> thumbnails keyed by {@link Image}
 * identifier. Each dictionary value is prefixed with
 * <code>data:image/jpeg;base64,</code> so that it can be used with
 * <a href="http://caniuse.com/#feat=datauri">data URIs</a>.
 * @param message JSON encoded event data. Required keys are
 * <code>omeroSessionKey</code> (String), <code>longestSide</code>
 * (Integer), and <code>imageIds</code> (List<Long>).
 *//*from w  ww . ja  va  2 s  .c o m*/
private void getThumbnails(Message<String> message) {
    JsonObject data = new JsonObject(message.body());
    String omeroSessionKey = data.getString("omeroSessionKey");
    int longestSide = data.getInteger("longestSide");
    JsonArray imageIdsJson = data.getJsonArray("imageIds");
    List<Long> imageIds = new ArrayList<Long>();
    for (int i = 0; i < imageIdsJson.size(); i++) {
        imageIds.add(imageIdsJson.getLong(i));
    }
    log.debug("Render thumbnail request ImageIds:{} longest side {}", imageIds, longestSide);

    try (OmeroRequest request = new OmeroRequest(host, port, omeroSessionKey)) {
        Map<Long, byte[]> thumbnails = request
                .execute(new ThumbnailsRequestHandler(longestSide, imageIds)::renderThumbnails);

        if (thumbnails == null) {
            message.fail(404, "Cannot find one or more Images");
        } else {
            Map<Long, String> thumbnailsJson = new HashMap<Long, String>();
            for (Entry<Long, byte[]> v : thumbnails.entrySet()) {
                thumbnailsJson.put(v.getKey(), "data:image/jpeg;base64," + Base64.encode(v.getValue()));
            }
            message.reply(Json.encode(thumbnailsJson));
        }
    } catch (PermissionDeniedException | CannotCreateSessionException e) {
        String v = "Permission denied";
        log.debug(v);
        message.fail(403, v);
    } catch (Exception e) {
        String v = "Exception while retrieving thumbnail";
        log.error(v, e);
        message.fail(500, v);
    }
}

From source file:com.groupon.vertx.memcache.codec.DeleteCommandResponseCodec.java

License:Apache License

@Override
public DeleteCommandResponse decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    JsendStatus status = JsendStatus.valueOf(json.getString("status"));
    String message = json.getString("message");
    String data = json.getString("data");

    return new DeleteCommandResponse.Builder().setStatus(status).setMessage(message).setData(data).build();
}

From source file:com.groupon.vertx.memcache.codec.MemcacheCommandCodec.java

License:Apache License

@Override
public MemcacheCommand decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    String key = json.getString("key");
    String value = json.getString("value");
    Integer expires = json.getInteger("expires");
    MemcacheCommandType type = MemcacheCommandType.valueOf(json.getString("type"));

    return new MemcacheCommand(type, key, value, expires);
}

From source file:com.groupon.vertx.memcache.codec.MemcacheCommandResponseCodec.java

License:Apache License

@Override
public MemcacheCommandResponse decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    JsendStatus status = JsendStatus.valueOf(json.getString("status"));
    String message = json.getString("message");

    return new MemcacheCommandResponse.Builder().setStatus(status).setMessage(message).build();
}

From source file:com.groupon.vertx.memcache.codec.ModifyCommandResponseCodec.java

License:Apache License

@Override
public ModifyCommandResponse decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    JsendStatus status = JsendStatus.valueOf(json.getString("status"));
    String message = json.getString("message");
    Integer data = json.getInteger("data");

    return new ModifyCommandResponse.Builder().setStatus(status).setMessage(message).setData(data).build();
}

From source file:com.groupon.vertx.memcache.codec.RetrieveCommandResponseCodec.java

License:Apache License

@Override
public RetrieveCommandResponse decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    JsendStatus status = JsendStatus.valueOf(json.getString("status"));
    String message = json.getString("message");
    JsonObject jsonData = json.getJsonObject("data");

    Map<String, String> data = null;
    if (jsonData != null) {
        data = new HashMap<>();
        for (Map.Entry<String, Object> entry : jsonData.getMap().entrySet()) {
            data.put(entry.getKey(), entry.getValue() != null ? entry.getValue().toString() : null);
        }// w w w  .  ja  v a2 s .c o  m
    }

    return new RetrieveCommandResponse.Builder().setStatus(status).setMessage(message).setData(data).build();
}

From source file:com.groupon.vertx.memcache.codec.StoreCommandResponseCodec.java

License:Apache License

@Override
public StoreCommandResponse decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    JsendStatus status = JsendStatus.valueOf(json.getString("status"));
    String message = json.getString("message");
    String data = json.getString("data");

    return new StoreCommandResponse.Builder().setStatus(status).setMessage(message).setData(data).build();
}

From source file:com.groupon.vertx.memcache.codec.TouchCommandResponseCodec.java

License:Apache License

@Override
public TouchCommandResponse decodeFromWire(int i, Buffer buffer) {
    JsonObject json = CodecManager.JSON_OBJECT_MESSAGE_CODEC.decodeFromWire(i, buffer);

    JsendStatus status = JsendStatus.valueOf(json.getString("status"));
    String message = json.getString("message");
    String data = json.getString("data");

    return new TouchCommandResponse.Builder().setStatus(status).setMessage(message).setData(data).build();
}