You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2014/06/25 08:39:08 UTC
svn commit: r1605275 -
/aries/trunk/jpa/jpa-container-itest/src/test/java/org/apache/aries/jpa/container/itest/JPAContainerDataSourceFactoryTest.java
Author: cschneider
Date: Wed Jun 25 06:39:08 2014
New Revision: 1605275
URL: http://svn.apache.org/r1605275
Log:
Improve DataSourceFactoryTest to require no external bundle
Modified:
aries/trunk/jpa/jpa-container-itest/src/test/java/org/apache/aries/jpa/container/itest/JPAContainerDataSourceFactoryTest.java
Modified: aries/trunk/jpa/jpa-container-itest/src/test/java/org/apache/aries/jpa/container/itest/JPAContainerDataSourceFactoryTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-container-itest/src/test/java/org/apache/aries/jpa/container/itest/JPAContainerDataSourceFactoryTest.java?rev=1605275&r1=1605274&r2=1605275&view=diff
==============================================================================
--- aries/trunk/jpa/jpa-container-itest/src/test/java/org/apache/aries/jpa/container/itest/JPAContainerDataSourceFactoryTest.java (original)
+++ aries/trunk/jpa/jpa-container-itest/src/test/java/org/apache/aries/jpa/container/itest/JPAContainerDataSourceFactoryTest.java Wed Jun 25 06:39:08 2014
@@ -19,36 +19,49 @@ import static org.junit.Assert.assertEqu
import static org.junit.Assert.assertNull;
import static org.ops4j.pax.exam.CoreOptions.options;
+import java.sql.Driver;
+import java.sql.SQLException;
+import java.util.Hashtable;
+import java.util.Properties;
+
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
+import javax.sql.ConnectionPoolDataSource;
+import javax.sql.DataSource;
+import javax.sql.XADataSource;
import javax.transaction.UserTransaction;
import org.apache.aries.jpa.container.itest.entities.Car;
import org.apache.aries.jpa.itest.AbstractJPAItest;
+import org.apache.derby.jdbc.EmbeddedDataSource;
+import org.apache.derby.jdbc.EmbeddedXADataSource;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.Option;
-import org.osgi.framework.BundleException;
import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.jdbc.DataSourceFactory;
public class JPAContainerDataSourceFactoryTest extends AbstractJPAItest {
private static final String DSF_TEST_UNIT = "dsf-test-unit";
private static final String DSF_XA_TEST_UNIT = "dsf-xa-test-unit";
- private static final String DERBY_DS_FACTORY_SYMBOLIC_NAME = "org.ops4j.pax.jdbc.derby";
+ @SuppressWarnings("rawtypes")
+ private ServiceRegistration reg;
+
@Before
- public void waitStartup() throws InvalidSyntaxException, BundleException {
+ public void waitStartup() throws InvalidSyntaxException {
getEMF(TEST_UNIT);
assertNull(getEMFRefs(DSF_TEST_UNIT));
assertNull(getEMFRefs(DSF_XA_TEST_UNIT));
- context().getBundleByName(DERBY_DS_FACTORY_SYMBOLIC_NAME).start();
+ reg = registerDataSourceFactory();
}
@After
- public void shutDown() throws InvalidSyntaxException, BundleException {
- context().getBundleByName(DERBY_DS_FACTORY_SYMBOLIC_NAME).stop();
+ public void shutDown() throws InvalidSyntaxException {
+ reg.unregister();
assertNull(getEMFRefs(DSF_TEST_UNIT));
assertNull(getEMFRefs(DSF_XA_TEST_UNIT));
}
@@ -97,6 +110,44 @@ public class JPAContainerDataSourceFacto
em.close();
}
+ private static class DerbyDataSourceFactory implements DataSourceFactory {
+
+ public DataSource createDataSource(Properties props)
+ throws SQLException {
+ EmbeddedDataSource ds = new EmbeddedDataSource();
+ ds.setDatabaseName("memory:TEST");
+ ds.setCreateDatabase("create");
+ return ds;
+ }
+
+ public ConnectionPoolDataSource createConnectionPoolDataSource(
+ Properties props) throws SQLException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public XADataSource createXADataSource(Properties props)
+ throws SQLException {
+ EmbeddedXADataSource ds = new EmbeddedXADataSource();
+ ds.setDatabaseName("memory:TEST");
+ ds.setCreateDatabase("create");
+ return ds;
+ }
+
+ public Driver createDriver(Properties props) throws SQLException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ private ServiceRegistration registerDataSourceFactory() {
+ Hashtable<String, Object> props = new Hashtable();
+ props.put(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS, "org.apache.derby.jdbc.EmbeddedDriver");
+ return context().registerService(DataSourceFactory.class.getName(), new DerbyDataSourceFactory(), props);
+ }
+
private Car createCar() {
Car c = new Car();
c.setNumberPlate("123456");
@@ -123,7 +174,6 @@ public class JPAContainerDataSourceFacto
ariesJpa(),
transactionWrapper(),
openJpa(),
- derbyDataSourceFactory().noStart(),
testBundle()
);
}