[Major] Moved the auditing trail to the ElementMaps themselves
This means that we can't access the ElementMaps from the Realms, but must use the TX (this was better anyhow)
This commit is contained in:
parent
72ff553e74
commit
e84daf14b7
|
@ -86,7 +86,7 @@ public class XmlAuditDao implements AuditDao {
|
|||
SubTypeRef subTypeRef = getTypeRef(type);
|
||||
Set<String> keySet = this.tx.getMetadataDao().queryKeySet(subTypeRef);
|
||||
for (String key : keySet) {
|
||||
ObjectRef objectRef = subTypeRef.getChildIdRef(tx, key);
|
||||
ObjectRef objectRef = subTypeRef.getChildIdRef(this.tx, key);
|
||||
Audit audit = this.tx.getObjectDao().queryById(objectRef);
|
||||
if (dateRange.contains(audit.getDate()))
|
||||
size++;
|
||||
|
@ -117,7 +117,7 @@ public class XmlAuditDao implements AuditDao {
|
|||
SubTypeRef subTypeRef = getTypeRef(type);
|
||||
Set<String> keySet = this.tx.getMetadataDao().queryKeySet(subTypeRef);
|
||||
for (String key : keySet) {
|
||||
ObjectRef objectRef = subTypeRef.getChildIdRef(tx, key);
|
||||
ObjectRef objectRef = subTypeRef.getChildIdRef(this.tx, key);
|
||||
Audit audit = this.tx.getObjectDao().queryById(objectRef);
|
||||
if (dateRange.contains(audit.getDate()))
|
||||
audits.add(audit);
|
||||
|
@ -177,7 +177,7 @@ public class XmlAuditDao implements AuditDao {
|
|||
SubTypeRef subTypeRef = getTypeRef(type);
|
||||
Set<String> keySet = this.tx.getMetadataDao().queryKeySet(subTypeRef);
|
||||
for (String key : keySet) {
|
||||
ObjectRef objectRef = subTypeRef.getChildIdRef(tx, key);
|
||||
ObjectRef objectRef = subTypeRef.getChildIdRef(this.tx, key);
|
||||
Audit audit = this.tx.getObjectDao().queryById(objectRef);
|
||||
if (dateRange.contains(audit.getDate())) {
|
||||
PersistenceContext<Audit> ctx = this.tx.getObjectDao().createCtx(objectRef);
|
||||
|
|
|
@ -77,6 +77,7 @@ public class XmlPersistenceHandler extends StrolchComponent implements Persisten
|
|||
super.initialize(componentConfiguration);
|
||||
}
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
@Override
|
||||
public StrolchTransaction openTx(StrolchRealm realm, Certificate certificate, String action) {
|
||||
PersistenceTransaction tx = this.persistenceManager.openTx(realm.getRealm());
|
||||
|
|
|
@ -15,17 +15,13 @@
|
|||
*/
|
||||
package li.strolch.persistence.xml;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import li.strolch.agent.api.StrolchRealm;
|
||||
import li.strolch.model.StrolchRootElement;
|
||||
import li.strolch.persistence.api.AbstractTransaction;
|
||||
import li.strolch.persistence.api.PersistenceHandler;
|
||||
import ch.eitchnet.privilege.model.Certificate;
|
||||
import ch.eitchnet.xmlpers.api.ModificationResult;
|
||||
import ch.eitchnet.xmlpers.api.PersistenceContext;
|
||||
import ch.eitchnet.xmlpers.api.PersistenceTransaction;
|
||||
import ch.eitchnet.xmlpers.api.TransactionResult;
|
||||
|
||||
|
@ -53,37 +49,9 @@ public class XmlStrolchTransaction extends AbstractTransaction {
|
|||
Set<String> keys = result.getKeys();
|
||||
for (String key : keys) {
|
||||
ModificationResult modificationResult = result.getModificationResult(key);
|
||||
|
||||
List<StrolchRootElement> created = new ArrayList<>();
|
||||
List<StrolchRootElement> updated = new ArrayList<>();
|
||||
List<StrolchRootElement> deleted = new ArrayList<>();
|
||||
|
||||
List<Object> createdCtx = modificationResult.getCreated();
|
||||
for (Object object : createdCtx) {
|
||||
@SuppressWarnings("unchecked")
|
||||
PersistenceContext<StrolchRootElement> ctx = (PersistenceContext<StrolchRootElement>) object;
|
||||
if (ctx.getObject() != null)
|
||||
created.add(ctx.getObject());
|
||||
}
|
||||
List<Object> updatedCtx = modificationResult.getUpdated();
|
||||
for (Object object : updatedCtx) {
|
||||
@SuppressWarnings("unchecked")
|
||||
PersistenceContext<StrolchRootElement> ctx = (PersistenceContext<StrolchRootElement>) object;
|
||||
if (ctx.getObject() != null)
|
||||
updated.add(ctx.getObject());
|
||||
}
|
||||
List<Object> deletedCtx = modificationResult.getDeleted();
|
||||
for (Object object : deletedCtx) {
|
||||
@SuppressWarnings("unchecked")
|
||||
PersistenceContext<StrolchRootElement> ctx = (PersistenceContext<StrolchRootElement>) object;
|
||||
if (ctx.getObject() != null)
|
||||
deleted.add(ctx.getObject());
|
||||
}
|
||||
|
||||
li.strolch.persistence.api.ModificationResult mr = new li.strolch.persistence.api.ModificationResult(key,
|
||||
created, updated, deleted);
|
||||
|
||||
txResult.addModificationResult(mr);
|
||||
txResult.incCreated(modificationResult.getCreated().size());
|
||||
txResult.incUpdated(modificationResult.getUpdated().size());
|
||||
txResult.incDeleted(modificationResult.getDeleted().size());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ import ch.eitchnet.privilege.model.Certificate;
|
|||
|
||||
public class ExistingDbTest {
|
||||
|
||||
private static final String TEST = "test"; //$NON-NLS-1$
|
||||
public static final String RUNTIME_PATH = "target/existingDbRuntime/"; //$NON-NLS-1$
|
||||
public static final String DB_STORE_PATH_DIR = "dbStore"; //$NON-NLS-1$
|
||||
public static final String CONFIG_SRC = "src/test/resources/existingDbRuntime"; //$NON-NLS-1$
|
||||
|
@ -59,14 +60,14 @@ public class ExistingDbTest {
|
|||
public void shouldQueryExistingData() {
|
||||
|
||||
PrivilegeHandler privilegeHandler = runtimeMock.getAgent().getContainer().getPrivilegeHandler();
|
||||
Certificate certificate = privilegeHandler.authenticate("test", "test".getBytes());
|
||||
Certificate certificate = privilegeHandler.authenticate(TEST, TEST.getBytes());
|
||||
|
||||
try (StrolchTransaction tx = runtimeMock.getRealm(StrolchConstants.DEFAULT_REALM).openTx(certificate, "test")) {
|
||||
Resource resource = tx.getResourceMap().getBy(tx, "MyType", "@1");
|
||||
assertNotNull("Should be able to read existing element from db", resource);
|
||||
try (StrolchTransaction tx = runtimeMock.getRealm(StrolchConstants.DEFAULT_REALM).openTx(certificate, TEST)) {
|
||||
Resource resource = tx.getResourceMap().getBy(tx, "MyType", "@1"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
assertNotNull("Should be able to read existing element from db", resource); //$NON-NLS-1$
|
||||
|
||||
Order order = tx.getOrderMap().getBy(tx, "MyType", "@1");
|
||||
assertNotNull("Should be able to read existing element from db", order);
|
||||
Order order = tx.getOrderMap().getBy(tx, "MyType", "@1"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
assertNotNull("Should be able to read existing element from db", order); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ import java.util.Map;
|
|||
import li.strolch.model.Order;
|
||||
import li.strolch.model.Resource;
|
||||
import li.strolch.model.State;
|
||||
import li.strolch.model.StrolchElement;
|
||||
import li.strolch.model.StrolchRootElement;
|
||||
import li.strolch.model.Tags;
|
||||
import li.strolch.persistence.api.StrolchTransaction;
|
||||
import li.strolch.runtime.StrolchConstants;
|
||||
|
@ -49,6 +49,7 @@ import ch.eitchnet.xmlpers.api.ModificationResult;
|
|||
*/
|
||||
public class ObserverUpdateTest {
|
||||
|
||||
private static final String TEST = "test"; //$NON-NLS-1$
|
||||
public static final String RUNTIME_PATH = "target/observerUpdateStrolchRuntime/"; //$NON-NLS-1$
|
||||
public static final String DB_STORE_PATH_DIR = "dbStore"; //$NON-NLS-1$
|
||||
public static final String CONFIG_SRC = "src/test/resources/cachedruntime"; //$NON-NLS-1$
|
||||
|
@ -89,17 +90,17 @@ public class ObserverUpdateTest {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void update(String key, List<StrolchElement> elements) {
|
||||
public void update(String key, List<StrolchRootElement> elements) {
|
||||
getModificationResult(key).getUpdated().addAll(elements);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(String key, List<StrolchElement> elements) {
|
||||
public void remove(String key, List<StrolchRootElement> elements) {
|
||||
getModificationResult(key).getDeleted().addAll(elements);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(String key, List<StrolchElement> elements) {
|
||||
public void add(String key, List<StrolchRootElement> elements) {
|
||||
getModificationResult(key).getCreated().addAll(elements);
|
||||
}
|
||||
}
|
||||
|
@ -109,26 +110,26 @@ public class ObserverUpdateTest {
|
|||
|
||||
// register an observer for orders and resources
|
||||
ElementAddedObserver observer = new ElementAddedObserver();
|
||||
runtimeMock.getContainer().getComponent(ObserverHandler.class).registerObserver(Tags.ORDER, observer); //$NON-NLS-1$
|
||||
runtimeMock.getContainer().getComponent(ObserverHandler.class).registerObserver(Tags.RESOURCE, observer); //$NON-NLS-1$
|
||||
runtimeMock.getContainer().getComponent(ObserverHandler.class).registerObserver(Tags.ORDER, observer);
|
||||
runtimeMock.getContainer().getComponent(ObserverHandler.class).registerObserver(Tags.RESOURCE, observer);
|
||||
|
||||
PrivilegeHandler privilegeHandler = runtimeMock.getAgent().getContainer().getPrivilegeHandler();
|
||||
Certificate certificate = privilegeHandler.authenticate("test", "test".getBytes());
|
||||
Certificate certificate = privilegeHandler.authenticate(TEST, TEST.getBytes());
|
||||
|
||||
// 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.getRealm(StrolchConstants.DEFAULT_REALM).openTx(certificate, "test")) {
|
||||
try (StrolchTransaction tx = runtimeMock.getRealm(StrolchConstants.DEFAULT_REALM).openTx(certificate, TEST)) {
|
||||
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.getRealm(StrolchConstants.DEFAULT_REALM).openTx(certificate, "test")) {
|
||||
try (StrolchTransaction tx = runtimeMock.getRealm(StrolchConstants.DEFAULT_REALM).openTx(certificate, TEST)) {
|
||||
tx.getResourceMap().add(tx, newResource);
|
||||
}
|
||||
|
||||
assertEquals(2, observer.results.size());
|
||||
assertEquals(1, observer.results.get(Tags.ORDER).getCreated().size()); //$NON-NLS-1$
|
||||
assertEquals(1, observer.results.get(Tags.RESOURCE).getCreated().size()); //$NON-NLS-1$
|
||||
assertEquals(1, observer.results.get(Tags.ORDER).getCreated().size());
|
||||
assertEquals(1, observer.results.get(Tags.RESOURCE).getCreated().size());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue