https://github.com/tsukoyachi/camel-quarkus-forge
Test project: YAML-configured Apache Camel Route with native Quarkus
https://github.com/tsukoyachi/camel-quarkus-forge
apache-camel java quarkus
Last synced: about 1 month ago
JSON representation
Test project: YAML-configured Apache Camel Route with native Quarkus
- Host: GitHub
- URL: https://github.com/tsukoyachi/camel-quarkus-forge
- Owner: Tsukoyachi
- License: apache-2.0
- Created: 2025-11-15T23:48:31.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-11-16T00:24:10.000Z (7 months ago)
- Last Synced: 2025-11-16T02:23:43.008Z (7 months ago)
- Topics: apache-camel, java, quarkus
- Language: Java
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Camel Quarkus Forge
Dynamic framework for creating Apache Camel routes from YAML configuration without writing Java code.
## Features
- YAML-based route configuration
- CDI dependency injection with automatic component discovery
- Automatic URL encoding for special characters
- Route chaining via direct endpoints
- Zero-configuration component extensions
- Hot reload for development
## Supported Components
**Camel Consumers**: File, Direct, Timer, Kafka, Ibmmq
**Camel Producers**: File, Direct, Log, Kafka, Ibmmq
## Quick Start
**Development mode:**
```bash
./mvnw quarkus:dev
```
You can run a specific profile by adding `"-Dquarkus.profile=xxx"` where xxx is the application-xxx.yml you want to load.
**Build application:**
```bash
./mvnw package
```
**Run application:**
```bash
java -jar target/quarkus-app/quarkus-run.jar
```
## Configuration Example
Configure routes in `src/main/resources/application.yml` or application-xxx.yml if you want to create custom route for specific env :
```yaml
camel:
routes:
definitions:
- id: "file-to-file-route"
source:
type: "file"
properties:
path: "src/input"
delete: true
include: .*\.json
destination:
type: "file"
properties:
path: "src/output"
- id: "timer-to-log-route"
source:
type: "timer"
properties:
name: "scheduler"
period: 5000
destination:
type: "log"
properties:
name: "scheduler-log"
```
The above configuration creates two routes: one monitoring JSON files and another logging scheduled events.
## Tech Stack
- **Apache Camel Quarkus 3.29.3** - Integration framework
- **Quarkus 3.29.3** - Cloud-native Java framework
- **CDI** - Dependency injection
- **Java 21** - Programming language
---
**Author**: [Tsukoyachi](https://github.com/Tsukoyachi)