use of org.apache.openejb.assembler.classic.ResourceInfo in project tomee by apache.
the class AutoConfigPersistenceUnitsTest method testFromAppIdJta.
/**
* Existing data source "orange-unit-app", jta-managed
* <p/>
* Persistence xml like so:
* <p/>
* <persistence-unit name="orange-unit" />
* <p/>
* The app module id is orange-unit-app. Use orange-unit-app data source and create a new non-JtaManaged datasource
*
* @throws Exception
*/
public void testFromAppIdJta() throws Exception {
final ResourceInfo supplied = addDataSource("orange-unit-app", OrangeDriver.class, "jdbc:orange:some:stuff", true);
assertSame(supplied, resources.get(0));
final PersistenceUnitInfo unitInfo = addPersistenceUnit("orange-unit", null, null);
assertNotNull(unitInfo);
// Check results
final ResourceInfo generated = resources.get(1);
assertEquals(supplied.id + "NonJta", generated.id);
assertEquals(supplied.service, generated.service);
assertEquals(supplied.className, generated.className);
assertEquals(supplied.properties.get("JdbcDriver"), generated.properties.get("JdbcDriver"));
assertEquals(supplied.properties.get("JdbcUrl"), generated.properties.get("JdbcUrl"));
assertEquals("false", generated.properties.get("JtaManaged"));
}
use of org.apache.openejb.assembler.classic.ResourceInfo in project tomee by apache.
the class AutoConfigPersistenceUnitsTest method testSameDataSourceForBoth2.
/**
* Existing data source "Orange", not jta managed
* <p/>
* Persistence xml like so:
* <p/>
* <persistence-unit name="orange-unit">
* <jta-data-source>Orange</jta-data-source>
* <non-jta-data-source>Orange</non-jta-data-source>
* </persistence-unit>
* <p/>
* They used the same data source for both the
* jta-data-source and non-jta-data-source and we
* can determine the data source will not work as
* a jta-data-source
* <p/>
* We should generate the missing data source for them
* based on the one they supplied.
*
* @throws Exception
*/
public void testSameDataSourceForBoth2() throws Exception {
final ResourceInfo supplied = addDataSource("Orange", OrangeDriver.class, "jdbc:orange:some:stuff", false);
assertSame(supplied, resources.get(0));
final PersistenceUnitInfo unitInfo = addPersistenceUnit("orange-unit", "orange", "orange");
assertNotNull(unitInfo);
final ResourceInfo generated = resources.get(1);
assertEquals(generated.id, unitInfo.jtaDataSource);
assertEquals(supplied.id, unitInfo.nonJtaDataSource);
assertNotNull(generated);
assertEquals(supplied.id + "Jta", generated.id);
assertEquals(supplied.service, generated.service);
assertEquals(supplied.className, generated.className);
assertEquals(supplied.properties.get("JdbcDriver"), generated.properties.get("JdbcDriver"));
assertEquals(supplied.properties.get("JdbcUrl"), generated.properties.get("JdbcUrl"));
assertEquals("true", generated.properties.get("JtaManaged"));
}
use of org.apache.openejb.assembler.classic.ResourceInfo in project tomee by apache.
the class AutoConfigPersistenceUnitsTest method testFromWebAppContextNonJta.
/**
* Existing data source "orange-web", non-jta managed
* <p/>
* Application contains a web module with root context path as "orange-web"
* <p/>
* Persistence xml like so:
* <p/>
* <persistence-unit name="orange-unit" />
* <p/>
* The orange-unit app should automatically use orange-web data source and create a new non-JtaManaged datasource
*
* @throws Exception
*/
public void testFromWebAppContextNonJta() throws Exception {
final ResourceInfo supplied = addDataSource("orange-web", OrangeDriver.class, "jdbc:orange-web:some:stuff", false);
assertSame(supplied, resources.get(0));
final PersistenceUnit persistenceUnit = new PersistenceUnit("orange-unit");
final ClassLoader cl = this.getClass().getClassLoader();
final AppModule app = new AppModule(cl, "orange-app");
app.addPersistenceModule(new PersistenceModule("root", new Persistence(persistenceUnit)));
final WebApp webApp = new WebApp();
webApp.setMetadataComplete(true);
app.getWebModules().add(new WebModule(webApp, "orange-web", cl, "war", "orange-web"));
// Create app
final AppInfo appInfo = config.configureApplication(app);
assembler.createApplication(appInfo);
// Check results
final ResourceInfo generated = resources.get(1);
assertEquals(supplied.id + "Jta", generated.id);
assertEquals(supplied.service, generated.service);
assertEquals(supplied.className, generated.className);
assertEquals(supplied.properties.get("JdbcDriver"), generated.properties.get("JdbcDriver"));
assertEquals(supplied.properties.get("JdbcUrl"), generated.properties.get("JdbcUrl"));
assertEquals("true", generated.properties.get("JtaManaged"));
}
use of org.apache.openejb.assembler.classic.ResourceInfo in project tomee by apache.
the class AutoConfigPersistenceUnitsTest method testJtaRefToContrarilyConfiguredDataSource2.
/**
* Existing data source "OrangeOne", not jta managed
* <p/>
* Persistence xml like so:
* <p/>
* <persistence-unit name="orange-unit">
* <jta-data-source>OrangeOne</jta-data-source>
* </persistence-unit>
* <p/>
* This configuration should be rejected
*
* @throws Exception
*/
public void testJtaRefToContrarilyConfiguredDataSource2() throws Exception {
final ResourceInfo jta = addDataSource("OrangeOne", OrangeDriver.class, "jdbc:orange:some:stuff", false);
assertSame(jta, resources.get(0));
try {
addPersistenceUnit("orange-unit", "orangeOne", null);
fail("Configuration should be rejected");
} catch (final OpenEJBException e) {
// pass
}
}
use of org.apache.openejb.assembler.classic.ResourceInfo in project tomee by apache.
the class AutoConfigPersistenceUnitsTest method addDataSource.
private ResourceInfo addDataSource(final Class driver, final String url, final Boolean managed, final Resource resource) throws OpenEJBException {
resource.getProperties().put("JdbcDriver", driver.getName());
resource.getProperties().put("JdbcUrl", url);
// space should be trimmed later, this verifies that.
resource.getProperties().put("JtaManaged", managed + " ");
final ResourceInfo resourceInfo = config.configureService(resource, ResourceInfo.class);
if (managed == null) {
// Strip out the JtaManaged property so we can mimic
// datasources that we don't control
resourceInfo.properties.remove("JtaManaged");
}
assembler.createResource(resourceInfo);
return resourceInfo;
}
Aggregations