Skip to content

Commit 18ab04f

Browse files
add claude config
1 parent 090c398 commit 18ab04f

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Role
6+
7+
`multiapps-controller` is the core Multi-Target Application (MTA) deployment service for Cloud Foundry. It orchestrates complex multi-app deployments via BPMN-modeled Flowable 7 workflows that drive calls to the CF Cloud Controller API. It depends on the `multiapps` library (`org.cloudfoundry.multiapps`) for MTA model objects and YAML parsing.
8+
9+
## Security Boundary
10+
11+
This is an **OPEN SOURCE** repository. Never introduce proprietary logic, credentials, or internal company context into this codebase.
12+
13+
## Tech Stack
14+
15+
- **Java 25**, multi-module Maven (11 modules), Spring 6 / Spring Security 6, deployed as a WAR
16+
- **Flowable 7** for BPMN process orchestration (deploy, undeploy, blue-green deploy workflows)
17+
- **EclipseLink 4** (JPA) with static weaving via `staticweave-maven-plugin` at compile time
18+
- **Liquibase** for DB schema migrations; **HikariCP** for connection pooling
19+
- **Immutables** for generated value objects — IDE annotation processors must be enabled
20+
- Cloud object store integrations: AWS S3, Azure Blob, GCP, Alibaba OSS (via Apache jclouds + native SDKs)
21+
- **JaCoCo** + **SonarCloud** for coverage/quality (profiles: `coverage`, `sonar`)
22+
23+
## Module Map
24+
25+
| Module | Purpose |
26+
|---|---|
27+
| `multiapps-controller-api` | Swagger-generated REST API models and endpoint interfaces |
28+
| `multiapps-controller-web` | REST controllers; builds the deployable WAR |
29+
| `multiapps-controller-process` | Flowable BPMN definitions and step implementations |
30+
| `multiapps-controller-core` | Domain model, CF client wrappers, core services |
31+
| `multiapps-controller-persistence` | File artifact storage (DB + object store) |
32+
| `multiapps-controller-client` | Extends cf-java-client with OAuth, retries, extra models |
33+
| `multiapps-controller-database-migration` | Tooling to migrate data between DB instances |
34+
| `multiapps-controller-shutdown-client` | Client for the graceful shutdown API |
35+
| `multiapps-controller-core-test` | Shared test fixtures for core |
36+
| `multiapps-controller-persistence-test` | Shared test fixtures for persistence |
37+
| `multiapps-controller-coverage` | Aggregates JaCoCo reports across all modules |
38+
39+
## Build & Test Commands
40+
41+
```bash
42+
# Full build (compiles, runs unit tests, packages WAR)
43+
mvn clean install
44+
45+
# Skip tests for faster packaging
46+
mvn clean install -DskipTests
47+
48+
# Run unit tests only (integration tests excluded by surefire config)
49+
mvn clean test
50+
51+
# Run a single test class
52+
mvn test -pl multiapps-controller-process -Dtest=MyStepTest
53+
54+
# Build a specific module and its dependencies
55+
mvn clean install -pl multiapps-controller-web --also-make
56+
57+
# Coverage report (aggregate in multiapps-controller-coverage/target/)
58+
mvn clean install -P coverage
59+
60+
# Sonar analysis
61+
mvn verify sonar:sonar -P sonar
62+
```
63+
64+
The deployable WAR is at `multiapps-controller-web/target/multiapps-controller-web-<version>.war`.
65+
66+
Integration tests (`**/*IntegrationTest`) are excluded from the default surefire run.
67+
68+
## Formatting Rule
69+
70+
Before completing any task or committing code, you **MUST** run:
71+
72+
```bash
73+
mvn spotless:apply
74+
```

0 commit comments

Comments
 (0)