# WP2-001 – Runtime Infrastructure

## Status

Completed.
**Note PL** Abgeschlossen ca. 2026-07-19 16:00

## Ziel

WP2-001 führt die in `ADR001-WP2-RUNTIME_v2.md` festgelegte Runtime
Infrastructure ein. Die bestehende Funktionalität und die öffentlichen
OpenRefine-Verträge bleiben unverändert.

## Änderungen

### Configuration

`Infrastructure\Configuration\Configuration` lädt und validiert die
bestehenden PHP-Konfigurationsdateien. Es wird kein neues
Konfigurationsformat eingeführt.

Die Service-Limits werden nun korrekt aus `providers.php > service`
gelesen.

### RuntimeContext

`Infrastructure\Runtime\RuntimeContext` enthält ausschließlich den
immutable `TenantContext`. Technische Services sind ausdrücklich nicht
Bestandteil des RuntimeContext.

### Factory-Vertrag

`Application\Reconciliation\ApplicationServiceFactory` bildet den
schmalen Vertrag, von dem der Controller abhängt.

### RuntimeFactory

`Infrastructure\Factory\RuntimeFactory` implementiert den Factory-Vertrag
und erzeugt für jede Verarbeitungseinheit einen neuen Application Service
mit einem neuen RuntimeContext.

### Controller und Einstiegspunkt

Der Controller hängt nicht mehr von einer konkreten `Closure`, sondern vom
Factory-Vertrag ab. `public/reconcile.php` verwendet die neue
`Configuration` und `RuntimeFactory`.

Eine eigenständige `CompositionRoot`-Klasse ist nicht Bestandteil dieses
Workpackages. Sie bleibt für WP2-002 vorgesehen.

## Tests

Neu hinzugefügt wurden:

- `ConfigurationTest.php`
- `RuntimeContextTest.php`
- `RuntimeFactoryTest.php`

Zusätzlich müssen die vorhandenen WP1-Tests unverändert erfolgreich
bleiben.

## Einzelne Workpackages in WP2

### WP2-001_Runtime_Infrastructure
- workpackages/WP2-001_Runtime_Infrastructure/docs/workpackages/WP2/README_WP2-001.md

### WP2-001A_Test_Bootstrap_Path_Fix
- workpackages/WP2-001A_Test_Bootstrap_Path_Fix/WP2-001A_Test_Bootstrap_Path_Fix/README_WP2-001A.md


