# Novaris Versicherung AG — Legacy- und Modernisierungs-Lernprojekt

Lernprojekt fuer eine umfangreiche, realistische **Java-8/WebSphere-Legacy-Enterprise-
Landschaft**: EJB (Stateless/Stateful/Message-Driven/Singleton-Timer), SOAP (Client +
Service), JMS/IBM MQ, Oracle + DB2, WebSphere-/Liberty-Konfiguration — mit bewusst
"lebensechten" Klassen (inklusive der Komplexitaet, die reale Alt-Systeme mit sich bringen)
und ausfuehrlicher, erklaerender Dokumentation.

**Fachlicher Rahmen:** eine fiktive Versicherung (Policen & Schaden) — Details siehe
[`docs/00-ueberblick/systemlandschaft.md`](docs/00-ueberblick/systemlandschaft.md).

**Fokus dieser Ausbaustufe:** EJB tief verstehen (Session-Bean-Typen, CMT/BMT,
Message-Driven Beans, Timer Service, Interceptors, Application- vs. System-Exceptions,
JNDI/Packaging) — siehe [`docs/10-ejb-konzepte/`](docs/10-ejb-konzepte/).

**Migration:** die zunaechst zurueckgestellte Migration ist inzwischen **abgeschlossen** als
eigener Reactor `novaris-modern-parent` (Spring Boot, Java 17, Jakarta EE, Kafka/AMQ Streams,
OpenShift-Manifeste) - siehe [`docs/70-migration/`](docs/70-migration/) und
[`novaris-modern-parent/README.md`](novaris-modern-parent/README.md). Der hier beschriebene
Legacy-Reactor bleibt dabei bewusst unveraendert als "Vorher"-Referenz bestehen.

## Projektstatus und Kanon

- Kanonischer Workspace-Pfad: `labs/novaris-versicherung-legacy`
- Privates Repository: `nursude/novaris-versicherung-legacy`
- Standardbranch: `main`
- Status: aktiv
- Markdown ist die Dokumentationsquelle; Offline-HTML wird mit
  `python ci/scripts/md-to-html.py .` daraus neu erzeugt.
- Maschinenlesbarer Status: [`project.yaml`](project.yaml)
- KI-Arbeitsregeln: [`AGENTS.md`](AGENTS.md) sowie die verwalteten Dateien unter
  `ai/` und `.agents/` aus `nursude/ai-governance`

## Schnellstart

Voraussetzungen: JDK (Kompilierung erfolgt mit `--release 8`, jede aktuelle JDK-Version
funktioniert dafuer), Maven.

```bash
cd novaris-legacy-parent
mvn test
```

Das laeuft komplett ohne Docker/Datenbank/MQ — alle Beans sind containerfrei mit
Mockito-Mocks getestet. Echtes Oracle + echtes IBM MQ (per Docker) sowie ein echter
Open-Liberty-Serverstart sind in `novaris-integration-tests` verifiziert, siehe
[`novaris-integration-tests/README.md`](novaris-legacy-parent/novaris-integration-tests/README.md)
und [`docs/50-websphere-config/03-liberty-serverstart-verifiziert.md`](docs/50-websphere-config/03-liberty-serverstart-verifiziert.md).

Repository-Pruefungen werden unter PowerShell 7 zentral gestartet:

```powershell
pwsh -NoProfile -File ci/scripts/verify-repository.ps1 -Mode Fast
pwsh -NoProfile -File ci/scripts/verify-repository.ps1 -Mode Full
pwsh -NoProfile -File ci/scripts/verify-repository.ps1 -Mode Integration
```

`Fast` prueft beide Maven-Reaktoren und das Frontend. `Full` ergaenzt Coverage,
Produktionsbuild und Dependency-Audit. `Integration` startet zusaetzlich die
vorbereiteten Laufzeit-Integrationstests und verwendet automatisch Podman, wenn
es installiert ist; alternativ Docker. Die gemeinsam genutzte lokale Plattform
liegt im separaten Repository `shared/enterprise-infrastructure` beziehungsweise
relativ zu diesem Projekt unter `../../shared/enterprise-infrastructure`.

## Struktur

