[Major] Implemented CACHED mode
This lead to refactoring of other code: - removed get*Dao() from StrolchTransaction - added StrolchTransaction.getPersistenceHandler() - removed unused variables in TransactionalElementMap - this lead to removal of constructors in subclasses - added ComponentContainer.getDataStoreMode() - added ElementMap.addAll(), removeAll() and updateAll() methods - implemented in all ElementMap implementations
This commit is contained in:
parent
6bb341964e
commit
21c5eaf78f
|
@ -27,7 +27,9 @@ import li.strolch.agent.api.StrolchComponent;
|
|||
import li.strolch.agent.impl.ComponentContainerImpl;
|
||||
import li.strolch.agent.impl.StrolchRealm;
|
||||
import li.strolch.persistence.api.DbConnectionInfo;
|
||||
import li.strolch.persistence.api.OrderDao;
|
||||
import li.strolch.persistence.api.PersistenceHandler;
|
||||
import li.strolch.persistence.api.ResourceDao;
|
||||
import li.strolch.persistence.api.StrolchPersistenceException;
|
||||
import li.strolch.persistence.api.StrolchTransaction;
|
||||
import li.strolch.runtime.StrolchConstants;
|
||||
|
@ -127,4 +129,14 @@ public class PostgreSqlPersistenceHandler extends StrolchComponent implements Pe
|
|||
throw new StrolchPersistenceException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderDao getOrderDao(StrolchTransaction tx) {
|
||||
return ((PostgreSqlStrolchTransaction) tx).getOrderDao();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceDao getResourceDao(StrolchTransaction tx) {
|
||||
return ((PostgreSqlStrolchTransaction) tx).getResourceDao();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import li.strolch.model.StrolchElement;
|
|||
import li.strolch.persistence.api.AbstractTransaction;
|
||||
import li.strolch.persistence.api.ModificationResult;
|
||||
import li.strolch.persistence.api.OrderDao;
|
||||
import li.strolch.persistence.api.PersistenceHandler;
|
||||
import li.strolch.persistence.api.ResourceDao;
|
||||
import li.strolch.persistence.api.StrolchPersistenceException;
|
||||
import li.strolch.persistence.api.TransactionCloseStrategy;
|
||||
|
@ -102,15 +103,12 @@ public class PostgreSqlStrolchTransaction extends AbstractTransaction {
|
|||
this.txResult = new TransactionResult();
|
||||
|
||||
try {
|
||||
if (this.orderDao != null) {
|
||||
if (this.orderDao != null)
|
||||
this.orderDao.commit(this.txResult);
|
||||
}
|
||||
|
||||
if (this.resourceDao != null) {
|
||||
if (this.resourceDao != null)
|
||||
this.resourceDao.commit(this.txResult);
|
||||
}
|
||||
|
||||
this.connection.commit();
|
||||
if (this.connection != null)
|
||||
this.connection.commit();
|
||||
|
||||
this.txResult.setState(TransactionState.COMMITTED);
|
||||
|
||||
|
@ -214,15 +212,13 @@ public class PostgreSqlStrolchTransaction extends AbstractTransaction {
|
|||
return this.open;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderDao getOrderDao() {
|
||||
OrderDao getOrderDao() {
|
||||
if (this.orderDao == null)
|
||||
this.orderDao = new PostgreSqlOrderDao(this);
|
||||
return (OrderDao) this.orderDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceDao getResourceDao() {
|
||||
ResourceDao getResourceDao() {
|
||||
if (this.resourceDao == null)
|
||||
this.resourceDao = new PostgreSqlResourceDao(this);
|
||||
return (ResourceDao) this.resourceDao;
|
||||
|
@ -237,4 +233,9 @@ public class PostgreSqlStrolchTransaction extends AbstractTransaction {
|
|||
}
|
||||
return this.connection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PersistenceHandler getPersistenceHandler() {
|
||||
return this.persistenceHandler;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,13 +114,13 @@ public class ObserverUpdateTest {
|
|||
// 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 = runtimeMock.getDefaultRealm().openTx();) {
|
||||
tx.getOrderDao().save(newOrder);
|
||||
tx.getOrderMap().add(tx, newOrder);
|
||||
}
|
||||
|
||||
// create resource
|
||||
Resource newResource = createResource("MyTestResource", "Test Name", "TestType"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
|
||||
try (StrolchTransaction tx = runtimeMock.getDefaultRealm().openTx();) {
|
||||
tx.getResourceDao().save(newResource);
|
||||
tx.getResourceMap().add(tx, newResource);
|
||||
}
|
||||
|
||||
assertEquals(2, observer.results.size());
|
||||
|
|
Loading…
Reference in New Issue