List of usage examples for io.vertx.core.json JsonObject getString
public String getString(String key)
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(); }