| Verzeichnis | Inhalt |
|---|---|
| `docs/` | Systemlandschaft-Ueberblick + tiefe EJB-Konzept-Dokumentation |
| `novaris-legacy-parent/` | Maven-Reactor |
| `novaris-legacy-parent/novaris-common-legacy/` | Geteilte JNDI-/Messaging-/Exception-/SOAP-Vertrags-Bausteine |
| `novaris-legacy-parent/novaris-policy-core/` | Der EJB-Kern der Policenverwaltung + SOAP-Client-Integration + Event-Publishing |
| `novaris-legacy-parent/novaris-billing-soap/` | Billing-Partnersystem (JAX-WS-SOAP-Service) |
| `novaris-legacy-parent/novaris-claims-mq/` | Schaden-Partnersystem (JMS Request/Reply) |
| `novaris-legacy-parent/novaris-notification-jms/` | Benachrichtigung (JMS Topic Publish/Subscribe) |
| `novaris-legacy-parent/novaris-policy-web-legacy-jsf/` | Novaris-Kundenportal (JSF, JAAS-Legacy-Auth) |
| `novaris-legacy-parent/novaris-policy-ear/` | EAR-Packaging (EJB- + Web-Modul) |
| `novaris-legacy-parent/novaris-integration-tests/` | Verifikation gegen echtes Oracle + echtes IBM MQ (siehe README dort) |

## CI/CD: vier Stages

`local` (IntelliJ, kein Jenkins-Job) → `test` (automatisch) → `qs` (manuelle Freigabe) →
`prod` (manuelle Freigabe, nur von `main`/`release/*`). Siehe
[`Jenkinsfile`](Jenkinsfile) und [`docs/60-ci-cd/`](docs/60-ci-cd/) fuer die vollstaendige
Erklaerung.

## Migration (Spring Boot / Jakarta EE / OpenShift) — abgeschlossen

Paralleler Reactor `novaris-modern-parent/` (eigenes `mvn test`, eigene Modul-READMEs, eigenes
`Jenkinsfile`). Strangler-Fig-Ansatz: der Legacy-Reactor oben bleibt unveraendert bestehen,
der moderne Reactor baut dieselbe Fachlogik neu auf. Die Phasen M0-M7 sind im Repository umgesetzt:
Reactor-Skeleton, EJB-zu-Spring-Kern (inkl. echtem SOAP-Client und persistiertem
Antragswizard-Ersatz), Kafka-Messaging-Redesign (`novaris-claims-modern`,
`novaris-notification-modern`), Versionssprung auf Java 17/Spring Boot 3/Jakarta EE +
Spring Security + Container-Image, OpenShift-Manifeste (inkl. Strimzi-Kafka), React-SPA + eigenes
Jenkinsfile. DB2, echtes OpenShift und automatisches Liberty-EAR-Deployment sind vorbereitet,
aber in dieser Umgebung noch nicht live verifiziert. Vollstaendiger Plan, Versionsstrategie,
EJB-zu-Spring-Abbildungstabelle, Messaging-Redesign, Refactoring-Taxonomie und OpenShift/Jenkins-Doku in
[`docs/70-migration/`](docs/70-migration/).

M6 umfasst Scheduler, Kafka-DLT, DB2-Port, Tracing, OIDC/Keycloak und Blocking-Bugfixes;
M7 ergänzt die React-SPA mit Authorization Code + PKCE. Der aktuelle, ehrliche Status steht in
[`docs/70-migration/14-verifikationsstatus.md`](docs/70-migration/14-verifikationsstatus.md).
Die empfohlenen nächsten Ausbauschritte stehen in
[`docs/70-migration/16-verbesserungsvorschlaege.md`](docs/70-migration/16-verbesserungsvorschlaege.md).

## Ausbaustufen

Siehe [`docs/00-ueberblick/systemlandschaft.md`](docs/00-ueberblick/systemlandschaft.md#liefer-phasen)
fuer die vollstaendige Roadmap (SOAP-Anbindung, JMS/MQ-Systemlandschaft, Web-Frontend/EAR/
WebSphere-Konfiguration, Integrationstests gegen echte Container).

## Lizenz / Nutzung

Privates Lernprojekt. Kein Produktionscode, keine echten Daten.
