Vor kurzem musste ich einen Integrationstest schreiben, der eine Transaktion über mehrere SessionFactories und verschiedene Datenquellen abdeckt. Ich wollte, dass es ein Test außerhalb des Containers ist und brauchte daher eine Möglichkeit, Transaktionen über mehrere Datenquellen durchzuführen, ohne dass ein J2EE-Container dafür erforderlich ist. Einen guten Ausgangspunkt für das Schreiben von Transaktionsprüfungen finden Sie wie üblich in Spring. Sie müssen nur die Klasse AbstractTransactionSpringContextTests erweitern und der Rest ist ein Kinderspiel. Nun stellt sich die Frage, wie Sie dies für mehrere Datenquellen verkabeln?
Für den Anfang brauchen wir einen Transaktionsmanager und Datenquellen, die XA-Transaktionen unterstützen, die ich in meinem Test verwenden möchte. Dank meines Kollegen Maarten Winkels bin ich auf diesen hervorragenden Beitrag auf javaeye.com gestoßen, der ein Beispiel für die Konfiguration von Spring, Hibernate und JOTM enthält. JOTM ist ein in Java geschriebener Open-Source-Transaktionsmanager. Spring bietet über die
WEB-INF/hibernate-cfg-1.xml
org.hibernate.cfg.AnnotationConfiguration
org.hibernate.dialect.PostgreSQLDialect
WEB-INF/hibernate-cfg-2.xml
org.hibernate.cfg.AnnotationConfiguration
org.hibernate.dialect.PostgreSQLDialect
Und für die Maven-Benutzer: Alle Abhängigkeiten befinden sich im Maven-Repository. Fügen Sie also einfach die folgenden Abhängigkeiten zu Ihrem pom hinzu und los geht's!
jotm jotm 2.0.10 com.experlog xapool 1.5.0
Viel Spaß!
Verfasst von
Lars Vonk
Unsere Ideen
Weitere Blogs
Contact



