Version 4 · Migration

Maven-Lab Blueprint

Ein kleines Multi-Modul-Projekt zeigt, wie Legacy-Adapter, Domain Core, moderne API und OpenShift-Manifeste sauber getrennt werden.

Migration-ÜbersichtStartseite
Projektstruktur

Die Maven-Struktur dient als Lernlabor. Sie ist bewusst klein, trennt aber die wichtigsten Verantwortlichkeiten: Domäne, Legacy-Adapter, moderne API, Migrations-Tests und OpenShift-Manifeste.

Module
ModulZweck
domain-coreFachliche Modelle, Policies, Ports. Keine WebSphere- oder OpenShift-Abhängigkeit.
adapter-websphereKapselt alte JNDI/SOAP/MQ-Zugriffe. Pattern: Adapter.
app-modern-apiREST/API-Schicht und Use-Case-Orchestrierung. Pattern: Facade/Application Service.
migration-testsGolden Master, Contract Tests, Vergleich Legacy vs Modern.
openshift-manifestsDeployment, Service, Route, ConfigMap, Secret-Beispiele.
Wichtige Code-Idee
Use Case aus dem Maven-Lab mit Pattern-Kommentaren
public final class CreateInvoiceUseCase {
    private final CustomerPort customerPort;          // Pattern: Ports and Adapters
    private final InvoiceRepository repository;      // Pattern: Repository
    private final InvoicePolicy policy;              // Pattern: Policy / Specification
    private final DomainEventPublisher events;       // Pattern: Outbox Publisher

    public CreateInvoiceUseCase(CustomerPort customerPort,
                                InvoiceRepository repository,
                                InvoicePolicy policy,
                                DomainEventPublisher events) {
        this.customerPort = customerPort;
        this.repository = repository;
        this.policy = policy;
        this.events = events;
    }

    public InvoiceResult handle(CreateInvoiceCommand command) {
        CustomerSnapshot customer = customerPort.load(command.customerNo());
        Invoice invoice = policy.createDraft(command, customer);
        repository.save(invoice);
        events.publish(invoice.createdEvent());
        return InvoiceResult.ok(invoice.number(), invoice.total());
    }
}
Nächster großer Schritt
Empfohlen: Danach kann Version 5 das Maven-Projekt deutlich ausbauen: echte Tests, mehr Klassen, lokale Docker-Compose-Testumgebung, OpenShift-Overlays und Refactoring-Szenarien als Exercises.
⌂ Cockpit