Ich versuche, eine Session Bean mit Persistenz mit Arquillian mit eingebetteten Tomee zu testen. Tomee versucht jedoch, eine Verbindung zu seiner Standard-HSQLDB-Datenquelle herzustellen.Testen mit Arquillian in Embedded Tomee: Wie HSQL-Datenquelle zu entfernen?
AFAIK, ich sollte Tomee anweisen, tomee.xml zu verwenden, wo die HSQLDB-Datenquelle kommentiert wird.
Wie kann ich das mit arquillian.xml tun? Oder gibt es einen anderen Weg?
Meine Bereitstellungsmethode:
@Deployment
public static WebArchive createTestArchive() {
MavenResolverSystem resolver = Maven.resolver();
File[] files = resolver.loadPomFromFile("pom.xml").importRuntimeDependencies().resolve().withTransitivity().asFile();
for (File f : files) {
System.out.println(f.getPath());
}
return ShrinkWrap.create(WebArchive.class)
.addClasses(MyBean.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
.addAsManifestResource("persistence.xml", "persistence.xml")
.addAsLibraries(files);
}
Mein persistence.xml:
<persistence-unit name="oracle">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.dialect"
value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:ORADB" />
<property name="hibernate.connection.username" value="gk2" />
<property name="hibernate.connection.password" value="qwerty" />
<!-- <property name="hibernate.show_sql" value="true"/> -->
<property name="hibernate.flushMode" value="FLUSH_AUTO" />
<property name="hibernate.hbm2ddl.auto" value="validate" />
</properties>
</persistence-unit>
Mein arquillian.xml:
<container qualifier="tomee" default="true">
<configuration>
<property name="httpPort">-1</property>
<property name="stopPort">-1</property>
<!--Optional Container Properties -->
<property name="properties">
</property>
</configuration>
</container>