public Booter metrics() { Metrics.bootstrap(); setup.page(uri("metrics")) .internal(true) .roles(Role.ADMINISTRATOR) .zone(CENTER) .menu(40, "Metrics") .mvc(new GraphsHandler()); setup.get(uri("graphs/{id:.*}")) .internal(true) .roles(Role.ADMINISTRATOR) .json(new GraphDataHandler()); return this; }
public ReverseProxy addTo(Setup setup) { Log.info("!Reverse proxy mapping", "!uriPrefix", uriPrefix, "!upstreams", upstreams); ReverseProxy proxy = createReverseProxy(); U.must(uriPrefix.startsWith("/"), "The URI prefix must start with '/'"); String path = uriPrefix.equals("/") ? "/*" : uriPrefix + "/*"; OnRoute route = setup.any(path); if (roles != null) route.roles(roles); if (cacheTTL != null) route.cacheTTL(cacheTTL); if (cacheCapacity != null) route.cacheCapacity(cacheCapacity); route.serve(proxy); return proxy; }
.internal(internal) .roles(roles) .json(X.index(entityType)); .internal(internal) .roles(roles) .json(X.read(entityType)); .internal(internal) .transaction() .roles(roles) .json(X.insert(entityType)); .internal(internal) .transaction() .roles(roles) .json(X.update(entityType)); .internal(internal) .transaction() .roles(roles) .json(X.delete(entityType)); .internal(internal) .roles(roles) .mvc(X.manage(entityType, uri)); .internal(internal) .transaction()
route.view(page.view()); route.html(method, bean); } else { route.mvc(method, bean); route(setup.get(path), method).json(method, bean); } else { setup.deregister(Constants.GET, path); route(setup.post(path), method).json(method, bean); } else { setup.deregister(Constants.POST, path); route(setup.put(path), method).json(method, bean); } else { setup.deregister(Constants.PUT, path); route(setup.delete(path), method).json(method, bean); } else { setup.deregister(Constants.DELETE, path); route(setup.patch(path), method).json(method, bean); } else { setup.deregister(Constants.PATCH, path); route(setup.options(path), method).json(method, bean); } else { setup.deregister(Constants.OPTIONS, path);
private void addRoute(T config, HttpVerb verb, String uri) { OnRoute route = addRoute(verb, uri); if (config.contentType != null) route.contentType(MediaType.of(config.contentType)); if (config.managed != null) route.managed(config.managed); if (config.transaction != null) route.transaction(config.transaction); if (config.cacheTTL != null) route.cacheTTL(config.cacheTTL); if (config.cacheCapacity != null) route.cacheCapacity(config.cacheCapacity); if (config.roles != null) { route.roles(config.roles); App.boot().auth(); } addHandler(config, uri, route); }
private OnRoute route(OnRoute route, Method method) { // TRANSACTION Transaction transaction = method.getAnnotation(Transaction.class); if (transaction != null) { route.transaction(transaction.value()); } // ROLES Set<String> rolesAllowed = Secure.getRolesAllowed(method); String[] roles = U.arrayOf(String.class, rolesAllowed); route.roles(roles); // CACHE Cached cached = method.getAnnotation(Cached.class); if (cached != null) { route.cacheTTL(cached.ttl()); } return route; }
@Override protected void addHandler(PageConfig page, String uri, OnRoute route) { if (page.view != null) route.view(page.view); if (page.zone != null) route.zone(page.zone); PageHandler handler = new PageHandler(page); // MVC by default if (Boolean.FALSE.equals(page.mvc)) { route.html(handler); } else { route.mvc(handler); } }
public static void bootstrap(Setup setup) { OpenAPIDescriptor descriptor = new OpenAPIDescriptor(setup, Conf.OPENAPI); setup.get(Msc.specialUri("api/openapi.json")) .internal(true) .json(descriptor::getAPIDocs); setup.get(Msc.specialUri("api/openapi.yaml")) .internal(true) .plain(() -> YAML.stringify(descriptor.getAPIDocs())); }
private static void scaffoldEntity(Setup setup, String baseUri, Class<?> entityType) { if (baseUri.length() > 1) { baseUri = Str.trimr(baseUri, "/"); } // RESTful services setup.get(baseUri).json(X.index(entityType)); setup.get(baseUri + "/{id}").json(X.read(entityType)); setup.post(baseUri).transaction().json(X.insert(entityType)); setup.put(baseUri + "/{id}").transaction().json(X.update(entityType)); setup.delete(baseUri + "/{id}").transaction().json(X.delete(entityType)); // GUI setup.page(baseUri + "/manage").mvc(X.manage(entityType, baseUri)); setup.page(baseUri + "/add").transaction().mvc(X.add(entityType, baseUri)); setup.page(baseUri + "/{id}/view").transaction().mvc(X.view(entityType, baseUri)); setup.page(baseUri + "/{id}/edit").transaction().mvc(X.edit(entityType, baseUri)); }
public static synchronized OnRoute get(String path) { return setup().get(path).roles(Role.ADMINISTRATOR); }
@Override protected void addHandler(APIConfig api, String uri, OnRoute route) { route.json(new APIHandler(api)); }
@Override public OnRoute on(String verb, String path) { return new OnRoute(this, verb.toUpperCase(), path); }
public OnRoute transaction() { return transaction(TransactionMode.AUTO); }