Java 类io.vertx.core.http.HttpMethod 实例源码

项目:simulacron    文件:QueryManager.java   
public void registerWithRouter(Router router) {
  // Priming queries
  router.route(HttpMethod.POST, "/prime/:clusterIdOrName").handler(this::primeQuery);
  router
      .route(HttpMethod.POST, "/prime/:clusterIdOrName/:datacenterIdOrName")
      .handler(this::primeQuery);
  router
      .route(HttpMethod.POST, "/prime/:clusterIdOrName/:datacenterIdOrName/:nodeIdOrName")
      .handler(this::primeQuery);

  // Deleting primed queries
  router.route(HttpMethod.DELETE, "/prime/:clusterIdOrName").handler(this::clearPrimedQueries);
  router
      .route(HttpMethod.DELETE, "/prime/:clusterIdOrName/:datacenterIdOrName")
      .handler(this::clearPrimedQueries);
  router
      .route(HttpMethod.DELETE, "/prime/:clusterIdOrName/:datacenterIdOrName/:nodeIdOrName")
      .handler(this::primeQuery);
}
项目:simulacron    文件:ActivityLogManager.java   
public void registerWithRouter(Router router) {
  router.route(HttpMethod.GET, "/log/:clusterIdOrName").handler(this::getQueryLog);
  router
      .route(HttpMethod.GET, "/log/:clusterIdOrName/:datacenterIdOrName")
      .handler(this::getQueryLog);
  router
      .route(HttpMethod.GET, "/log/:clusterIdOrName/:datacenterIdOrName/:nodeIdOrName")
      .handler(this::getQueryLog);
  router.route(HttpMethod.DELETE, "/log/:clusterIdOrName").handler(this::deleteQueryLog);
  router
      .route(HttpMethod.DELETE, "/log/:clusterIdOrName/:datacenterIdOrName")
      .handler(this::deleteQueryLog);
  router
      .route(HttpMethod.DELETE, "/log/:clusterIdOrName/:datacenterIdOrName/:nodeIdOrName")
      .handler(this::deleteQueryLog);
}
项目:incubator-servicecomb-java-chassis    文件:FirstLineOfRequestElementTest.java   
@Test
public void getFormattedElement() {
  AccessLogParam param = new AccessLogParam();
  RoutingContext mockContext = Mockito.mock(RoutingContext.class);
  HttpServerRequest request = Mockito.mock(HttpServerRequest.class);
  String uri = "/test/uri";

  param.setRoutingContext(mockContext);
  Mockito.when(mockContext.request()).thenReturn(request);
  Mockito.when(request.method()).thenReturn(HttpMethod.DELETE);
  Mockito.when(request.path()).thenReturn(uri);
  Mockito.when(request.version()).thenReturn(HttpVersion.HTTP_1_1);

  String result = ELEMENT.getFormattedElement(param);

  assertEquals("\"DELETE " + uri + " HTTP/1.1\"", result);
}
项目:incubator-servicecomb-java-chassis    文件:AccessLogHandlerTest.java   
@Test
public void testLog() {
  RoutingContext context = Mockito.mock(RoutingContext.class);
  HttpServerRequest request = Mockito.mock(HttpServerRequest.class);
  long startMillisecond = 1416863450581L;
  AccessLogParam accessLogParam = new AccessLogParam().setStartMillisecond(startMillisecond)
      .setRoutingContext(context);
  SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DatetimeConfigurableElement.DEFAULT_DATETIME_PATTERN,
      DatetimeConfigurableElement.DEFAULT_LOCALE);
  simpleDateFormat.setTimeZone(TimeZone.getDefault());

  Mockito.when(context.request()).thenReturn(request);
  Mockito.when(request.method()).thenReturn(HttpMethod.DELETE);

  Deencapsulation.invoke(ACCESS_LOG_HANDLER, "log", accessLogParam);

  Mockito.verify(logger).info("DELETE" + " - " + simpleDateFormat.format(startMillisecond));
}
项目:incubator-servicecomb-java-chassis    文件:TestVertxHttpMethod.java   
@Test
public void testCreateRequest() {
  HttpClient client = mock(HttpClient.class);
  Invocation invocation = mock(Invocation.class);
  OperationMeta operationMeta = mock(OperationMeta.class);
  Endpoint endpoint = mock(Endpoint.class);
  URIEndpointObject address = mock(URIEndpointObject.class);
  when(invocation.getEndpoint()).thenReturn(endpoint);
  when(endpoint.getAddress()).thenReturn(address);
  when(address.isSslEnabled()).thenReturn(false);
  when(invocation.getOperationMeta()).thenReturn(operationMeta);
  RestOperationMeta swaggerRestOperation = mock(RestOperationMeta.class);
  when(operationMeta.getExtData(RestConst.SWAGGER_REST_OPERATION)).thenReturn(swaggerRestOperation);
  IpPort ipPort = mock(IpPort.class);
  when(ipPort.getPort()).thenReturn(10);
  when(ipPort.getHostOrIp()).thenReturn("ever");
  AsyncResponse asyncResp = mock(AsyncResponse.class);
  List<HttpMethod> methods = new ArrayList<>(
      Arrays.asList(HttpMethod.GET, HttpMethod.PUT, HttpMethod.POST, HttpMethod.DELETE, HttpMethod.PATCH));
  for (HttpMethod method : methods) {
    when(swaggerRestOperation.getHttpMethod()).thenReturn(method.toString());
    HttpClientRequest obj =
        VertxHttpMethod.INSTANCE.createRequest(client, invocation, ipPort, "good", asyncResp);
    Assert.assertNull(obj);
  }
}
项目:dragoman    文件:WebServerVerticle.java   
@SuppressWarnings("unchecked")
private Router logRoutes(Router router) {
  try {
    for (Route route : router.getRoutes()) {
      // path is public but methods are not, we use reflection to make that accessible
      @SuppressWarnings("JavaReflectionMemberAccess")
      Field f = route.getClass().getDeclaredField("methods");
      f.setAccessible(true);
      Set<HttpMethod> methods = (Set<HttpMethod>) f.get(route);
      if (isNotBlank(route.getPath())) {
        methods.forEach(httpMethod -> logger.info("Route: [{}] {}", httpMethod, route.getPath()));
      }
    }
  } catch (Exception ex) {
    logger.info("Could not list a route due to: {}!", ex.getMessage());
  }

  return router;
}
项目:AlipayWechatPlatform    文件:NetworkUtils.java   
public static void asyncPostStringWithData(String url, String body, ContentType type, String encode, Handler<String> callback) {
        checkInitialized();
        HttpClientRequest req = client.requestAbs(HttpMethod.POST, url, resp -> {
            resp.bodyHandler(buf -> {
                callback.handle(buf.toString());
            });
        });
        switch (type) {
            case XML:
                req.putHeader("content-type", "application/xml;charset=" + encode);
                break;
            case JSON:
                req.putHeader("content-type", "application/json;charset=" + encode);
                break;
            case FORM:
                req.putHeader("content-type", "application/x-www-form-urlencoded" + encode);
                break;
        }
//        req.putHeader("content-length", String.valueOf(body.length()));
//        req.write(body);
        req.end(body, encode);
    }
项目:rest.vertx    文件:RestBuilder.java   
/**
 * Enables CORS
 *
 * @param allowedOriginPattern allowed origin
 * @param allowCredentials     allow credentials (true/false)
 * @param maxAge               in seconds
 * @param allowedHeaders       set of allowed headers
 * @param methods              list of methods ... if empty all methods are allowed  @return self
 * @return self
 */
public RestBuilder enableCors(String allowedOriginPattern,
                              boolean allowCredentials,
                              int maxAge,
                              Set<String> allowedHeaders,
                              HttpMethod... methods) {

    corsHandler = CorsHandler.create(allowedOriginPattern)
                             .allowCredentials(allowCredentials)
                             .maxAgeSeconds(maxAge);

    if (methods == null || methods.length == 0) { // if not given than all
        methods = HttpMethod.values();
    }

    for (HttpMethod method : methods) {
        corsHandler.allowedMethod(method);
    }

    corsHandler.allowedHeaders(allowedHeaders);

    return this;
}
项目:rest.vertx    文件:RestRouter.java   
/**
 * @param router               to add handler to
 * @param allowedOriginPattern origin pattern
 * @param allowCredentials     allowed credentials
 * @param maxAge               in seconds
 * @param allowedHeaders       set of headers or null for none
 * @param methods              list of methods or empty for all
 */
public void enableCors(Router router,
                       String allowedOriginPattern,
                       boolean allowCredentials,
                       int maxAge,
                       Set<String> allowedHeaders,
                       HttpMethod... methods) {

    CorsHandler handler = CorsHandler.create(allowedOriginPattern)
                                     .allowCredentials(allowCredentials)
                                     .maxAgeSeconds(maxAge);

    if (methods == null || methods.length == 0) { // if not given than all
        methods = HttpMethod.values();
    }

    for (HttpMethod method : methods) {
        handler.allowedMethod(method);
    }

    handler.allowedHeaders(allowedHeaders);

    router.route().handler(handler);
}
项目:app-ms    文件:AuthenticatedClientValidator.java   
/**
 * Register this but also register the {@link CorsHandler}. The
 * {@link CorsHandler} will deal with the normal CORS headers after it has been
 * processed initially by this handler. {@inheritDoc}
 */
@Override
public void register(final Router router) {

    router.route().handler(this);

    router.route().handler(CorsHandler.create(".+")
        .maxAgeSeconds(600)
        .allowedMethod(HttpMethod.GET)
        .allowedMethod(HttpMethod.POST)
        .allowedMethod(HttpMethod.PUT)
        .allowedMethod(HttpMethod.DELETE)
        .allowedMethod(HttpMethod.OPTIONS)
        .allowedHeader("Content-Type")
        .allowedHeader("Accept")
        .allowedHeader("Accept-Language")
        .allowedHeader("Authorization"));

}
项目:Daejeon-People    文件:LogHandlerImpl.java   
@Override
public void handle(RoutingContext ctx) {
    StringBuilder logStrBuilder = new StringBuilder();

    logStrBuilder.append(ctx.request().host()).append(" : ");
    logStrBuilder.append(ctx.request().method()).append(" ");
    logStrBuilder.append(ctx.request().uri()).append("\n");

    if(ctx.request().method() != HttpMethod.GET) {
        // Parameters show in Request URI
        logStrBuilder.append("Body - ").append(ctx.request().formAttributes());
    }

    Log.request(logStrBuilder.toString());

    ctx.next();
}
项目:java-vertx-web    文件:TracingHandlerTest.java   
@Test
public void testExceptionInHandler() throws Exception {
    {
        router.route("/exception").handler(routingContext -> {
            throw new IllegalArgumentException("msg");
        });

        request("/exception", HttpMethod.GET,500);
        Awaitility.await().until(reportedSpansSize(), IsEqual.equalTo(1));
    }
    List<MockSpan> mockSpans = mockTracer.finishedSpans();
    Assert.assertEquals(1, mockSpans.size());

    MockSpan mockSpan = mockSpans.get(0);
    Assert.assertEquals("GET", mockSpan.operationName());
    Assert.assertEquals(6, mockSpan.tags().size());
    Assert.assertEquals(Boolean.TRUE, mockSpan.tags().get(Tags.ERROR.getKey()));
    Assert.assertEquals(500, mockSpan.tags().get(Tags.HTTP_STATUS.getKey()));
    Assert.assertEquals("GET", mockSpan.tags().get(Tags.HTTP_METHOD.getKey()));
    Assert.assertEquals("http://localhost:8080/exception", mockSpan.tags().get(Tags.HTTP_URL.getKey()));
    Assert.assertEquals(1, mockSpan.logEntries().size());
    Assert.assertEquals(2, mockSpan.logEntries().get(0).fields().size());
    Assert.assertEquals(Tags.ERROR.getKey(), mockSpan.logEntries().get(0).fields().get("event"));
    Assert.assertTrue(mockSpan.logEntries().get(0).fields().get("error.object") instanceof Throwable);
}
项目:vertx-zero    文件:MethodResolver.java   
public static HttpMethod resolve(final Method method) {
    // 1. Method checking.
    Fn.flingUp(null == method, LOGGER,
            MethodNullException.class, MethodResolver.class);
    final Annotation[] annotations = method.getDeclaredAnnotations();
    // 2. Method ignore
    HttpMethod result = null;
    for (final Annotation annotation : annotations) {
        final Class<?> key = annotation.annotationType();
        if (METHODS.containsKey(key)) {
            result = METHODS.get(key);
            break;
        }
    }
    // 2. Ignore this method.
    if (null == result) {
        LOGGER.info(Info.METHOD_IGNORE, method.getName());
    }
    return result;
}
项目:java-vertx-web    文件:TracingHandlerTest.java   
@Test
public void testNoURLMapping() throws Exception {
    {
        request("/noUrlMapping", HttpMethod.GET, 404);
        Awaitility.await().until(reportedSpansSize(), IsEqual.equalTo(1));
    }

    List<MockSpan> mockSpans = mockTracer.finishedSpans();
    Assert.assertEquals(1, mockSpans.size());

    MockSpan mockSpan = mockSpans.get(0);
    Assert.assertEquals("GET", mockSpan.operationName());
    Assert.assertEquals(5, mockSpan.tags().size());
    Assert.assertEquals(404, mockSpan.tags().get(Tags.HTTP_STATUS.getKey()));
    Assert.assertEquals("GET", mockSpan.tags().get(Tags.HTTP_METHOD.getKey()));
    Assert.assertEquals("http://localhost:8080/noUrlMapping", mockSpan.tags().get(Tags.HTTP_URL.getKey()));
    Assert.assertEquals(0, mockSpan.logEntries().size());
}
项目:simulacron    文件:ClusterManager.java   
/**
 * This method handles the registration of the various routes responsible for setting and
 * retrieving cluster information via http.
 *
 * @param router The router to register the endpoint with.
 */
public void registerWithRouter(Router router) {
  router.route(HttpMethod.POST, "/cluster").handler(this::provisionCluster);
  router.route(HttpMethod.DELETE, "/cluster/:clusterIdOrName").handler(this::unregisterCluster);
  router.route(HttpMethod.DELETE, "/cluster").handler(this::unregisterCluster);
  router.route(HttpMethod.GET, "/cluster/:clusterIdOrName").handler(this::getCluster);
  router.route(HttpMethod.GET, "/cluster").handler(this::getCluster);
}
项目:mbed-cloud-sdk-java    文件:TestServer.java   
private void defineInitialisationRoute() {
    Route route = router.route(HttpMethod.GET, "/_init").produces(APPLICATION_JSON);
    route.blockingHandler(routingContext -> {

        logInfo("Initialising Java SDK modules... (" + new Date().toString() + ")");
        sdk = APIMappingGenerator.getSDK();
        logDebug(JsonObject.mapFrom(sdk).encodePrettily());
        JsonObject emptyResponse = new JsonObject();
        setResponse(routingContext).end(emptyResponse.encode());
    });
}
项目:simulacron    文件:HttpContainerIntegrationTest.java   
private HttpTestResponse clearQueries(HttpClient client, Scope scope) {
  CompletableFuture<HttpTestResponse> future = new CompletableFuture<>();
  try {
    client
        .request(
            HttpMethod.DELETE,
            portNum,
            "127.0.0.1",
            "/prime/" + scope.toString(),
            response -> {
              response.bodyHandler(
                  totalBuffer -> {
                    String body = totalBuffer.toString();
                    HttpTestResponse testResponse = new HttpTestResponse(response, body);
                    future.complete(testResponse);
                  });
            })
        .end();

    HttpTestResponse responseToValidate = future.get();
    assertThat(responseToValidate.response.statusCode()).isEqualTo(202);
    return responseToValidate;
  } catch (Exception e) {
    logger.error("Exception", e);
    fail("Exception encountered");
  }
  return null;
}
项目:simulacron    文件:HttpContainerIntegrationTest.java   
private ClusterSpec createSingleNodeCluster(HttpClient client) {
  CompletableFuture<HttpTestResponse> future = new CompletableFuture<>();
  client
      .request(
          HttpMethod.POST,
          portNum,
          "127.0.0.1",
          "/cluster/?data_centers=1",
          response -> {
            response.bodyHandler(
                totalBuffer -> {
                  String body = totalBuffer.toString();
                  HttpTestResponse testResponse = new HttpTestResponse(response, body);
                  future.complete(testResponse);
                });
          })
      .end();

  try {
    HttpTestResponse responseToValidate = future.get();
    ObjectMapper om = ObjectMapperHolder.getMapper();
    // create cluster object from json return code
    assertThat(responseToValidate.response.statusCode()).isEqualTo(201);
    ClusterSpec cluster = om.readValue(responseToValidate.body, ClusterSpec.class);
    return cluster;
  } catch (Exception e) {
    fail("Exception encountered");
    return null;
  }
}
项目:simulacron    文件:HttpContainerIntegrationTest.java   
private ClusterSpec createMultiNodeCluster(HttpClient client, String datacenters) {
  CompletableFuture<HttpTestResponse> future = new CompletableFuture<>();
  client
      .request(
          HttpMethod.POST,
          portNum,
          "127.0.0.1",
          "/cluster/?data_centers=" + datacenters,
          response -> {
            response.bodyHandler(
                totalBuffer -> {
                  String body = totalBuffer.toString();
                  HttpTestResponse testResponse = new HttpTestResponse(response, body);
                  future.complete(testResponse);
                });
          })
      .end();

  try {
    HttpTestResponse responseToValidate = future.get();
    ObjectMapper om = ObjectMapperHolder.getMapper();
    // create cluster object from json return code
    assertThat(responseToValidate.response.statusCode()).isEqualTo(201);
    ClusterSpec cluster = om.readValue(responseToValidate.body, ClusterSpec.class);
    return cluster;
  } catch (Exception e) {
    fail(e.getMessage());
    return null;
  }
}
项目:vertx-forge    文件:WebVerticle.java   
private void cors(Router router) {
    router.route().handler(CorsHandler.create("*")
        .allowedMethod(HttpMethod.GET)
        .allowedMethod(HttpMethod.POST)
        .allowedHeader("Content-Type")
        .allowedHeader("Accept")
    );
}
项目:incubator-servicecomb-java-chassis    文件:RestUtils.java   
public static RequestContext createRequestContext(HttpMethod method, IpPort ipPort, String uri,
    RequestParam requestParam) {
  RequestContext requestContext = new RequestContext();
  requestContext.setMethod(method);
  requestContext.setIpPort(ipPort);
  requestContext.setUri(uri);
  requestContext.setParams(requestParam);
  return requestContext;
}
项目:incubator-servicecomb-java-chassis    文件:RestUtilsTest.java   
@Test
public void defaultHeadersContainServiceRegistryAndAuthentication() throws Exception {

  MultiMap headers = RestUtils.getDefaultHeaders();
  headers.addAll(RestUtils.getSignAuthHeaders(RestUtils.createSignRequest(HttpMethod.GET.toString(),
      new IpPort("127.0.0.1", 443),
      new RequestParam().addQueryParam("testParam", "test"),
      "test",
      new HashMap<>())));
  assertThat(headers.get("Content-Type"), is("application/json"));
  assertThat(headers.get("User-Agent"), is("cse-serviceregistry-client/1.0.0"));
  assertThat(headers.get("x-domain-name"), is("default"));
  assertThat(headers.get("X-Service-AK"), is("blah..."));
}
项目:incubator-servicecomb-java-chassis    文件:MethodElement.java   
@Override
public String getFormattedElement(AccessLogParam accessLogParam) {
  HttpServerRequest request = accessLogParam.getRoutingContext().request();
  if (null == request) {
    return EMPTY_RESULT;
  }

  HttpMethod method = request.method();
  if (null == method) {
    return EMPTY_RESULT;
  }
  return method.toString();
}
项目:vertx-service-flow    文件:FlowTest.java   
@Test
public void testCircuitBreakerOpen(TestContext ctx) throws Exception {
  Async async = ctx.async();
  Router router = Router.router(vertx);
  HttpServer server = vertx.createHttpServer().requestHandler(router::accept);
  Flow flow = Flow.flow(vertx)
    .withDiscovery(discovery);
  flow.route(router.get("/foo"), httpFlow -> {
    AtomicInteger count = new AtomicInteger(6);
    doRec(6, fut -> {
      httpFlow.httpRequest(new JsonObject().put("name", "hello-service"), HttpMethod.GET, "/", ctx.asyncAssertFailure(v1 -> {
        CircuitBreakerState state = flow.breaker("hello-service").state();
        int val = count.decrementAndGet();
        if (val == 0) {
          ctx.assertEquals(CircuitBreakerState.OPEN, state);
          httpFlow.response().end("failed");
          async.complete();
        } else if (val == 1) {
          ctx.assertEquals(CircuitBreakerState.OPEN, state);
        } else {
          ctx.assertEquals(CircuitBreakerState.CLOSED, state);
        }
        fut.complete();
      }));
    });
  });
  Async listenAsync = ctx.async();
  server.listen(8080, ctx.asyncAssertSuccess(v -> listenAsync.complete()));
  listenAsync.awaitSuccess(10000);
  client
    .get(8080, "localhost", "/foo")
    .send(ctx.asyncAssertSuccess(resp -> {
      ctx.assertEquals(200, resp.statusCode());
      ctx.assertEquals("failed", resp.bodyAsString());
    }));
}
项目:AlipayWechatPlatform    文件:NetworkUtils.java   
private static void asyncRequestString(HttpMethod method, String url, Handler<String> callback){
    checkInitialized();
    client.requestAbs(method, url, resp -> {
        resp.bodyHandler(buf -> {
            callback.handle(buf.toString());
        });
    }).end();
}
项目:AlipayWechatPlatform    文件:NetworkUtils.java   
private static void asyncRequestJson(HttpMethod method, String url, Handler<JsonObject> callback){
    checkInitialized();
    client.requestAbs(method, url, resp -> {
        resp.bodyHandler(buf -> {
            callback.handle(buf.toJsonObject());
        });
    }).end();
}
项目:AlipayWechatPlatform    文件:NetworkUtils.java   
private static void asyncRequestJson(HttpMethod method, String url, Future<JsonObject> callback){
    checkInitialized();
    client.requestAbs(method, url, resp -> {
        resp.bodyHandler(buf -> {
            callback.complete(buf.toJsonObject());
        });
    }).end();
}
项目:vertx-spring    文件:VertxActuatorMetrics.java   
@Override
public StopWatch responsePushed(StopWatch socketWatch, HttpMethod method, String uri,
                                HttpServerResponse response) {
    counterService.increment("responses.pushed");
    StopWatch stopWatch = new StopWatch();
    stopWatch.start();
    return stopWatch;
}
项目:etagate    文件:Node.java   
public void get(String uri, JsonObject param, Handler<AsyncResult<HttpResponse<Buffer>>> h) {

        HttpRequest<Buffer> req = app.webclient.get(this.port,this.host, uri)
                .timeout(app.timeout);
        if(param!=null){
            param.forEach(entry -> {
                req.addQueryParam(entry.getKey(), "" + entry.getValue());
            });
        }       

        Handler<AsyncResult<HttpResponse<Buffer>>> callback =res->{
            if(res.succeeded()){                
                continueFailTimes=0;        
                log.info("{}, {} http://{}:{}{}",app.name,HttpMethod.GET,this.host,this.port,uri);          
                h.handle(Future.succeededFuture(res.result()));         
            }else{
                Throwable t = res.cause();
                this.onException(t, uri);
                h.handle(Future.failedFuture(t));               
            }       
        };

//      taskInProcessing=taskInProcessing+1;
        if(this.breaker!=null){
            breaker.<HttpResponse<Buffer>>execute(f->{
                req.send(f);
            }).setHandler(callback);    
        }else{          
            req.send(callback);
        }

    }
项目:java-vertx-web    文件:TracingHandlerTest.java   
@Test
public void testExceptionInHandlerWithFailureHandler() throws Exception {
    {
        router.route("/exceptionWithHandler").handler(routingContext -> {
            throw new IllegalArgumentException("msg");
        }).failureHandler(event -> {
            event.response()
                    .setStatusCode(404)
                    .end();
        });

        request("/exceptionWithHandler", HttpMethod.GET, 404);
        Awaitility.await().until(reportedSpansSize(), IsEqual.equalTo(1));
    }
    List<MockSpan> mockSpans = mockTracer.finishedSpans();
    Assert.assertEquals(1, mockSpans.size());

    MockSpan mockSpan = mockSpans.get(0);
    Assert.assertEquals("GET", mockSpan.operationName());
    Assert.assertEquals(6, mockSpan.tags().size());
    Assert.assertEquals(Boolean.TRUE, mockSpan.tags().get(Tags.ERROR.getKey()));
    Assert.assertEquals(404, mockSpan.tags().get(Tags.HTTP_STATUS.getKey()));
    Assert.assertEquals("GET", mockSpan.tags().get(Tags.HTTP_METHOD.getKey()));
    Assert.assertEquals("http://localhost:8080/exceptionWithHandler", mockSpan.tags().get(Tags.HTTP_URL.getKey()));
    Assert.assertEquals(1, mockSpan.logEntries().size());
    Assert.assertEquals(2, mockSpan.logEntries().get(0).fields().size());
    Assert.assertEquals(Tags.ERROR.getKey(), mockSpan.logEntries().get(0).fields().get("event"));
    Assert.assertTrue(mockSpan.logEntries().get(0).fields().get("error.object") instanceof Throwable);
}
项目:vertx-aws-lambda    文件:HttpServerResponseImplTest.java   
@Test
public void testPush(TestContext context) {
    StringBuilder res = new StringBuilder();
    response.push(HttpMethod.GET, "/", ar -> {
        res.append("DONE");
        context.assertTrue(ar.failed());
    });
    context.assertEquals("DONE", res.toString());
}
项目:rest.vertx    文件:RouteDefinition.java   
private RouteDefinition method(String value) {

        for (HttpMethod item : HttpMethod.values()) {
            if (StringUtils.equals(value, item.name(), true)) {
                Assert.isNull(method, "Method already set to: " + method + "!");
                method = item;
                break;
            }
        }

        return this;
    }
项目:java-vertx-web    文件:TracingHandlerTest.java   
@Test
public void testTimeoutHandler() throws Exception {
    {
        router.route().handler(TimeoutHandler.create(300, 501));

        router.route("/timeout")
                .blockingHandler(routingContext -> {
                    try {
                        Thread.sleep(10000);
                        routingContext.response()
                                .setStatusCode(202)
                                .end();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                        routingContext.response().end();
                    }
                });

        request("/timeout", HttpMethod.GET, 501);
        Awaitility.await().until(reportedSpansSize(), IsEqual.equalTo(1));
    }
    List<MockSpan> mockSpans = mockTracer.finishedSpans();
    Assert.assertEquals(1, mockSpans.size());

    MockSpan mockSpan = mockSpans.get(0);
    Assert.assertEquals("GET", mockSpan.operationName());
    Assert.assertEquals(6, mockSpan.tags().size());
    Assert.assertEquals(Boolean.TRUE, mockSpan.tags().get(Tags.ERROR.getKey()));
    Assert.assertEquals(501, mockSpan.tags().get(Tags.HTTP_STATUS.getKey()));
    Assert.assertEquals("GET", mockSpan.tags().get(Tags.HTTP_METHOD.getKey()));
    Assert.assertEquals("http://localhost:8080/timeout", mockSpan.tags().get(Tags.HTTP_URL.getKey()));
    Assert.assertEquals(0, mockSpan.logEntries().size());
}
项目:app-ms    文件:JaxRsFailureHandler.java   
private static void sendErrorResponse(final RoutingContext context,
    final WebApplicationException webAppException) {

    context.response().setStatusCode(webAppException.getResponse().getStatus());
    context.response().setStatusMessage(webAppException.getResponse().getStatusInfo().getReasonPhrase());
    if (context.request().method() != HttpMethod.HEAD) {
        if (webAppException.getResponse().getMediaType() == null) {
            context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN);
        } else {
            context.response().putHeader(HttpHeaders.CONTENT_TYPE, webAppException.getResponse().getMediaType().toString());
        }
        context.response().end(webAppException.getResponse().getStatusInfo().getReasonPhrase());
    }
}
项目:app-ms    文件:JaxRsPath.java   
/**
 * Constructs JaxRsPath.
 *
 * @param path
 *            path
 * @param consumes
 *            content types consumed
 * @param produces
 *            content types produced
 * @param method
 *            HTTP method.
 */
