Skip to content

Pulsar test tool that allows user to store test collections and monitor/send messages on pulsar topics.

License

Notifications You must be signed in to change notification settings

open-toast/pulseman

Repository files navigation

Pulseman

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.

Supported pulsar formats

Current formats supported for serialization and deserialization of messages:

Log conversion

Both HEX and base64 byte array representations can be converted to a selected protobuf class.

Getting Started

Local development

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.

Sample project structure settings

Create an unsigned distributable (macOS)

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.

Note

Editing these configuration files manually may corrupt your saved configurations and application functionality.

Create a signed distributable (macOS)

Steps on how to sign and notarize a macOS application can be found here.

Creating a project

See CREATE-PROJECT

Running the tests

Run the JUnit tests from the root folder using the following command:

./gradlew test

Contributing

Please read CONTRIBUTING for details on our code of conduct, and the process for submitting pull requests.

Versioning

See CHANGELOG for a history of changes to this repository.

Authors

Stephen Kirk, Paul Queruel, Ronan Kileen

License

This project is licensed under the Apache 2 License - see the LICENSE file for details.

Acknowledgments

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.