skills/.system/guicedee-web/SKILL.md
Bootstrap reactive HTTP/HTTPS servers with Vert.x 5 inside GuicedEE: Router setup, BodyHandler configuration, TLS/HTTPS, SPI extension points (VertxRouterConfigurator, VertxHttpServerOptionsConfigurator, VertxHttpServerConfigurator), per-verticle sub-routers, and environment-driven configuration. Use when setting up the Vert.x web server, configuring HTTP/HTTPS, adding custom routes or middleware, or managing server options.
npx skillsauth add guicedee/ai-rules guicedee-webInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reactive HTTP/HTTPS server bootstrap for GuicedEE applications using Vert.x 5.
Provides the Router, HttpServer, and BodyHandler plumbing that higher-level modules (rest, websockets, etc.) build on top of. Configuration is environment-driven; extension is SPI-driven. The server starts automatically via IGuicePostStartup.
com.guicedee:web dependency.IGuiceContext.registerModuleForScanning.add("my.app");
IGuiceContext.instance().inject();
// HTTP server is now listening on port 8080 (default)
VertxRouterConfigurator:
public class MyRoutes implements VertxRouterConfigurator<MyRoutes> {
@Override
public Router builder(Router router) {
router.get("/health").handler(ctx -> ctx.response().end("OK"));
return router;
}
@Override
public Integer sortOrder() { return 500; }
}
module my.app {
requires com.guicedee.vertx.web;
provides com.guicedee.vertx.web.spi.VertxRouterConfigurator
with my.app.MyRoutes;
}
All SPIs are discovered via ServiceLoader. Register with JPMS provides...with or META-INF/services.
| SPI | When it runs | Purpose |
|---|---|---|
| VertxHttpServerOptionsConfigurator | Before servers created | Customize HttpServerOptions (ports, TLS, compression) |
| VertxHttpServerConfigurator | After server creation | Configure HttpServer instance (WebSocket upgrade, connection hooks) |
| VertxRouterConfigurator | After body handler | Add routes, middleware, handlers to the Router |
All configuration is driven by system properties or environment variables:
| Variable | Default | Purpose |
|---|---|---|
| HTTP_ENABLED | true | Enable HTTP server |
| HTTP_PORT | 8080 | HTTP listen port |
| HTTPS_ENABLED | false | Enable HTTPS server |
| HTTPS_PORT | 443 | HTTPS listen port |
| HTTPS_KEYSTORE | — | Path to JKS or PKCS#12 keystore |
| HTTPS_KEYSTORE_PASSWORD | — | Keystore password |
| VERTX_MAX_BODY_SIZE | 524288000 (500 MB) | Maximum request body size |
Keystore format is auto-detected by file extension:
.jks → JKS.pfx, .p12, .p8 → PKCS#12IGuiceContext.instance().inject()
└─ IGuicePostStartup hooks
└─ VertxWebServerPostStartup (sortOrder = MIN_VALUE + 500)
├─ Build HttpServerOptions (compression, keepalive, header limits)
├─ Apply VertxHttpServerOptionsConfigurator SPIs
├─ Create HTTP / HTTPS servers
├─ Apply VertxHttpServerConfigurator SPIs
├─ Create Router + BodyHandler
├─ Apply VertxRouterConfigurator SPIs (sorted)
├─ Mount per-verticle sub-routers
├─ Configure Jackson ObjectMapper via IJsonRepresentation
└─ server.listen()
HttpServer manually — use the auto-started server from VertxWebServerPostStartup.requires com.guicedee.vertx.web;.module-info.java + META-INF/services/).VertxRouterConfigurator implementations control ordering via sortOrder().development
Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Codex's capabilities with specialized knowledge, workflows, or tool integrations.
development
WebAwesome icon integration for JWebMP — modern, open-source icon library. Provides 1,500+ icons with solid/regular styles, sizing, rotation, animation, and CSS utilities. Drop-in FontAwesome alternative with fresh designs. Use when working with WebAwesome icons, modern icon designs, or as FontAwesome alternative in JWebMP applications.
development
WebAwesome Pro integration for JWebMP with premium icons and features. Extends jwebmp-webawesome with additional styles, premium icons, and advanced features. Use when working with WebAwesome Pro icons or premium WebAwesome features in JWebMP applications.