public JaxRsPath(final String path,
    final String[] consumes,
    final String[] produces,
    final HttpMethod method) {

    if (path.isEmpty()) {
        throw new IllegalArgumentException("path cannot be empty");
    }
    this.path = path;
    this.consumes = consumes;
    this.produces = produces;
    this.method = method;
    final Pattern placeholderPattern = Pattern.compile("/\\{([^}]+)}");
    final Pattern regexPlaceholderPattern = Pattern.compile("[-A-Za-z_0-9]+:\\s*(.+)");
    final Matcher matcher = placeholderPattern.matcher(path);

    final StringBuffer b = new StringBuffer();
    while (matcher.find()) {
        final Matcher m2 = regexPlaceholderPattern.matcher(matcher.group(1));
        if (m2.matches()) {
            matcher.appendReplacement(b, "/" + m2.group(1));
        } else {
            matcher.appendReplacement(b, "/[^/]+");
        }
    }
    matcher.appendTail(b);
    pathRegex = b.toString();
    exact = pathRegex.equals(path);
}
项目:app-ms    文件:JaxRsRouter.java   
/**
 * Gets the {@link HttpMethod} based on the annotation associated with the
 * method. Only GET, POST, PUT, DELETE are supported.
 *
 * @param m
 *            method
 * @return {@link HttpMethod}
 */
