[Major] moved OrderDao and ResourceDao factory methods to transaction

It makes using transaction feel easier.
This commit is contained in:
Robert von Burg 2013-12-24 00:36:29 +01:00
parent 96e679c973
commit 86dddde196
5 changed files with 29 additions and 29 deletions

View File

@ -21,8 +21,6 @@ import java.util.Properties;
import li.strolch.model.Order; import li.strolch.model.Order;
import li.strolch.model.Resource; import li.strolch.model.Resource;
import li.strolch.model.Tags; import li.strolch.model.Tags;
import li.strolch.persistence.api.OrderDao;
import li.strolch.persistence.api.ResourceDao;
import li.strolch.persistence.api.PersistenceHandler; import li.strolch.persistence.api.PersistenceHandler;
import li.strolch.persistence.api.StrolchTransaction; import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.persistence.impl.model.OrderContextFactory; import li.strolch.persistence.impl.model.OrderContextFactory;
@ -68,7 +66,7 @@ public class XmlPersistenceHandler extends StrolchComponent implements Persisten
new ResourceContextFactory()); new ResourceContextFactory());
this.persistenceManager.getCtxFactory().registerPersistenceContextFactory(Order.class, Tags.ORDER, this.persistenceManager.getCtxFactory().registerPersistenceContextFactory(Order.class, Tags.ORDER,
new OrderContextFactory()); new OrderContextFactory());
super.initialize(componentConfiguration); super.initialize(componentConfiguration);
} }
@ -86,14 +84,4 @@ public class XmlPersistenceHandler extends StrolchComponent implements Persisten
} }
return strolchTx; return strolchTx;
} }
@Override
public OrderDao getOrderDao(StrolchTransaction tx) {
return new XmlOrderDao(tx);
}
@Override
public ResourceDao getResourceDao(StrolchTransaction tx) {
return new XmlResourceDao(tx);
}
} }

View File

@ -18,6 +18,8 @@ package li.strolch.persistence.impl;
import java.util.Set; import java.util.Set;
import li.strolch.model.StrolchElement; import li.strolch.model.StrolchElement;
import li.strolch.persistence.api.OrderDao;
import li.strolch.persistence.api.ResourceDao;
import li.strolch.persistence.api.StrolchPersistenceException; import li.strolch.persistence.api.StrolchPersistenceException;
import li.strolch.persistence.api.StrolchTransaction; import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.persistence.api.TransactionCloseStrategy; import li.strolch.persistence.api.TransactionCloseStrategy;
@ -108,4 +110,14 @@ public class XmlStrolchTransaction implements StrolchTransaction {
public boolean isOpen() { public boolean isOpen() {
return this.tx.isOpen(); return this.tx.isOpen();
} }
@Override
public OrderDao getOrderDao() {
return new XmlOrderDao(this);
}
@Override
public ResourceDao getResourceDao() {
return new XmlResourceDao(this);
}
} }

View File

@ -82,13 +82,13 @@ public class ObserverUpdateTest extends AbstractDaoImplTest {
// create order // create order
Order newOrder = createOrder("MyTestOrder", "Test Name", "TestType", new Date(), State.CREATED); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ 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();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getOrderDao(tx).save(newOrder); tx.getOrderDao().save(newOrder);
} }
// create resource // create resource
Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getResourceDao(tx).save(newResource); tx.getResourceDao().save(newResource);
} }
assertEquals(2, observer.results.size()); assertEquals(2, observer.results.size());

View File

@ -40,7 +40,7 @@ public class XmlOrderDaoTest extends AbstractDaoImplTest {
// create // create
Order newOrder = createOrder("MyTestOrder", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ Order newOrder = createOrder("MyTestOrder", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getOrderDao(tx).save(newOrder); tx.getOrderDao().save(newOrder);
} }
} }
@ -50,13 +50,13 @@ public class XmlOrderDaoTest extends AbstractDaoImplTest {
// create // create
Order newOrder = createOrder(ID, NAME, TYPE); Order newOrder = createOrder(ID, NAME, TYPE);
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getOrderDao(tx).save(newOrder); tx.getOrderDao().save(newOrder);
} }
// read // read
Order readOrder = null; Order readOrder = null;
try (StrolchTransaction tx = persistenceHandler.openTx();) { 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$ assertNotNull("Should read Order with id " + ID, readOrder); //$NON-NLS-1$
@ -65,13 +65,13 @@ public class XmlOrderDaoTest extends AbstractDaoImplTest {
String newStringValue = "Giddiya!"; //$NON-NLS-1$ String newStringValue = "Giddiya!"; //$NON-NLS-1$
sParam.setValue(newStringValue); sParam.setValue(newStringValue);
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getOrderDao(tx).update(readOrder); tx.getOrderDao().update(readOrder);
} }
// read updated // read updated
Order updatedOrder = null; Order updatedOrder = null;
try (StrolchTransaction tx = persistenceHandler.openTx();) { 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$ 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$ assertFalse("Objects can't be the same reference after re-reading!", readOrder == updatedOrder); //$NON-NLS-1$
@ -80,12 +80,12 @@ public class XmlOrderDaoTest extends AbstractDaoImplTest {
// delete // delete
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getOrderDao(tx).remove(readOrder); tx.getOrderDao().remove(readOrder);
} }
// fail to re-read // fail to re-read
try (StrolchTransaction tx = persistenceHandler.openTx();) { 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$ assertNull("Should no read Order with id " + ID, order); //$NON-NLS-1$
} }
} }

View File

@ -40,7 +40,7 @@ public class XmlResourceDaoTest extends AbstractDaoImplTest {
// create // create
Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getResourceDao(tx).save(newResource); tx.getResourceDao().save(newResource);
} }
} }
@ -50,13 +50,13 @@ public class XmlResourceDaoTest extends AbstractDaoImplTest {
// create // create
Resource newResource = createResource(ID, NAME, TYPE); Resource newResource = createResource(ID, NAME, TYPE);
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getResourceDao(tx).save(newResource); tx.getResourceDao().save(newResource);
} }
// read // read
Resource readResource = null; Resource readResource = null;
try (StrolchTransaction tx = persistenceHandler.openTx();) { 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$ assertNotNull("Should read Resource with id " + ID, readResource); //$NON-NLS-1$
@ -65,13 +65,13 @@ public class XmlResourceDaoTest extends AbstractDaoImplTest {
String newStringValue = "Giddiya!"; //$NON-NLS-1$ String newStringValue = "Giddiya!"; //$NON-NLS-1$
sParam.setValue(newStringValue); sParam.setValue(newStringValue);
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getResourceDao(tx).update(readResource); tx.getResourceDao().update(readResource);
} }
// read updated // read updated
Resource updatedResource = null; Resource updatedResource = null;
try (StrolchTransaction tx = persistenceHandler.openTx();) { 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$ 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$ assertFalse("Objects can't be the same reference after re-reading!", readResource == updatedResource); //$NON-NLS-1$
@ -80,12 +80,12 @@ public class XmlResourceDaoTest extends AbstractDaoImplTest {
// delete // delete
try (StrolchTransaction tx = persistenceHandler.openTx();) { try (StrolchTransaction tx = persistenceHandler.openTx();) {
persistenceHandler.getResourceDao(tx).remove(readResource); tx.getResourceDao().remove(readResource);
} }
// fail to re-read // fail to re-read
try (StrolchTransaction tx = persistenceHandler.openTx();) { 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$ assertNull("Should no read Resource with id " + ID, resource); //$NON-NLS-1$
} }
} }