Pulseman (Pulsar manager) is an Apache Pulsar test tool that allows users to:
- Generate and publish messages to a pulsar topic using Kotlin Scripting
- Subscribe to a Pulsar topic and receive messages
- Query all topics
- Import JAR files for serialization and deserialization of messages
- Import custom authentication JAR files
- Store and share test collections
Currently, this has only been tested and targeted to work on macOS.
Current formats supported for serialization and deserialization of messages:
- Protobuf messages compiled with protokt
- Protobuf messages compiled with protoc
- Text format. Standard character sets are supported, and base64 encoding and decoding of text.
Both HEX and base64 byte array representations can be converted to a selected protobuf class.
Development of Pulseman is done using Java 17. In order for IntelliJ to work correctly and be able to run and debug the application you'll need to set the correct Java version.
Open IntelliJ and go to File -> Project Structure
and set the SDK
and Language Level
to be Java 17.
To create an unsigned distributable run this Gradle command:
./gradlew createDistributable
The resulting distributable can be found in build/compose/binaries/main/app/
.
You can install it on your computer by dragging it into your ~/Applications
folder.
As macOS need applications to be signed to be run, you can't run it the usual way. To run the application you'll need to run this command:
~/Applications/Pulseman.app/Contents/MacOS/Pulseman
If run from the Applications folder, configuration files for the application, by default, will be stored
in ~/pulseman_config
.
Editing these configuration files manually may corrupt your saved configurations and application functionality.
Steps on how to sign and notarize a macOS application can be found here.
See CREATE-PROJECT
Run the JUnit tests from the root folder using the following command:
./gradlew test
Please read CONTRIBUTING for details on our code of conduct, and the process for submitting pull requests.
See CHANGELOG for a history of changes to this repository.
Stephen Kirk, Paul Queruel, Ronan Kileen
This project is licensed under the Apache 2 License - see the LICENSE file for details.
RSyntaxTextArea was super helpful for generating pretty code editors quickly.
Reflections made parsing JAR files for classes super simple.
The name Pulseman is an ode to Postman.