[Major] moved OrderDao and ResourceDao factory methods to transaction
It makes using transaction feel easier.
This commit is contained in:
parent
bf8e41d70e
commit
941b52a511
|
@ -24,10 +24,8 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
import li.strolch.persistence.api.DbConnectionInfo;
|
||||
import li.strolch.persistence.api.OrderDao;
|
||||
import li.strolch.persistence.api.ResourceDao;
|
||||
import li.strolch.persistence.api.StrolchPersistenceException;
|
||||
import li.strolch.persistence.api.PersistenceHandler;
|
||||
import li.strolch.persistence.api.StrolchPersistenceException;
|
||||
import li.strolch.persistence.api.StrolchTransaction;
|
||||
import li.strolch.runtime.StrolchConstants;
|
||||
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||
|
@ -110,18 +108,6 @@ public class PostgreSqlPersistenceHandler extends StrolchComponent implements Pe
|
|||
return tx;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderDao getOrderDao(StrolchTransaction tx) {
|
||||
PostgreSqlStrolchTransaction sqlTx = (PostgreSqlStrolchTransaction) tx;
|
||||
return sqlTx.getOrderDao(sqlTx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceDao getResourceDao(StrolchTransaction tx) {
|
||||
PostgreSqlStrolchTransaction sqlTx = (PostgreSqlStrolchTransaction) tx;
|
||||
return sqlTx.getResourceDao(sqlTx);
|
||||
}
|
||||
|
||||
Connection getConnection(String realm) {
|
||||
DbConnectionInfo dbInfo = this.connetionInfoMap.get(realm);
|
||||
if (dbInfo == null) {
|
||||
|
|
|
@ -182,15 +182,17 @@ public class PostgreSqlStrolchTransaction implements StrolchTransaction {
|
|||
return this.open;
|
||||
}
|
||||
|
||||
OrderDao getOrderDao(PostgreSqlStrolchTransaction tx) {
|
||||
@Override
|
||||
public OrderDao getOrderDao() {
|
||||
if (this.orderDao == null)
|
||||
this.orderDao = new PostgreSqlOrderDao(tx);
|
||||
this.orderDao = new PostgreSqlOrderDao(this);
|
||||
return (OrderDao) this.orderDao;
|
||||
}
|
||||
|
||||
ResourceDao getResourceDao(PostgreSqlStrolchTransaction tx) {
|
||||
@Override
|
||||
public ResourceDao getResourceDao() {
|
||||
if (this.resourceDao == null)
|
||||
this.resourceDao = new PostgreSqlResourceDao(tx);
|
||||
this.resourceDao = new PostgreSqlResourceDao(this);
|
||||
return (ResourceDao) this.resourceDao;
|
||||
}
|
||||
|
||||
|
|
|
@ -82,13 +82,13 @@ public class ObserverUpdateTest extends AbstractDaoImplTest {
|
|||
// create order
|
||||
Order newOrder = createOrder("MyTestOrder", "Test Name", "TestType", new Date(), State.CREATED); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getOrderDao(tx).save(newOrder);
|
||||
tx.getOrderDao().save(newOrder);
|
||||
}
|
||||
|
||||
// create resource
|
||||
Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getResourceDao(tx).save(newResource);
|
||||
tx.getResourceDao().save(newResource);
|
||||
}
|
||||
|
||||
assertEquals(2, observer.results.size());
|
||||
|
|
|
@ -34,13 +34,20 @@ public class PostgreSqlOrderDaoTest extends AbstractDaoImplTest {
|
|||
private static final String NAME = "Test Order"; //$NON-NLS-1$
|
||||
private static final String TYPE = "ToStock"; //$NON-NLS-1$
|
||||
|
||||
@Test
|
||||
public void shouldStartContainer() {
|
||||
try (StrolchTransaction tx = getPersistenceHandler().openTx()) {
|
||||
tx.getOrderDao().queryKeySet();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreateOrder() {
|
||||
|
||||
// create
|
||||
Order newOrder = createOrder("MyTestOrder", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getOrderDao(tx).save(newOrder);
|
||||
tx.getOrderDao().save(newOrder);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,13 +57,13 @@ public class PostgreSqlOrderDaoTest extends AbstractDaoImplTest {
|
|||
// create
|
||||
Order newOrder = createOrder(ID, NAME, TYPE);
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getOrderDao(tx).save(newOrder);
|
||||
tx.getOrderDao().save(newOrder);
|
||||
}
|
||||
|
||||
// read
|
||||
Order readOrder = null;
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
readOrder = persistenceHandler.getOrderDao(tx).queryBy(TYPE, ID);
|
||||
readOrder = tx.getOrderDao().queryBy(TYPE, ID);
|
||||
}
|
||||
assertNotNull("Should read Order with id " + ID, readOrder); //$NON-NLS-1$
|
||||
|
||||
|
@ -65,13 +72,13 @@ public class PostgreSqlOrderDaoTest extends AbstractDaoImplTest {
|
|||
String newStringValue = "Giddiya!"; //$NON-NLS-1$
|
||||
sParam.setValue(newStringValue);
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getOrderDao(tx).update(readOrder);
|
||||
tx.getOrderDao().update(readOrder);
|
||||
}
|
||||
|
||||
// read updated
|
||||
Order updatedOrder = null;
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
updatedOrder = persistenceHandler.getOrderDao(tx).queryBy(TYPE, ID);
|
||||
updatedOrder = tx.getOrderDao().queryBy(TYPE, ID);
|
||||
}
|
||||
assertNotNull("Should read Order with id " + ID, updatedOrder); //$NON-NLS-1$
|
||||
assertFalse("Objects can't be the same reference after re-reading!", readOrder == updatedOrder); //$NON-NLS-1$
|
||||
|
@ -80,12 +87,12 @@ public class PostgreSqlOrderDaoTest extends AbstractDaoImplTest {
|
|||
|
||||
// delete
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getOrderDao(tx).remove(readOrder);
|
||||
tx.getOrderDao().remove(readOrder);
|
||||
}
|
||||
|
||||
// fail to re-read
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
Order order = persistenceHandler.getOrderDao(tx).queryBy(TYPE, ID);
|
||||
Order order = tx.getOrderDao().queryBy(TYPE, ID);
|
||||
assertNull("Should no read Order with id " + ID, order); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ public class PostgreSqlResourceDaoTest extends AbstractDaoImplTest {
|
|||
// create
|
||||
Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getResourceDao(tx).save(newResource);
|
||||
tx.getResourceDao().save(newResource);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,13 +50,13 @@ public class PostgreSqlResourceDaoTest extends AbstractDaoImplTest {
|
|||
// create
|
||||
Resource newResource = createResource(ID, NAME, TYPE);
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getResourceDao(tx).save(newResource);
|
||||
tx.getResourceDao().save(newResource);
|
||||
}
|
||||
|
||||
// read
|
||||
Resource readResource = null;
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
readResource = persistenceHandler.getResourceDao(tx).queryBy(TYPE, ID);
|
||||
readResource = tx.getResourceDao().queryBy(TYPE, ID);
|
||||
}
|
||||
assertNotNull("Should read Resource with id " + ID, readResource); //$NON-NLS-1$
|
||||
|
||||
|
@ -65,13 +65,13 @@ public class PostgreSqlResourceDaoTest extends AbstractDaoImplTest {
|
|||
String newStringValue = "Giddiya!"; //$NON-NLS-1$
|
||||
sParam.setValue(newStringValue);
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getResourceDao(tx).update(readResource);
|
||||
tx.getResourceDao().update(readResource);
|
||||
}
|
||||
|
||||
// read updated
|
||||
Resource updatedResource = null;
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
updatedResource = persistenceHandler.getResourceDao(tx).queryBy(TYPE, ID);
|
||||
updatedResource = tx.getResourceDao().queryBy(TYPE, ID);
|
||||
}
|
||||
assertNotNull("Should read Resource with id " + ID, updatedResource); //$NON-NLS-1$
|
||||
assertFalse("Objects can't be the same reference after re-reading!", readResource == updatedResource); //$NON-NLS-1$
|
||||
|
@ -80,12 +80,12 @@ public class PostgreSqlResourceDaoTest extends AbstractDaoImplTest {
|
|||
|
||||
// delete
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
persistenceHandler.getResourceDao(tx).remove(readResource);
|
||||
tx.getResourceDao().remove(readResource);
|
||||
}
|
||||
|
||||
// fail to re-read
|
||||
try (StrolchTransaction tx = persistenceHandler.openTx();) {
|
||||
Resource resource = persistenceHandler.getResourceDao(tx).queryBy(TYPE, ID);
|
||||
Resource resource = tx.getResourceDao().queryBy(TYPE, ID);
|
||||
assertNull("Should no read Resource with id " + ID, resource); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue