diff --git a/src/main/java/li/strolch/persistence/impl/XmlPersistenceHandler.java b/src/main/java/li/strolch/persistence/impl/XmlPersistenceHandler.java index 7a9417914..174482389 100644 --- a/src/main/java/li/strolch/persistence/impl/XmlPersistenceHandler.java +++ b/src/main/java/li/strolch/persistence/impl/XmlPersistenceHandler.java @@ -21,8 +21,6 @@ import java.util.Properties; import li.strolch.model.Order; import li.strolch.model.Resource; 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.StrolchTransaction; import li.strolch.persistence.impl.model.OrderContextFactory; @@ -68,7 +66,7 @@ public class XmlPersistenceHandler extends StrolchComponent implements Persisten new ResourceContextFactory()); this.persistenceManager.getCtxFactory().registerPersistenceContextFactory(Order.class, Tags.ORDER, new OrderContextFactory()); - + super.initialize(componentConfiguration); } @@ -86,14 +84,4 @@ public class XmlPersistenceHandler extends StrolchComponent implements Persisten } return strolchTx; } - - @Override - public OrderDao getOrderDao(StrolchTransaction tx) { - return new XmlOrderDao(tx); - } - - @Override - public ResourceDao getResourceDao(StrolchTransaction tx) { - return new XmlResourceDao(tx); - } } diff --git a/src/main/java/li/strolch/persistence/impl/XmlStrolchTransaction.java b/src/main/java/li/strolch/persistence/impl/XmlStrolchTransaction.java index ab4562f5d..3a9864b83 100644 --- a/src/main/java/li/strolch/persistence/impl/XmlStrolchTransaction.java +++ b/src/main/java/li/strolch/persistence/impl/XmlStrolchTransaction.java @@ -18,6 +18,8 @@ package li.strolch.persistence.impl; import java.util.Set; 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.StrolchTransaction; import li.strolch.persistence.api.TransactionCloseStrategy; @@ -108,4 +110,14 @@ public class XmlStrolchTransaction implements StrolchTransaction { public boolean isOpen() { return this.tx.isOpen(); } + + @Override + public OrderDao getOrderDao() { + return new XmlOrderDao(this); + } + + @Override + public ResourceDao getResourceDao() { + return new XmlResourceDao(this); + } } diff --git a/src/test/java/li/strolch/persistence/impl/dao/test/ObserverUpdateTest.java b/src/test/java/li/strolch/persistence/impl/dao/test/ObserverUpdateTest.java index 4681e75eb..fb8dc441b 100644 --- a/src/test/java/li/strolch/persistence/impl/dao/test/ObserverUpdateTest.java +++ b/src/test/java/li/strolch/persistence/impl/dao/test/ObserverUpdateTest.java @@ -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()); diff --git a/src/test/java/li/strolch/persistence/impl/dao/test/XmlOrderDaoTest.java b/src/test/java/li/strolch/persistence/impl/dao/test/XmlOrderDaoTest.java index 2bab875c9..ea8990dbc 100644 --- a/src/test/java/li/strolch/persistence/impl/dao/test/XmlOrderDaoTest.java +++ b/src/test/java/li/strolch/persistence/impl/dao/test/XmlOrderDaoTest.java @@ -40,7 +40,7 @@ public class XmlOrderDaoTest extends AbstractDaoImplTest { // 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 +50,13 @@ public class XmlOrderDaoTest 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 +65,13 @@ public class XmlOrderDaoTest 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 +80,12 @@ public class XmlOrderDaoTest 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$ } } diff --git a/src/test/java/li/strolch/persistence/impl/dao/test/XmlResourceDaoTest.java b/src/test/java/li/strolch/persistence/impl/dao/test/XmlResourceDaoTest.java index b4363c9be..2b6728011 100644 --- a/src/test/java/li/strolch/persistence/impl/dao/test/XmlResourceDaoTest.java +++ b/src/test/java/li/strolch/persistence/impl/dao/test/XmlResourceDaoTest.java @@ -40,7 +40,7 @@ public class XmlResourceDaoTest 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 XmlResourceDaoTest 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 XmlResourceDaoTest 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 XmlResourceDaoTest 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$ } }