skills/.system/guicedee-config/SKILL.md
MicroProfile Config implementation for GuicedEE using SmallRye Config and Guice: @ConfigProperty injection with type conversion, environment variable / system property / microprofile-config.properties sources, profile support, custom converters, programmatic SmallRyeConfig access, and JPMS setup. Use when injecting configuration values, managing config sources, adding custom converters, or using profile-specific properties.
npx skillsauth add guicedee/ai-rules guicedee-configInstall 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.
MicroProfile Config implementation for GuicedEE using SmallRye Config and Google Guice.
Inject configuration values with @ConfigProperty, resolve from environment variables, system properties, and META-INF/microprofile-config.properties — all wired automatically through SPI discovery and Guice bindings.
com.guicedee.microprofile:config dependency.microprofile-config.properties file:
# src/main/resources/META-INF/microprofile-config.properties
messaging.enabled=true
messaging.bootstrap.servers=localhost:9092
liveness.port=8081
public class MessagingService {
@ConfigProperty(name = "messaging.enabled", defaultValue = "true")
boolean enabled;
@ConfigProperty(name = "messaging.bootstrap.servers")
String bootstrapServers;
}
module-info.java:
module my.app {
requires com.guicedee.microprofile.config;
opens my.app.services to com.google.guice;
}
| Source | Ordinal | Example |
|---|---|---|
| Environment variables | 300 (highest) | MESSAGING_ENABLED=true |
| System properties | 200 | -Dmessaging.enabled=true |
| META-INF/microprofile-config.properties | 100 (lowest) | messaging.enabled=true |
Environment variable names follow MicroProfile Config rules:
messaging.bootstrap.servers → MESSAGING_BOOTSTRAP_SERVERSSmallRye Config supports profile-specific properties using %profile. prefix:
db.url=jdbc:postgresql://prod-host:5432/mydb
%dev.db.url=jdbc:postgresql://localhost:5432/mydb
Activate with mp.config.profile=dev.
| Type | Binding |
|---|---|
| String | Direct value |
| boolean / Boolean | Parsed |
| int / Integer | Parsed |
| long / Long | Parsed |
| double / Double | Parsed |
| float / Float | Parsed |
| Optional<T> | Wrapped optional (all above types) |
Default values via @ConfigProperty(defaultValue = "...").
@Inject
SmallRyeConfig config;
int port = config.getOptionalValue("liveness.port", Integer.class).orElse(8081);
Register Converter<T> implementations via ServiceLoader for application-specific types.
IGuiceContext.instance().inject()
└─ MicroProfileConfigContext (builds SmallRyeConfig on Vert.x worker thread)
├─ addDefaultSources() (env vars, system props, microprofile-config.properties)
├─ addDiscoveredSources() (ServiceLoader-discovered ConfigSource SPIs)
└─ addDiscoveredConverters()
└─ MicroProfileConfigBinder (scans @ConfigProperty fields, creates Guice bindings)
requires com.guicedee.microprofile.config;.@ConfigProperty fields must be in packages opened to com.google.guice.provides needed.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.