- All commands should extend
AbstractCommandfrom this package. - There are helper classes which extend the
AbstractCommandclass:- Use
AbstractCommandGroupfor commands which only contain subcommands and don't do anything else, e.g.streamx settings. - Use
AbstractSilentCommandfor commands which don't print any user-faced output, e.g.streamx settings set.
- Use
- Commands should throw only the
CliException. - All user facing messages should be provided by
MessageProvider.
- Ensure that you have Mandrel 23 installed.
- Then you can run
./mvnw clean install -Dnativeto build the native executable.
IMPORTANT: mark test which run StreamX mesh with the DisabledIfDockerUnavaliable annotation.
Otherwise, CI will fail because at this moment Docker isn't supported on macOS arm64.
- Enter Quarkus development console.
./mvnw quarkus:dev
- Use
ebutton to edit CLI arguments.
Native build requires additional configuration like registering classes for reflection or registering resources to be included
in native artifact. This project uses quarkus.native.resources.includes property in
application.properties for resources registration and
com/streamx/cli/ReflectionConfiguration.java for reflection registration. More details about configuring native build can
be found in:
- https://quarkus.io/guides/writing-native-applications-tips
- https://quarkus.io/guides/native-reference
./mvnw verify -Dnative
Use ./release.sh <patch|minor|major> script.