Legacy Claims Portal 🏠 Home 📘 Lernpfad 🧪 Workbook 📚 Handbuch 🧩 Patterns 🧾 Lizenzen 🔎 Archiv

Musterlösungen

Musterlösungen

Diese Musterlösungen sind bewusst kompakt. Sie zeigen die Denkweise, nicht nur eine richtige Zeile Code.

Lösung zu Refactoring Lab 1

Eine sinnvolle Verantwortungskarte:

VerantwortungLegacy-StelleZiel-BausteinRisiko
Benutzerrolle prüfenJaasRoleChecker / EJB ContextAuthorizationPolicy + SecurityContextPortfalsches Role Mapping
Claim ladenLegacyClaimDaoClaimRepositoryStored-Procedure-Seiteneffekte
Dokumente prüfenSOAP/DMS AdapterDocumentVerificationPortTimeouts, alte Fehlercodes
Fraud bewertenFraudRiskSoapClientFraudRiskPortinkonsistente Risk Scores
Zahlung freigebenPaymentReleaseSoapClientPaymentReleasePort + Idempotenzdoppelte Zahlung
Audit schreibenStored Procedure / LoggerAuditLogPortCompliance-Lücke
Benachrichtigung sendenJMS/MailOutbox + Notification Adapterdoppelte oder fehlende Nachricht

Lösung zu Refactoring Lab 2

Ein guter Characterization Test prüft nicht nur den Return-Wert, sondern auch sichtbare Seiteneffekte:

Wichtig: Der Test darf anfangs unschön sein, solange er vorhandenes Verhalten zuverlässig dokumentiert.

Lösung zu Refactoring Lab 3

Ein Command Object ist besser, weil:

Lösung zu Refactoring Lab 4

Die Regel „geschlossener Claim darf nicht erneut freigegeben werden“ gehört in die Domain-Policy, weil sie unabhängig von REST, SOAP oder Batch gilt. Ein Controller darf höchstens Eingaben übersetzen, aber nicht fachliche Statusregeln besitzen.

Lösung zu Refactoring Lab 5

Eine gute Port-Signatur verwendet Fachbegriffe:

DocumentVerificationResult verifyDocuments(ClaimId claimId, CustomerId customerId);

Nicht gut:

SoapDocumentResponse callDocumentService(String xmlPayload);

Der Adapter übersetzt SOAP, technische Fehler, Timeouts und fremde Codes in fachlich verständliche Ergebnisse.

Lösung zu Refactoring Lab 6

Fake Ports sollten gezielt Verhalten simulieren:

So wird geprüft, ob der Handler richtig orchestriert, ohne echte Infrastruktur zu starten.

Lösung zu Refactoring Lab 7

Direkte JMS-Publizierung ist riskant, weil Datenbanktransaktion und Messaging-Transaktion auseinanderlaufen können. Outbox schreibt das Event zuerst innerhalb der DB-Transaktion. Ein separater Publisher versendet später zuverlässig und idempotent.

Lösung zu OpenShift Lab 1

Typische Zuordnung:

WebSphere-AspektOpenShift-Ziel
JNDI DataSourceSecret + ConfigMap + Deployment Env
EJB TimerCronJob
EAR DeploymentContainer Image + Deployment
JAAS RollenSecurity Adapter + Role Mapping
Server BindingsService/Route/NetworkPolicy
JVM ParameterDeployment Ressourcen + Env

Lösung zu OpenShift Lab 3

Readiness heißt: Der Pod kann Traffic annehmen. Liveness heißt: Der Prozess ist in einem Zustand, aus dem er nicht mehr selbst herauskommt. Eine kurz ausgefallene Datenbank sollte oft Readiness beeinflussen, aber nicht sofort Liveness, sonst entstehen Restart-Schleifen.

Lösung zu OpenShift Lab 6

Ein Rollback-Plan braucht:

⌂ Cockpit