Search in sources :

Example 21 with Route

use of io.vertx.ext.web.Route in project earth-snow by justlive1.

the class RouteRegisterFactory method register.

/**
 * 讲Route注册到vertx中
 */
private void register() {
    for (Map.Entry<String, RouteWrap> entry : routeWraps.entrySet()) {
        RouteWrap wrap = entry.getValue();
        VertxRouteMapping routeMapping = wrap.getRouteMapping();
        Route route = router.route().path(entry.getKey());
        for (String consume : routeMapping.consumes()) {
            route.consumes(consume);
        }
        for (String produce : routeMapping.produces()) {
            route.produces(produce);
        }
        for (HttpMethod method : routeMapping.method()) {
            route.method(method);
        }
        Handler<RoutingContext> handler = ctx -> executeWithArgs(wrap, ctx);
        if (routeMapping.blocking()) {
            route.blockingHandler(handler);
        } else {
            route.handler(handler);
        }
        if (log.isDebugEnabled()) {
            log.debug("register url [{}]", entry.getKey());
        }
    }
}
Also used : Route(io.vertx.ext.web.Route) StringToNumberConverterFactory(justlive.earth.breeze.snow.common.base.convert.support.StringToNumberConverterFactory) DefaultConverterService(justlive.earth.breeze.snow.common.base.convert.support.DefaultConverterService) Set(java.util.Set) Router(io.vertx.ext.web.Router) HashMap(java.util.HashMap) Reflections(org.reflections.Reflections) RoutingContext(io.vertx.ext.web.RoutingContext) StringToBooleanConverter(justlive.earth.breeze.snow.common.base.convert.support.StringToBooleanConverter) Exceptions(justlive.earth.breeze.snow.common.base.exception.Exceptions) Slf4j(lombok.extern.slf4j.Slf4j) ImmutableList(com.google.common.collect.ImmutableList) ErrorCodes(justlive.earth.breeze.snow.common.web.vertx.exception.ErrorCodes) Parameter(java.lang.reflect.Parameter) HttpMethod(io.vertx.core.http.HttpMethod) VertxRoute(justlive.earth.breeze.snow.common.web.vertx.annotation.VertxRoute) VertxRouteMapping(justlive.earth.breeze.snow.common.web.vertx.annotation.VertxRouteMapping) Map(java.util.Map) StringToCharacterConverter(justlive.earth.breeze.snow.common.base.convert.support.StringToCharacterConverter) BaseConstants(justlive.earth.breeze.snow.common.base.constant.BaseConstants) Handler(io.vertx.core.Handler) Method(java.lang.reflect.Method) RoutingContext(io.vertx.ext.web.RoutingContext) VertxRouteMapping(justlive.earth.breeze.snow.common.web.vertx.annotation.VertxRouteMapping) HashMap(java.util.HashMap) Map(java.util.Map) Route(io.vertx.ext.web.Route) VertxRoute(justlive.earth.breeze.snow.common.web.vertx.annotation.VertxRoute) HttpMethod(io.vertx.core.http.HttpMethod)

Example 22 with Route

use of io.vertx.ext.web.Route in project vertx-zero by silentbalanceyh.

the class ZeroHttpAgent method registryServer.

