Ich bin mit Arquillian getting started und bemerkte, dass ein Datenquellen in dem Server-spezifischen Dateien mit JTA in JPA werden, um anzugeben hat (jboss-ds.xml
, glassfish-resources.xml
, etc.), aber in Java EE> 6 es möglich sein sollte, gibt es in web.xml
(oder ejb-jar.xml
, application.xml
oder application-client.xml
), zBWie kann eine portable Datenquelle in web.xml oder anderswo in Arquillian angegeben werden?
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
[...]
<data-source>
<name>jdbc/project1</name>
<class-name>org.apache.derby.jdbc.EmbeddedDataSource</class-name>
<server-name>localhost</server-name>
<database-name>project1</database-name>
<user>project1</user>
<password>project1</password>
<property>
<name>connectionAttributes</name>
<value>create=true</value>
</property>
<transactional>true</transactional>
<isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
<initial-pool-size>2</initial-pool-size>
<max-pool-size>10</max-pool-size>
<min-pool-size>5</min-pool-size>
<max-statements>0</max-statements>
</data-source>
</web-app>
und es verwenden, wie folgt:
@Deployment
public static Archive<?> createDeployment() {
WebArchive retValue = ShrinkWrap.create(WebArchive.class)
.addClasses(MyManagedBean.class, SaveController.class, DefaultSaveController.class)
.setWebXML("web.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
Stream.of(Maven.resolver().loadPomFromFile("pom.xml").importRuntimeDependencies().resolve().withTransitivity().as(JavaArchive.class)).forEach(archive -> retValue.addAsLibrary(archive));
return retValue;
}
die Entlassungen vermeiden würde. Die Datenquelle ist jedoch nicht verfügbar, z. B. GlassFish schlägt aufgrund von Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : jdbc/project1__pm
fehl.
A MCVE ist https://github.com/krichter722/arquillian-data-source-in-web-xml.
Arquillian scheint eine Datenquelle zu schaffen, die brauchbar sein könnte, aber ich möchte die genaue Art meiner Produktionsumgebung testen, da diese Tests bereits sehr nahe an Integration sind.