GuicedEE Installer
Upgrade an existing module to the same baseline expected by guicedee-creator.
Required Flow
- Inspect current project state (
pom.xml, wrapper files, source roots, module-info files). - Patch
pom.xmlto align withreferences/retrofit-checklist.md:- Java baseline set to 25+
- GuicedEE BOM imported in
dependencyManagement - Enforcer rules for Maven 4 and Java 25+
- Testing baseline includes
org.junit.jupiter:junit-jupiter(testscope), JUnit Jupiter6.0.3+, and Mockito
- Ensure Maven wrapper points to Maven 4 (
.mvn/wrapper/maven-wrapper.properties). - Create or repair:
src/main/java/module-info.javasrc/test/java/module-info.java- ensure test module
requiresJUnit Jupiter module(s) - ensure every test package
opens ... to org.junit.platform.commons - ensure packages requiring injection open to
com.google.guice - ensure DTO/JSON deserialization packages open to
com.fasterxml.jackson.databind - ensure Vert.x packages open to
com.guicedee.vertx - safe default: open each used package to all required runtime targets
- Create or repair bootstrap
main()class with:LogUtils.addHighlightedConsoleLogger(Level.DEBUG)IGuiceContext.registerModule("<mainModule>")IGuiceContext.instance().inject()
- If lifecycle customization exists, ensure SPI implementations are correctly dual-registered:
com.guicedee.client.services.lifecycle.IGuicePreStartupcom.guicedee.client.services.lifecycle.IGuiceModulecom.guicedee.client.services.lifecycle.IGuicePostStartup- Ensure each implementation overrides
sortOrder()(fromIDefaultService<J>) - registrations required in both
module-info.javaandsrc/main/resources/META-INF/services/*
- Apply package separation:
- test module name defaults to
<mainModule>.test - test package names end with
.test - no duplicate package names between main and test source roots
- test module name defaults to
- Run creator validator when available:
python3 ../guicedee-creator/scripts/verify_guicedee_baseline.py --project-root .- If not installed side-by-side, apply the checklist manually.
Migration Rules
- Prefer forward-only edits: change files to final target state in one pass.
- Do not keep old Java/Maven compatibility profiles when they conflict with Maven 4/JDK 25 baseline.
- Keep module/package naming deterministic to avoid split-package issues in JPMS tests.
pom.xmlmust includeorg.junit.jupiter:junit-jupiterwithtestscope.- Safe module rule: open used main packages to
com.google.guice,com.fasterxml.jackson.databind, andcom.guicedee.vertx; includeorg.junit.platform.commonsfor test packages.
References
references/retrofit-checklist.md- patch checklist and exact BOM snippet.