private void registryServer(final HttpServerOptions options, final Router router) {
    final Integer port = options.getPort();
    final AtomicInteger out = ZeroAtomic.HTTP_START_LOGS.get(port);
    if (Values.ZERO == out.getAndIncrement()) {
        // 1. Build logs for current server;
        final String portLiteral = String.valueOf(port);
        LOGGER.info(Info.HTTP_SERVERS, this.getClass().getSimpleName(), this.deploymentID(), portLiteral);
        final List<Route> routes = router.getRoutes();
        final Map<String, Set<Route>> routeMap = new TreeMap<>();
        final Set<String> tree = new TreeSet<>();
        for (final Route route : routes) {
            // 2.Route
            if (null != route.getPath()) {
                // Initial tree set.
                if (!routeMap.containsKey(route.getPath())) {
                    routeMap.put(route.getPath(), new HashSet<>());
                }
                routeMap.get(route.getPath()).add(route);
            }
            // 3.Tree only need path here.
            final String path = null == route.getPath() ? "/*" : route.getPath();
            if (!"/*".equals(path)) {
                tree.add(path);
            }
        }
        routeMap.forEach((path, routeSet) -> routeSet.forEach(route -> LOGGER.info(Info.MAPPED_ROUTE, this.getClass().getSimpleName(), path, route.toString())));
        // 3. Endpoint Publish
        final String address = MessageFormat.format("http://{0}:{1}/", Ut.netIPv4(), portLiteral);
        LOGGER.info(Info.HTTP_LISTEN, this.getClass().getSimpleName(), address);
        // 4. Send configuration to Event bus
        final String name = SERVICES.get(port);
        this.startRegistry(name, options, tree);
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) java.util(java.util) ZeroGrid(io.vertx.up.web.ZeroGrid) HttpServer(io.vertx.core.http.HttpServer) Router(io.vertx.ext.web.Router) Ut(io.vertx.up.tool.Ut) ID(io.vertx.up.eon.ID) MessageFormat(java.text.MessageFormat) ConcurrentMap(java.util.concurrent.ConcurrentMap) Etat(io.vertx.up.eon.em.Etat) EventBus(io.vertx.core.eventbus.EventBus) Values(io.vertx.zero.eon.Values) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ZeroRegistry(io.vertx.up.micro.center.ZeroRegistry) Annal(io.vertx.up.log.Annal) FilterAxis(io.vertx.up.rs.router.FilterAxis) JsonObject(io.vertx.core.json.JsonObject) EventAxis(io.vertx.up.rs.router.EventAxis) Route(io.vertx.ext.web.Route) Fn(io.vertx.up.func.Fn) RouterAxis(io.vertx.up.rs.router.RouterAxis) WallAxis(io.vertx.up.rs.router.WallAxis) Instance(io.vertx.up.tool.mirror.Instance) Axis(io.vertx.up.rs.Axis) AbstractVerticle(io.vertx.core.AbstractVerticle) EtcdData(io.vertx.tp.etcd.center.EtcdData) HttpServerOptions(io.vertx.core.http.HttpServerOptions) Agent(io.vertx.up.annotations.Agent) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Route(io.vertx.ext.web.Route)

Example 23 with Route

use of io.vertx.ext.web.Route in project mbed-cloud-sdk-java by ARMmbed.

the class TestServer method definePingRoute.

private void definePingRoute() {
    Route route = router.route(HttpMethod.GET, "/ping").produces(APPLICATION_JSON);
    route.handler(routingContext -> {
        execute(200, routingContext, new ServerAction() {

            @Override
            public Object execute() throws Exception {
                return engine.ping();
            }
        }, false);
    });
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Route(io.vertx.ext.web.Route) UnknownAPIException(com.arm.mbed.cloud.sdk.testserver.internal.model.UnknownAPIException) ServerCacheException(com.arm.mbed.cloud.sdk.testserver.cache.ServerCacheException) APICallException(com.arm.mbed.cloud.sdk.testutils.APICallException) MissingInstanceException(com.arm.mbed.cloud.sdk.testserver.cache.MissingInstanceException)

Example 24 with Route

use of io.vertx.ext.web.Route in project mbed-cloud-sdk-java by ARMmbed.

the class TestServer method defineInitialisationRoute.

// TODO remove when not used anymore
private void defineInitialisationRoute() {
    Route route = router.route(HttpMethod.GET, "/_init").produces(APPLICATION_JSON);
    route.handler(routingContext -> {
        execute(200, routingContext, new ServerAction() {

            @Override
            public Object execute() throws Exception {
                return null;
            }
        }, false);
    });
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Route(io.vertx.ext.web.Route) UnknownAPIException(com.arm.mbed.cloud.sdk.testserver.internal.model.UnknownAPIException) ServerCacheException(com.arm.mbed.cloud.sdk.testserver.cache.ServerCacheException) APICallException(com.arm.mbed.cloud.sdk.testutils.APICallException) MissingInstanceException(com.arm.mbed.cloud.sdk.testserver.cache.MissingInstanceException)

Example 25 with Route

use of io.vertx.ext.web.Route in project mbed-cloud-sdk-java by ARMmbed.

the class TestServer method defineListInstancesRoute.

private void defineListInstancesRoute() {
    Route route = router.route(HttpMethod.GET, "/instances").produces(APPLICATION_JSON);
    route.blockingHandler(routingContext -> {
        execute(200, routingContext, new ServerAction() {

            @Override
            public Object execute() throws Exception {
                return engine.listAllModuleInstances().stream().map(m -> m.toInstance()).collect(Collectors.toList());
            }
        }, false);
    });
}
Also used : JsonObject(io.vertx.core.json.JsonObject) Route(io.vertx.ext.web.Route) UnknownAPIException(com.arm.mbed.cloud.sdk.testserver.internal.model.UnknownAPIException) ServerCacheException(com.arm.mbed.cloud.sdk.testserver.cache.ServerCacheException) APICallException(com.arm.mbed.cloud.sdk.testutils.APICallException) MissingInstanceException(com.arm.mbed.cloud.sdk.testserver.cache.MissingInstanceException)

Aggregations

Route (io.vertx.ext.web.Route)30 JsonObject (io.vertx.core.json.JsonObject)17 ServerCacheException (com.arm.mbed.cloud.sdk.testserver.cache.ServerCacheException)14 UnknownAPIException (com.arm.mbed.cloud.sdk.testserver.internal.model.UnknownAPIException)14 APICallException (com.arm.mbed.cloud.sdk.testutils.APICallException)14 MissingInstanceException (com.arm.mbed.cloud.sdk.testserver.cache.MissingInstanceException)13 RoutingContext (io.vertx.ext.web.RoutingContext)10 Router (io.vertx.ext.web.Router)7 HttpMethod (io.vertx.core.http.HttpMethod)4 AbstractVerticle (io.vertx.core.AbstractVerticle)3 Handler (io.vertx.core.Handler)3 HttpServerResponse (io.vertx.core.http.HttpServerResponse)3 TemplateHandler (io.vertx.ext.web.handler.TemplateHandler)3 TemplateHandlerImpl (io.vertx.ext.web.handler.impl.TemplateHandlerImpl)3 TemplateEngine (io.vertx.ext.web.templ.TemplateEngine)3 Date (java.util.Date)3 Map (java.util.Map)3 Set (java.util.Set)3 Test (org.junit.Test)3 APIMethodResult (com.arm.mbed.cloud.sdk.testserver.internal.model.APIMethodResult)2