private HttpMethod getHttpMethod(final Method m) {

    if (m.getAnnotation(GET.class) != null) {
        return HttpMethod.GET;
    } else if (m.getAnnotation(POST.class) != null) {
        return HttpMethod.POST;
    } else if (m.getAnnotation(PUT.class) != null) {
        return HttpMethod.PUT;
    } else if (m.getAnnotation(DELETE.class) != null) {
        return HttpMethod.DELETE;
    } else {
        throw new IllegalStateException("Unabel to determine HTTP Method");
    }
}
项目:vertx-service-flow    文件:FlowTest.java   
@Test
public void testHttpToHttp(TestContext ctx) throws Exception {
  Async async = ctx.async();
  Router router = Router.router(vertx);
  HttpServer server = vertx.createHttpServer().requestHandler(router::accept);
  Flow flow = Flow.flow(vertx)
    .withDiscovery(discovery);
  flow.route(router.get("/foo"), httpFlow -> {
    httpFlow.httpRequest(new JsonObject().put("name", "hello-service"), HttpMethod.GET, "/", ctx.asyncAssertSuccess(req -> {
      req.send(ctx.asyncAssertSuccess(resp -> {
        ctx.assertEquals(200, resp.statusCode());
        httpFlow.response().end(resp.body());
        async.complete();
      }));
    }));
  });
  Async listenAsync = ctx.async();
  server.listen(8080, ctx.asyncAssertSuccess(v -> listenAsync.complete()));
  listenAsync.awaitSuccess(10000);
  startBackendBlocking(ctx);
  publishBackendBlocking(ctx);
  client
    .get(8080, "localhost", "/foo")
    .send(ctx.asyncAssertSuccess(resp -> {
      ctx.assertEquals(200, resp.statusCode());
      ctx.assertEquals("Hello World", resp.bodyAsString());
    }));
}
项目:app-ms    文件:PathPlaceholderTest.java   
@Test
public void testSimplePlaceholder() {

    final JaxRsPath path = new JaxRsPath("/exact/{id}", new String[0], new String[0], HttpMethod.POST);
    assertFalse(path.isExact());
    assertEquals("/exact/[^/]+", path.getPathRegex());
}
项目:app-ms    文件:PathPlaceholderTest.java   
@Test
public void testSimplePlaceholder2() {

    final JaxRsPath path = new JaxRsPath("/exact/{id}/foo", new String[0], new String[0], HttpMethod.POST);
    assertFalse(path.isExact());
    assertEquals("/exact/[^/]+/foo", path.getPathRegex());
}
项目:app-ms    文件:PathPlaceholderTest.java   
@Test
public void testSimplePlaceholder3() {

    final JaxRsPath path = new JaxRsPath("/exact/{id}/foo/{x}", new String[0], new String[0], HttpMethod.PUT);
    assertFalse(path.isExact());
    assertEquals("/exact/[^/]+/foo/[^/]+", path.getPathRegex());
}