No description
  • Java 96.9%
  • Shell 3.1%
Find a file
Johan Maasing 84db40740e
Add Apache License 2.0 to project
- 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>
2025-10-16 11:28:12 +02:00
vibe-assembly Initial commit: Vibe Generator multi-module Maven project 2025-10-16 11:15:46 +02:00
vibe-generator Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00
vibe-transport Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00
vibe-transport-kafka Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00
.gitignore Initial commit: Vibe Generator multi-module Maven project 2025-10-16 11:15:46 +02:00
LICENSE Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00
pom.xml Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00
prompts.md Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00
README.md Add Apache License 2.0 to project 2025-10-16 11:28:12 +02:00

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 vibefx topic
  • 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:

  • --brokers or -b: Kafka broker connection string (non-empty)
  • --name or -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.