Problem
Module jplatform-jcurses-ui is misnamed - it doesn't use jcurses, it uses Lanterna.
Current State
Module name: jplatform-jcurses-ui
Actual library: Lanterna 3.1.5 (not jcurses!)
pom.xml:
<dependency>
<groupId>com.googlecode.lanterna</groupId>
<artifactId>lanterna</artifactId>
<version>3.1.5</version>
</dependency>
Why This Happened
Historical guess:
- Module created as
jplatform-jcurses-ui (planned to use jcurses)
- Developer discovered jcurses is unmaintained (last commit 2010)
- Switched to Lanterna (smart choice!)
- Forgot to rename the module (oops!)
Why Lanterna is Better
jcurses (NOT used):
- ❌ Unmaintained (last update ~2010)
- ❌ JNI bindings to native ncurses
- ❌ Requires native libraries
- ❌ Poor cross-platform support
Lanterna (ACTUALLY used):
- ✅ Modern, maintained Java library
- ✅ Pure Java (no JNI)
- ✅ Cross-platform (Windows, Linux, macOS)
- ✅ Rich feature set (windows, components, mouse support)
The switch was correct! Just need to update the name.
Proposed Change
Current name: jplatform-jcurses-ui
Proposed name: platform-java-terminal-ui
Alternative: platform-java-lanterna-ui
Recommendation: platform-java-terminal-ui (library-agnostic, future-proof)
Impact
Low impact - Internal module name only:
- Module directory rename
- POM artifact ID change
- References in parent POM
- Documentation updates
No code changes - Just renaming, no logic changes
Implementation
Step 1: Rename Directory
git mv jplatform-jcurses-ui platform-java-terminal-ui
Step 2: Update pom.xml
<!-- Before -->
<artifactId>jplatform-jcurses-ui</artifactId>
<name>jplatform-jcurses-ui</name>
<!-- After -->
<artifactId>platform-java-terminal-ui</artifactId>
<name>platform-java-terminal-ui</name>
Step 3: Update Parent POM
<!-- Before -->
<module>jplatform-jcurses-ui</module>
<!-- After -->
<module>platform-java-terminal-ui</module>
Step 4: Update References
- README.md
- Documentation
- CHANGELOG.md
- Any guides mentioning the module
Step 5: Test Build
Step 6: Update CHANGELOG
## [Unreleased]
### Changed
- Renamed `jplatform-jcurses-ui` → `platform-java-terminal-ui` to reflect actual library (Lanterna, not jcurses)
Benefits
Accuracy:
- ✅ Name reflects actual technology (Lanterna)
- ✅ No confusion about jcurses
Consistency:
- ✅ Matches other module naming (platform-java-*)
- ✅ Aligns with JPlatform → platform-java renaming
Future-proof:
- ✅ Library-agnostic name
- ✅ Can swap libraries without renaming
Risks
Breaking changes: Minimal
- Internal module name only
- No public API changes
- No user-facing changes
Dependencies: None
- No other modules depend on this artifact ID
- Terminal UI is optional feature
Related
- Recent JPlatform → platform-java renaming
- VirtOS uses dialog/whiptail (different, correct choice)
- TUI technology decision documentation
Priority
P3 (Low) - Accuracy and clarity, not functional
Acceptance Criteria
Estimated Effort
Time: 1-2 hours
Complexity: Low (rename + documentation)
Recommendation: Rename to platform-java-terminal-ui for accuracy and consistency.
Problem
Module
jplatform-jcurses-uiis misnamed - it doesn't use jcurses, it uses Lanterna.Current State
Module name:
jplatform-jcurses-uiActual library: Lanterna 3.1.5 (not jcurses!)
pom.xml:
Why This Happened
Historical guess:
jplatform-jcurses-ui(planned to use jcurses)Why Lanterna is Better
jcurses (NOT used):
Lanterna (ACTUALLY used):
The switch was correct! Just need to update the name.
Proposed Change
Current name:
jplatform-jcurses-uiProposed name:
platform-java-terminal-uiAlternative:
platform-java-lanterna-uiRecommendation:
platform-java-terminal-ui(library-agnostic, future-proof)Impact
Low impact - Internal module name only:
No code changes - Just renaming, no logic changes
Implementation
Step 1: Rename Directory
Step 2: Update pom.xml
Step 3: Update Parent POM
Step 4: Update References
Step 5: Test Build
Step 6: Update CHANGELOG
Benefits
Accuracy:
Consistency:
Future-proof:
Risks
Breaking changes: Minimal
Dependencies: None
Related
Priority
P3 (Low) - Accuracy and clarity, not functional
Acceptance Criteria
mvn clean install)Estimated Effort
Time: 1-2 hours
Complexity: Low (rename + documentation)
Recommendation: Rename to
platform-java-terminal-uifor accuracy and consistency.