- Java 96.9%
- Shell 3.1%
- Add LICENSE file with full Apache 2.0 license text - Add Apache 2.0 license headers to all Java source files (18 files) - Add Apache 2.0 headers to all module-info.java files (3 files) - Update parent POM with license section - Update README with license information and copyright notice - All source code now properly licensed under Apache 2.0 This ensures the project has clear legal terms for use, modification, and distribution, making it safe for open source collaboration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| vibe-assembly | ||
| vibe-generator | ||
| vibe-transport | ||
| vibe-transport-kafka | ||
| .gitignore | ||
| LICENSE | ||
| pom.xml | ||
| prompts.md | ||
| README.md | ||
Vibe Generator
A modern Java 25 application that generates and sends interesting facts to Apache Kafka. Built as a demonstration of Java's latest features including virtual threads, sealed interfaces, records, and the Java Platform Module System (JPMS).
Overview
Vibe Generator is a multi-module Maven project that showcases modern Java development practices:
- Message Generation: Generates random interesting facts (currently featuring Marilyn Monroe trivia)
- Kafka Integration: Sends messages to Kafka brokers via the
vibefxtopic - Virtual Threads: Uses Project Loom's virtual threads for efficient async message production
- Modern Java: Built with Java 25 features including sealed interfaces, records, and pattern matching
- Modular Architecture: Clean separation using JPMS modules for transport layer and application logic
- CLI Interface: User-friendly command-line interface powered by Picocli
The application sends 10 messages with a 2-second delay between each message, making it ideal for testing Kafka connectivity and message flow.
Prerequisites
Java 25 or later is required to run this application.
To check your Java version:
java -version
If you need to install Java 25, download it from:
Installation
Download the Distribution
The Vibe Generator distribution is available from the Zoom Maven repository:
For Releases:
# Replace VERSION with the actual version number (e.g., 1.0.0)
curl -O https://repo.zoom.nu/repository/maven-releases/nu/zoom/vibe/vibe-assembly/VERSION/vibe-assembly-VERSION.zip
For Snapshots:
# Replace VERSION with the snapshot version (e.g., 1.0.0-SNAPSHOT)
curl -O https://repo.zoom.nu/repository/maven-snapshots/nu/zoom/vibe/vibe-assembly/VERSION/vibe-assembly-VERSION.zip
Extract the Archive
unzip vibe-VERSION.zip
cd vibe-VERSION
Usage
The application requires two mandatory arguments:
--brokersor-b: Kafka broker connection string (non-empty)--nameor-n: Sender name (minimum 3 characters)
Running the Application
./vibe-generator.sh --brokers "localhost:9092" --name "MyApplication"
Or using short options:
./vibe-generator.sh -b "localhost:9092" -n "MyApplication"
Additional Options
Display help:
./vibe-generator.sh --help
Display version:
./vibe-generator.sh --version
Building from Source
If you want to build the project from source:
# Build the entire project
mvn clean package
# The distribution ZIP will be created at:
# vibe-assembly/target/vibe-VERSION.zip
Project Structure
This is a Maven multi-module project:
- vibe-transport: Core transport layer with message definitions
- vibe-generator: Main application with CLI interface
- vibe-assembly: Distribution packaging module
Developers
- Johan
- Claude (Anthropic)
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Copyright 2025 Zoom.nu
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.