List of usage examples for io.vertx.core MultiMap caseInsensitiveMultiMap
static MultiMap caseInsensitiveMultiMap()
From source file:com.hubrick.vertx.s3.client.S3Client.java
License:Apache License
private void populateHeadResponseHeaders(MultiMap headers, HeadObjectResponseHeaders headResponseHeaders) { populateCommonResponseHeaders(headers, headResponseHeaders); populateServerSideEncryptionResponseHeaders(headers, headResponseHeaders); headResponseHeaders.setAmzExpiration(Optional.ofNullable(headers.get(Headers.X_AMZ_EXPIRATION)) .filter(StringUtils::isNotBlank).orElse(null)); headResponseHeaders.setAmzMissingMeta(Optional.ofNullable(headers.get(Headers.X_AMZ_MISSING_META)) .filter(StringUtils::isNotBlank).orElse(null)); headResponseHeaders/* ww w . ja v a 2 s. co m*/ .setAmzReplicationStatus(Optional.ofNullable(headers.get(Headers.X_AMZ_REPLICATION_STATUS)) .filter(StringUtils::isNotBlank).map(ReplicationStatus::valueOf).orElse(null)); headResponseHeaders.setAmzRestore(Optional.ofNullable(headers.get(Headers.X_AMZ_RESTORE)) .filter(StringUtils::isNotBlank).orElse(null)); headResponseHeaders.setAmzStorageClass(Optional.ofNullable(headers.get(Headers.X_AMZ_STORAGE_CLASS)) .filter(StringUtils::isNotBlank).map(StorageClass::fromString).orElse(null)); final MultiMap amzMeta = MultiMap.caseInsensitiveMultiMap(); StreamSupport.stream(headers.spliterator(), true) .filter(header -> header.getKey().toLowerCase().startsWith(Headers.X_AMZ_META_PREFIX)) .forEach(header -> amzMeta.add(header.getKey().replaceFirst(Headers.X_AMZ_META_PREFIX, ""), header.getValue())); headResponseHeaders.setAmzMeta(amzMeta); }
From source file:com.thesoftwarefactory.vertx.web.mvc.impl.ContentResultImpl.java
License:Apache License
@Override public ContentResult header(String name, String value) { if (headers == null) { headers = MultiMap.caseInsensitiveMultiMap(); }// w w w. j a va 2s . c o m headers.add(name, value); return this; }
From source file:de.braintags.netrelay.controller.api.MailController.java
License:Open Source License
private static MailAttachment createAttachment(RoutingContext context, URI uri, String cidName) { UriMailAttachment attachment = new UriMailAttachment(uri); attachment.setName(cidName);/* w ww. j a v a 2 s.c o m*/ attachment.setContentType(getContentType(uri)); attachment.setDisposition("inline"); MultiMap headers = MultiMap.caseInsensitiveMultiMap(); headers.add("Content-ID", "<" + cidName + ">"); attachment.setHeaders(headers); return attachment; }
From source file:examples.GraphQLExamples.java
License:Apache License
public void handlerSetupGraphiQLAuthn(GraphQL graphQL, Router router) { GraphQLHandlerOptions options = new GraphQLHandlerOptions() .setGraphiQLOptions(new GraphiQLOptions().setEnabled(true)); GraphQLHandler graphQLHandler = GraphQLHandler.create(graphQL, options).graphiQLRequestHeaders(rc -> { String token = rc.get("token"); return MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.AUTHORIZATION, "Bearer " + token); });/*from w w w. j a va 2s. co m*/ }
From source file:org.eclipse.hono.devices.HonoHttpDevice.java
License:Open Source License
/** * Send a message to Hono HTTP adapter. Delay any successful response by 1000 milliseconds. * * @param payload JSON object that will be sent as UTF-8 encoded String. * @param headersToAdd A map that contains all headers to add to the http request. * @param asEvent If {@code true}, an event message is sent, otherwise a telemetry message. * @return CompletableFuture<MultiMap> A completable future that contains the HTTP response in a MultiMap. *//* ww w . java 2 s . c o m*/ private CompletableFuture<MultiMap> sendMessage(final JsonObject payload, final MultiMap headersToAdd, final boolean asEvent) { final CompletableFuture<MultiMap> result = new CompletableFuture<>(); final Predicate<Integer> successfulStatus = statusCode -> statusCode == HttpURLConnection.HTTP_ACCEPTED; final HttpClientRequest req = vertx.createHttpClient() .post(HONO_HTTP_ADAPTER_PORT, HONO_HTTP_ADAPTER_HOST, asEvent ? "/event" : "/telemetry") .handler(response -> { if (successfulStatus.test(response.statusCode())) { vertx.setTimer(1000, l -> result.complete(response.headers())); } else { result.completeExceptionally(new ServiceInvocationException(response.statusCode())); } }).exceptionHandler(t -> result.completeExceptionally(t)); req.headers().addAll(headersToAdd); req.headers() .addAll(MultiMap.caseInsensitiveMultiMap() .add(HttpHeaders.AUTHORIZATION, getBasicAuth(TENANT_ID, DEVICE_AUTH_ID, DEVICE_PASSWORD)) .add(HttpHeaders.ORIGIN, ORIGIN_URI)); if (payload == null) { req.end(); } else { req.end(payload.encode()); } return result; }
From source file:org.eclipse.hono.devices.HonoHttpDevice.java
License:Open Source License
/** * Send messages to Hono HTTP adapter in a sequence. * <p>// w w w .j av a 2 s .co m * Alternate the event every 4th time to be an event. */ protected void sendData() { // Send single messages sequentially in a loop and print a summary of the message deliveries. System.out.println(String.format("Total number of messages: %s", messages.size())); messages.stream().forEachOrdered(messageType -> { final MultiMap headerMap = MultiMap.caseInsensitiveMultiMap(); headerMap.add(HttpHeaders.CONTENT_TYPE, messageType.contentType); Optional.ofNullable(messageType.ttd).ifPresent( timeToDeliver -> headerMap.add(Constants.HEADER_TIME_TIL_DISCONNECT, timeToDeliver.toString())); System.out.println(String.format("Sending message type %s", messageType.toString())); final CompletableFuture<MultiMap> responseFuture = sendMessage(messageType.payload, headerMap, messageType.isEvent); try { final MultiMap resultMap = responseFuture.get(); System.out.println(String.format("Got %d response keys.", resultMap.size())); resultMap.entries().stream().forEach(entry -> { System.out.println(String.format(" %s:%s", entry.getKey(), entry.getValue())); }); } catch (final InterruptedException e) { e.printStackTrace(); } catch (final ExecutionException e) { e.printStackTrace(); } }); // give some time for flushing asynchronous message buffers before shutdown vertx.setTimer(2000, timerId -> { vertx.close(); }); }
From source file:org.eclipse.hono.tests.CrudHttpClient.java
License:Open Source License
/** * Creates a resource using an HTTP POST request. * /*from w w w. j a v a 2 s .c o m*/ * @param uri The URI to post to. * @param body The body to post (may be {@code null}). * @param contentType The content type to set in the request (may be {@code null}). * @param successPredicate A predicate on the returned HTTP status code for determining success. * @return A future that will succeed if the predicate evaluates to {@code true}. * @throws NullPointerException if URI or predicate are {@code null}. */ public Future<Void> create(final String uri, final Buffer body, final String contentType, final Predicate<Integer> successPredicate) { final MultiMap headers = Optional.ofNullable(contentType) .map(ct -> MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.CONTENT_TYPE, contentType)) .orElse(null); return create(uri, body, headers, successPredicate).compose(ok -> Future.succeededFuture()); }
From source file:org.eclipse.hono.tests.CrudHttpClient.java
License:Open Source License
/** * Updates a resource using an HTTP PUT request. * /*from w w w .j a v a 2 s. co m*/ * @param uri The resource to update. * @param body The content to update the resource with. * @param contentType The content type to set in the request. * @param successPredicate A predicate on the returned HTTP status code for determining success. * @return A future that will succeed if the predicate evaluates to {@code true}. * @throws NullPointerException if URI or predicate are {@code null}. */ public Future<Void> update(final String uri, final Buffer body, final String contentType, final Predicate<Integer> successPredicate) { final MultiMap headers = Optional.ofNullable(contentType) .map(ct -> MultiMap.caseInsensitiveMultiMap().add(HttpHeaders.CONTENT_TYPE, ct)).orElse(null); return update(uri, body, headers, successPredicate).compose(ok -> Future.succeededFuture()); }
From source file:org.sfs.nodes.compute.container.VerifyRepairAllContainersExecute.java
License:Apache License
@Override public void handle(final SfsRequest httpServerRequest) { VertxContext<Server> vertxContext = httpServerRequest.vertxContext(); Defer.aVoid().flatMap(new Authenticate(httpServerRequest)) .flatMap(new ValidateActionAdminOrSystem(httpServerRequest)).map(aVoid -> httpServerRequest) .map(new ToVoid<>()).flatMap(aVoid -> { ClusterInfo clusterInfo = vertxContext.verticle().getClusterInfo(); Nodes nodes = vertxContext.verticle().nodes(); MultiMap headers = httpServerRequest.headers(); long timeout = headers.contains(Jobs.Parameters.TIMEOUT) ? Long.parseLong(headers.get(Jobs.Parameters.TIMEOUT)) : 100;//www .ja va 2 s . c o m String unparsedForceRemoveVolumes = headers.contains(Jobs.Parameters.FORCE_REMOVE_VOLUMES) ? headers.get(Jobs.Parameters.FORCE_REMOVE_VOLUMES) : null; MultiMap params = MultiMap.caseInsensitiveMultiMap(); if (unparsedForceRemoveVolumes != null) { params.add(Jobs.Parameters.FORCE_REMOVE_VOLUMES, unparsedForceRemoveVolumes); } TransientServiceDef transientServiceDef = clusterInfo.getCurrentMasterNode(); MasterNode masterNode = nodes.remoteMasterNode(vertxContext, transientServiceDef); httpServerRequest.startProxyKeepAlive(); return masterNode.executeJob(Jobs.ID.VERIFY_REPAIR_ALL_CONTAINERS_OBJECTS, params, timeout, TimeUnit.MILLISECONDS); }).single().subscribe(new ConnectionCloseTerminus<Void>(httpServerRequest) { @Override public void onNext(Void aVoid) { JsonObject responseJson = new JsonObject().put("code", HTTP_OK).put("message", "Success"); httpServerRequest.response().write(responseJson.encode(), StandardCharsets.UTF_8.toString()) .write(DELIMITER_BUFFER); } }); }
From source file:org.sfs.nodes.compute.container.VerifyRepairContainerExecute.java
License:Apache License
@Override public void handle(final SfsRequest httpServerRequest) { VertxContext<Server> vertxContext = httpServerRequest.vertxContext(); Defer.aVoid().flatMap(new Authenticate(httpServerRequest)) .flatMap(new ValidateActionAdminOrSystem(httpServerRequest)).map(aVoid -> httpServerRequest) .map(new ValidateHeaderBetweenLong(Jobs.Parameters.TIMEOUT, 100, Long.MAX_VALUE)) .map(new ToVoid<>()).map(aVoid -> ObjectPath.fromSfsRequest(httpServerRequest)) .map(new ValidateContainerPath()).flatMap(objectPath -> { ClusterInfo clusterInfo = vertxContext.verticle().getClusterInfo(); Nodes nodes = vertxContext.verticle().nodes(); MultiMap headers = httpServerRequest.headers(); long timeout = headers.contains(Jobs.Parameters.TIMEOUT) ? Long.parseLong(headers.get(Jobs.Parameters.TIMEOUT)) : 100;/*from w w w . j a va 2s .co m*/ String unparsedForceRemoveVolumes = headers.contains(Jobs.Parameters.FORCE_REMOVE_VOLUMES) ? headers.get(Jobs.Parameters.FORCE_REMOVE_VOLUMES) : null; MultiMap params = MultiMap.caseInsensitiveMultiMap(); if (unparsedForceRemoveVolumes != null) { params.add(Jobs.Parameters.FORCE_REMOVE_VOLUMES, unparsedForceRemoveVolumes); } params.set(Jobs.Parameters.CONTAINER_ID, objectPath.containerPath().get()); TransientServiceDef transientServiceDef = clusterInfo.getCurrentMasterNode(); MasterNode masterNode = nodes.remoteMasterNode(vertxContext, transientServiceDef); httpServerRequest.startProxyKeepAlive(); return masterNode.executeJob(Jobs.ID.VERIFY_REPAIR_CONTAINER_OBJECTS, params, timeout, TimeUnit.MILLISECONDS); }).single().subscribe(new ConnectionCloseTerminus<Void>(httpServerRequest) { @Override public void onNext(Void aVoid) { JsonObject responseJson = new JsonObject().put("code", HTTP_OK).put("message", "Success"); httpServerRequest.response().write(responseJson.encode(), StandardCharsets.UTF_8.toString()) .write(DELIMITER_BUFFER); } }); }