# Apache Karavan Integration Platform

This repository contains a full-stack implementation of an integration platform built with **Apache Camel**, **Spring Boot**, and a **React-based Karavan UI** for route design and management.

## 📁 Project Structure

### 🖥️ Frontend (`/`)

- Mainly editing own instance of Apache Camel Karavan, for better usability for our users.
- files:
  - `Main.tsx`, `MainRoutes.tsx` – main entry point and route definitions
  - `PageNavigation.tsx`, `ProjectPage.tsx` – navigation and project-specific pages
  - `main.css`, `ProjectPage.css` – UI styling

### ⚙️ Backend Modules

#### `ueCamelBridge/`
- Core Spring Boot Camel integration logic
- Includes:
  - `KaravanPropertySource.java` – Custom property loader
  - `MDWRouteBuilder.java` – Main Camel route builder
  - `UECamelBridgeConfiguration.java` – Context and bean configuration
  - `GitLabKaravanSourceLoader.java` – GitLab API integration for loading routes

#### `ueCommon/`
- Shared beans and utility classes
- Connection definitions (`ConnectionJndiBean*`)
- GitLab client
- JDBC URL parser (`DbUrlParser.java`)

#### `junitRuntime/`
- Configuration and classes for running JUnit + Spock tests
- Includes: `SpringBootContextBeanFactoryPostProcessor.java`, `UEClassLoaderBeanJunitSb.java`

#### `generic_db_csv_snowflake/`
- Example integration: database to Snowflake CSV export
- Includes:
  - `GenericAnythingToCopyIntoSnowflake.java`
  - Unit test: `GenericDbCsvSnowflakeTest.java`

#### `parentProject/`
- Parent `pom.xml` for Maven multi-module build

## 🛠️ Build & Run

- > ⚠️ > ⚠️ Due to the nature of this project being part of a functional system in a corporate environment, not all components or modules can be publicly provided. The included sources represent only the parts that were either designed or significantly modified by me, and were crucial for the implementation of the application.

