Anders als Oracle (OraclePersistenceIT) und IBM MQ (IbmMqRequestReplyIT) wird DB2 in
diesem Projekt nicht gegen einen tatsaechlich laufenden Container verifiziert. Diese
Entscheidung wurde explizit mit dem Nutzer abgestimmt (nicht stillschweigend getroffen) und
ist rein pragmatisch begruendet:
Die eigentliche DB2-Konfiguration ist trotzdem vollstaendig vorhanden -
novaris-policy-core/src/main/liberty/config/server.xml (legacyContractDS) und
LegacyContractDao (novaris-policy-core) sind strukturell identisch zum Oracle-Weg, nur
eben nicht gegen einen echten Container getestet.
docker run -d --name novaris-it-db2 \
-p 0:50000 \
--privileged \
-e LICENSE=accept \
-e DB2INSTANCE=db2inst1 \
-e DB2INST1_PASSWORD=novaris_test \
-e DBNAME=NOVARIS \
icr.io/db2_community/db2:latest
--privileged ist bei diesem Image haeufig noetig (DB2 nutzt Kernel-Features, die ein
normaler Container ohne erweiterte Rechte nicht bekommt) - das allein ist schon ein Grund,
diesen Container nicht routinemaessig in jedem Testlauf zu starten.Setup has completed. - deutlich
spaeter als der reine Container-Start.jdbc:db2://localhost:<gemappter-port>/NOVARIS, Treiber
com.ibm.db2.jcc.DB2Driver (Maven-Koordinate com.ibm.db2:jcc).Nach demselben Muster wie OraclePersistenceIT liesse sich ein Db2PersistenceIT
(oder eher: ein Test direkt gegen LegacyContractDao, da dieser rohes JDBC statt JPA nutzt)
ergaenzen, sobald der Aufwand gerechtfertigt erscheint - z.B. unmittelbar vor einem echten
Migrations-/Refactoring-Vorhaben, wenn Verhaltensaenderungen an der Legacy-Datenzugriffs-
schicht abgesichert werden muessen.