-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodule-info.java.template
More file actions
39 lines (37 loc) · 1.52 KB
/
module-info.java.template
File metadata and controls
39 lines (37 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* jcurses: Terminal UI library with AWT-like components using ncurses.
*
* This module provides a modern Java 21 terminal UI framework with:
* - 29 widgets (buttons, labels, text fields, tables, menus, etc.)
* - Layout managers (BorderLayout, FlowLayout, JGridLayout)
* - Event system with mouse and keyboard support
* - Color support with 3 built-in themes
* - Virtual Thread compatibility
*
* To enable module support:
* 1. Copy this file to src/main/java/module-info.java
* 2. Update pom.xml to use --enable-native-access=org.flossware.jcurses
* instead of --enable-native-access=ALL-UNNAMED
*
* Note: Unit tests require classpath mode (not module path) for reflection access.
* This is a common pattern for libraries - ship without module-info.java for flexibility,
* or use jlink/jpackage for modular deployment.
*
* @since 1.0
*/
module org.flossware.jcurses {
// Public API exports
exports org.flossware.jcurses.api;
exports org.flossware.jcurses.api.edit;
exports org.flossware.jcurses.events;
exports org.flossware.jcurses.theme;
// Open packages for frameworks that need reflection access (e.g., dependency injection)
opens org.flossware.jcurses.api;
opens org.flossware.jcurses.api.edit;
opens org.flossware.jcurses.events;
opens org.flossware.jcurses.theme;
// Internal packages (not exported):
// - org.flossware.jcurses.render (rendering engine)
// - org.flossware.jcurses.ffi (ncurses FFI bridge)
// - org.flossware.jcurses (application entry points)
}