Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hivemq/hivemq-hello-world-extension
HiveMQ extension for demonstrating the HiveMQ extension system
https://github.com/hivemq/hivemq-hello-world-extension
demonstration extension hello-world hivemq hivemq-extension mqtt
Last synced: about 2 hours ago
JSON representation
HiveMQ extension for demonstrating the HiveMQ extension system
- Host: GitHub
- URL: https://github.com/hivemq/hivemq-hello-world-extension
- Owner: hivemq
- License: apache-2.0
- Created: 2018-12-04T08:35:28.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-16T13:51:50.000Z (23 days ago)
- Last Synced: 2024-10-18T13:53:52.024Z (21 days ago)
- Topics: demonstration, extension, hello-world, hivemq, hivemq-extension, mqtt
- Language: Java
- Homepage: https://docs.hivemq.com/hivemq/latest/extensions/introduction.html
- Size: 298 KB
- Stars: 11
- Watchers: 18
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
:hivemq-link: https://www.hivemq.com
:hivemq-extension-docs: {hivemq-link}/docs/extensions/latest/
:hivemq-mqtt-toolbox: {hivemq-link}/mqtt-toolbox
:hivemq-support: {hivemq-link}/support/
:hivemq-testcontainer: https://github.com/hivemq/hivemq-testcontainer
:hivemq-mqtt-client: https://github.com/hivemq/hivemq-mqtt-client= HiveMQ 4 Hello World Extension
image:https://img.shields.io/badge/Extension_Type-Demonstration-orange?style=for-the-badge[Extension Type]
image:https://img.shields.io/github/v/release/hivemq/hivemq-hello-world-extension?style=for-the-badge[GitHub release (latest by date),link=https://github.com/hivemq/hivemq-hello-world-extension/releases/latest]
image:https://img.shields.io/github/license/hivemq/hivemq-hello-world-extension?style=for-the-badge&color=brightgreen[GitHub,link=LICENSE]
image:https://img.shields.io/github/actions/workflow/status/hivemq/hivemq-hello-world-extension/check.yml?branch=master&style=for-the-badge[GitHub Workflow Status,link=https://github.com/hivemq/hivemq-hello-world-extension/actions/workflows/check.yml?query=branch%3Amaster]== Purpose
This Hello World extension sets a ClientLifecycleEventListener which logs the MQTT Version and identifier of every connecting and disconnecting client and registers a PublishInboundInterceptor to modify the payload of every Publish with the topic 'hello/world' to 'Hello World!'.
We strongly recommend to read the {hivemq-extension-docs}[HiveMQ Extension Documentation] to grasp the core concepts of HiveMQ extension development.
== Installation
. Clone this repository into a Java 11 Gradle project.
. Execute the Gradle task `hivemqExtensionZip` to build the extension.
. Move the file: `build/hivemq-extension/hivemq-hello-world-extension-4.34.0.zip` to the directory: `HIVEMQ_HOME/extensions`
. Unzip the file.
. Start HiveMQ.== First Steps
=== Manual Testing
Connect with an {hivemq-mqtt-toolbox}[MQTT client] of your choice.
You should see a log message with its identifier and MQTT version.=== Automatic Testing
Execute the `HelloWorldInterceptorIT` for automatic testing of the extension.
It uses the {hivemq-testcontainer}[HiveMQ Testcontainer] to automatically package, deploy and run the extension inside a HiveMQ docker container.
The test creates a {hivemq-mqtt-client}[HiveMQ MQTT Client] to publish and receive a message with the topic 'hello/world'.
It checks whether the payload has been changed correctly to 'Hello World!'.== Next Steps
Awesome, you got your first HiveMQ 4 extension working.
Now read the {hivemq-extension-docs}[HiveMQ Extension Documentation] to see what extensions can do.
== Need Help?
If you encounter any problems, we are happy to help.
The best place to get in contact is our {hivemq-support}[support^].== Contributing
If you want to contribute to HiveMQ Hello World Extension, see the link:CONTRIBUTING.md[contribution guidelines].
== License
HiveMQ Hello World Extension is licensed under the `APACHE LICENSE, VERSION 2.0`.
A copy of the license can be found link:LICENSE[here].