[Major] refactored how transactions are opened

Now the ElementMapHandler is the central object and clients do not use
access DAOs or the PersistenceHandler anymore. This is now transparent.
This commit is contained in:
Robert von Burg 2014-01-10 19:10:29 +01:00
parent cc4a9a4a47
commit ffc18e06d7
24 changed files with 202 additions and 165 deletions

View File

@ -0,0 +1,57 @@
/*
* Copyright 2013 Robert von Burg <eitch@eitchnet.ch>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package li.strolch.persistence.api;
import li.strolch.persistence.inmemory.InMemoryTransaction;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.agent.impl.StrolchRealm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Robert von Burg <eitch@eitchnet.ch>
*/
public abstract class AbstractTransaction implements StrolchTransaction {
protected static final Logger logger = LoggerFactory.getLogger(InMemoryTransaction.class);
private StrolchRealm realm;
/**
* @param realm
*/
public AbstractTransaction(StrolchRealm realm) {
this.realm = realm;
}
/**
* @return the realm
*/
protected StrolchRealm getRealm() {
return this.realm;
}
@Override
public ResourceMap getResourceMap() {
return this.realm.getResourceMap();
}
@Override
public OrderMap getOrderMap() {
return this.realm.getOrderMap();
}
}

View File

@ -15,12 +15,12 @@
*/
package li.strolch.persistence.api;
import li.strolch.runtime.agent.impl.StrolchRealm;
/**
* @author Robert von Burg <eitch@eitchnet.ch>
*/
public interface PersistenceHandler {
public StrolchTransaction openTx();
public StrolchTransaction openTx(String realm);
public StrolchTransaction openTx(StrolchRealm realm);
}

View File

@ -15,6 +15,9 @@
*/
package li.strolch.persistence.api;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
public interface StrolchTransaction extends AutoCloseable {
public void setCloseStrategy(TransactionCloseStrategy closeStrategy);
@ -28,6 +31,10 @@ public interface StrolchTransaction extends AutoCloseable {
public boolean isOpen();
public ResourceMap getResourceMap();
public OrderMap getOrderMap();
public OrderDao getOrderDao();
public ResourceDao getResourceDao();

View File

@ -4,9 +4,9 @@ import li.strolch.persistence.api.OrderDao;
import li.strolch.persistence.api.PersistenceHandler;
import li.strolch.persistence.api.ResourceDao;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.StrolchConstants;
import li.strolch.runtime.agent.api.StrolchComponent;
import li.strolch.runtime.agent.impl.ComponentContainerImpl;
import li.strolch.runtime.agent.impl.StrolchRealm;
public class InMemoryPersistenceHandler extends StrolchComponent implements PersistenceHandler {
@ -18,12 +18,7 @@ public class InMemoryPersistenceHandler extends StrolchComponent implements Pers
}
@Override
public StrolchTransaction openTx() {
return openTx(StrolchConstants.DEFAULT_REALM);
}
@Override
public StrolchTransaction openTx(String realm) {
public StrolchTransaction openTx(StrolchRealm realm) {
return new InMemoryTransaction(realm, this);
}

View File

@ -4,25 +4,20 @@ import java.util.Date;
import java.util.Set;
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.ResourceDao;
import li.strolch.persistence.api.StrolchPersistenceException;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.persistence.api.TransactionCloseStrategy;
import li.strolch.persistence.api.TransactionResult;
import li.strolch.persistence.api.TransactionState;
import li.strolch.runtime.agent.impl.StrolchRealm;
import li.strolch.runtime.observer.ObserverHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.eitchnet.utils.helper.StringHelper;
public class InMemoryTransaction implements StrolchTransaction {
public class InMemoryTransaction extends AbstractTransaction {
private static final Logger logger = LoggerFactory.getLogger(InMemoryTransaction.class);
private String realm;
private InMemoryPersistenceHandler persistenceHandler;
private TransactionCloseStrategy closeStrategy;
@ -34,11 +29,11 @@ public class InMemoryTransaction implements StrolchTransaction {
private TransactionResult txResult;
private boolean open;
public InMemoryTransaction(String realm, InMemoryPersistenceHandler persistenceHandler) {
public InMemoryTransaction(StrolchRealm realm, InMemoryPersistenceHandler persistenceHandler) {
super(realm);
this.persistenceHandler = persistenceHandler;
this.startTime = System.nanoTime();
this.startTimeDate = new Date();
this.realm = realm;
this.suppressUpdates = false;
this.closeStrategy = TransactionCloseStrategy.COMMIT;
}
@ -109,7 +104,7 @@ public class InMemoryTransaction implements StrolchTransaction {
this.txResult.setStartTime(this.startTimeDate);
this.txResult.setTxDuration(txDuration);
this.txResult.setCloseDuration(closeDuration);
this.txResult.setRealm(this.realm);
this.txResult.setRealm(getRealm().getRealm());
StringBuilder sb = new StringBuilder();
sb.append("TX was completed after "); //$NON-NLS-1$
@ -144,7 +139,7 @@ public class InMemoryTransaction implements StrolchTransaction {
this.txResult.setStartTime(this.startTimeDate);
this.txResult.setTxDuration(txDuration);
this.txResult.setCloseDuration(closeDuration);
this.txResult.setRealm(this.realm);
this.txResult.setRealm(getRealm().getRealm());
}
@Override

View File

@ -15,23 +15,22 @@
*/
package li.strolch.runtime.agent.api;
import li.strolch.runtime.agent.impl.StrolchRealm;
/**
* @author Robert von Burg <eitch@eitchnet.ch>
*/
public interface ComponentContainer {
public abstract StrolchAgent getAgent();
public abstract ComponentState getState();
public abstract boolean hasComponent(Class<?> clazz);
public abstract <T> T getComponent(Class<T> clazz);
public abstract OrderMap getOrderMap();
public abstract StrolchRealm getDefaultRealm();
public abstract OrderMap getOrderMap(String realm);
public abstract ResourceMap getResourceMap();
public abstract ResourceMap getResourceMap(String realm);
public abstract StrolchRealm getRealm(String realm);
}

View File

@ -47,8 +47,4 @@ public interface ElementMap<T extends StrolchElement> {
public void update(StrolchTransaction tx, T element);
public void remove(StrolchTransaction tx, T element);
public StrolchTransaction openTx();
public StrolchTransaction openTx(String realm);
}

View File

@ -15,17 +15,15 @@
*/
package li.strolch.runtime.agent.api;
import li.strolch.runtime.agent.impl.StrolchRealm;
/**
* @author Robert von Burg <eitch@eitchnet.ch>
*/
public interface ElementMapHandler {
public ResourceMap getResourceMap();
public ResourceMap getResourceMap(String realm);
public StrolchRealm getDefaultRealm();
public StrolchRealm getRealm(String realm);
public OrderMap getOrderMap();
public OrderMap getOrderMap(String realm);
}

View File

@ -100,7 +100,7 @@ public class StrolchAgent {
this.strolchConfiguration.addConfiguration(configuration.getName(), configuration);
}
ComponentContainerImpl container = new ComponentContainerImpl();
ComponentContainerImpl container = new ComponentContainerImpl(this);
this.container = container;
logger.info(MessageFormat.format("Setup Agent {0}", runtimeConfiguration.getApplicationName())); //$NON-NLS-1$

View File

@ -21,8 +21,6 @@ import java.util.Map;
import li.strolch.exception.StrolchException;
import li.strolch.runtime.StrolchConstants;
import li.strolch.runtime.agent.api.ElementMapHandler;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.agent.api.StrolchComponent;
/**
@ -41,28 +39,12 @@ public abstract class AbstractElementMapHandler extends StrolchComponent impleme
}
@Override
public ResourceMap getResourceMap() {
return getResourceMap(StrolchConstants.DEFAULT_REALM);
public StrolchRealm getDefaultRealm() {
return getRealm(StrolchConstants.DEFAULT_REALM);
}
@Override
public ResourceMap getResourceMap(String realm) {
StrolchRealm strolchRealm = getRealm(realm);
return strolchRealm.getResourceMap();
}
@Override
public OrderMap getOrderMap() {
return getOrderMap(StrolchConstants.DEFAULT_REALM);
}
@Override
public OrderMap getOrderMap(String realm) {
StrolchRealm strolchRealm = getRealm(realm);
return strolchRealm.getOrderMap();
}
private StrolchRealm getRealm(String realm) {
public StrolchRealm getRealm(String realm) {
StrolchRealm strolchRealm = this.realms.get(realm);
if (strolchRealm == null) {
String msg = "No realm is configured with the name {0}"; //$NON-NLS-1$

View File

@ -50,10 +50,11 @@ public class CachedElementMapHandler extends InMemoryElementMapHandler {
int nrOfOrders = 0;
int nrOfResources = 0;
OrderMap orderMap = getContainer().getOrderMap(realm);
ResourceMap resourceMap = getContainer().getResourceMap(realm);
StrolchRealm strolchRealm = this.realms.get(realm);
OrderMap orderMap = strolchRealm.getOrderMap();
ResourceMap resourceMap = strolchRealm.getResourceMap();
try (StrolchTransaction tx = resourceMap.openTx(realm)) {
try (StrolchTransaction tx = strolchRealm.openTx()) {
ResourceDao resourceDao = tx.getResourceDao();
Set<String> resourceTypes = resourceDao.queryTypes();
for (String type : resourceTypes) {
@ -65,7 +66,7 @@ public class CachedElementMapHandler extends InMemoryElementMapHandler {
}
}
try (StrolchTransaction tx = orderMap.openTx(realm)) {
try (StrolchTransaction tx = strolchRealm.openTx()) {
OrderDao orderDao = tx.getOrderDao();
Set<String> orderTypes = orderDao.queryTypes();
for (String type : orderTypes) {

View File

@ -22,11 +22,11 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import li.strolch.runtime.StrolchConstants;
import li.strolch.runtime.agent.api.ComponentContainer;
import li.strolch.runtime.agent.api.ComponentState;
import li.strolch.runtime.agent.api.ElementMapHandler;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.agent.api.StrolchAgent;
import li.strolch.runtime.agent.api.StrolchComponent;
import li.strolch.runtime.configuration.ComponentConfiguration;
import li.strolch.runtime.configuration.StrolchConfiguration;
@ -45,10 +45,18 @@ public class ComponentContainerImpl implements ComponentContainer {
private StrolchConfiguration strolchConfiguration;
private ComponentState state;
public ComponentContainerImpl() {
private StrolchAgent agent;
public ComponentContainerImpl(StrolchAgent agent) {
this.agent = agent;
this.state = ComponentState.UNDEFINED;
}
@Override
public StrolchAgent getAgent() {
return this.agent;
}
public ComponentState getState() {
return this.state;
}
@ -71,23 +79,13 @@ public class ComponentContainerImpl implements ComponentContainer {
}
@Override
public OrderMap getOrderMap() {
return getComponent(ElementMapHandler.class).getOrderMap();
public StrolchRealm getDefaultRealm() {
return getRealm(StrolchConstants.DEFAULT_REALM);
}
@Override
public OrderMap getOrderMap(String realm) {
return getComponent(ElementMapHandler.class).getOrderMap(realm);
}
@Override
public ResourceMap getResourceMap() {
return getComponent(ElementMapHandler.class).getResourceMap();
}
@Override
public ResourceMap getResourceMap(String realm) {
return getComponent(ElementMapHandler.class).getResourceMap(realm);
public StrolchRealm getRealm(String realm) {
return getComponent(ElementMapHandler.class).getRealm(realm);
}
private void initializeComponent(Map<Class<?>, StrolchComponent> componentMap,

View File

@ -36,10 +36,10 @@ public class InMemoryElementListener implements StrolchElementListener {
private ResourceMap resourceMap;
private OrderMap orderMap;
public InMemoryElementListener(StrolchTransaction tx, ResourceMap resourceMap, OrderMap orderMap) {
public InMemoryElementListener(StrolchTransaction tx) {
this.tx = tx;
this.resourceMap = resourceMap;
this.orderMap = orderMap;
this.resourceMap = tx.getResourceMap();
this.orderMap = tx.getOrderMap();
this.addResources = true;
this.addOrders = true;

View File

@ -47,7 +47,7 @@ public class InMemoryElementMapHandler extends AbstractElementMapHandler {
PersistenceHandler persistenceHandler = getContainer().getComponent(PersistenceHandler.class);
TransactionalResourceMap resourceMap = new TransactionalResourceMap(realm, persistenceHandler);
TransactionalOrderMap orderMap = new TransactionalOrderMap(realm, persistenceHandler);
StrolchRealm strolchRealm = new StrolchRealm(realm, resourceMap, orderMap);
StrolchRealm strolchRealm = new StrolchRealm(realm, persistenceHandler, resourceMap, orderMap);
this.realms.put(realm, strolchRealm);
}

View File

@ -15,6 +15,8 @@
*/
package li.strolch.runtime.agent.impl;
import li.strolch.persistence.api.PersistenceHandler;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
@ -26,9 +28,11 @@ public class StrolchRealm {
private String realm;
private ResourceMap resourceMap;
private OrderMap orderMap;
private PersistenceHandler persistenceHandler;
public StrolchRealm(String realm, ResourceMap resourceMap, OrderMap orderMap) {
public StrolchRealm(String realm, PersistenceHandler persistenceHandler, ResourceMap resourceMap, OrderMap orderMap) {
this.realm = realm;
this.persistenceHandler = persistenceHandler;
this.resourceMap = resourceMap;
this.orderMap = orderMap;
}
@ -40,6 +44,10 @@ public class StrolchRealm {
return this.realm;
}
public StrolchTransaction openTx() {
return this.persistenceHandler.openTx(this);
}
/**
* @return the resourceMap
*/

View File

@ -90,14 +90,4 @@ public abstract class TransactionalElementMap<T extends StrolchElement, U extend
public void remove(StrolchTransaction tx, T element) {
getDao(tx).remove(element);
}
@Override
public StrolchTransaction openTx() {
return this.persistenceHandler.openTx();
}
@Override
public StrolchTransaction openTx(String realm) {
return this.persistenceHandler.openTx(realm);
}
}

View File

@ -44,13 +44,15 @@ public class TransactionalElementMapHandler extends InMemoryElementMapHandler {
int nrOfOrders = 0;
int nrOfResources = 0;
OrderMap orderMap = getContainer().getOrderMap(realm);
try (StrolchTransaction tx = orderMap.openTx(realm)) {
StrolchRealm strolchRealm = this.realms.get(realm);
OrderMap orderMap = strolchRealm.getOrderMap();
ResourceMap resourceMap = strolchRealm.getResourceMap();
try (StrolchTransaction tx = strolchRealm.openTx()) {
nrOfOrders = orderMap.getAllKeys(tx).size();
}
ResourceMap resourceMap = getContainer().getResourceMap(realm);
try (StrolchTransaction tx = resourceMap.openTx(realm)) {
try (StrolchTransaction tx = strolchRealm.openTx()) {
nrOfResources = resourceMap.getAllKeys(tx).size();
}

View File

@ -24,8 +24,6 @@ import li.strolch.model.xml.XmlModelDefaultHandler.XmlModelStatistics;
import li.strolch.model.xml.XmlModelFileHandler;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.StrolchConstants;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.agent.api.StrolchAgent;
import li.strolch.runtime.configuration.ComponentConfiguration;
import li.strolch.runtime.configuration.RuntimeConfiguration;
@ -79,13 +77,11 @@ public class TransientElementMapHandler extends InMemoryElementMapHandler {
for (String realm : this.realms.keySet()) {
StrolchRealm strolchRealm = this.realms.get(realm);
ResourceMap resourceMap = strolchRealm.getResourceMap();
OrderMap orderMap = strolchRealm.getOrderMap();
File modelFile = this.realmModelFiles.get(realm);
XmlModelStatistics statistics;
try (StrolchTransaction tx = resourceMap.openTx(realm)) {
InMemoryElementListener elementListener = new InMemoryElementListener(tx, resourceMap, orderMap);
try (StrolchTransaction tx = strolchRealm.openTx()) {
InMemoryElementListener elementListener = new InMemoryElementListener(tx);
XmlModelFileHandler handler = new XmlModelFileHandler(elementListener, modelFile);
handler.parseFile();
statistics = handler.getStatistics();

View File

@ -18,13 +18,17 @@ package li.strolch.service.api;
import java.text.MessageFormat;
import li.strolch.exception.StrolchException;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.agent.api.ComponentContainer;
import li.strolch.runtime.agent.api.ElementMapHandler;
import li.strolch.runtime.agent.impl.StrolchRealm;
import li.strolch.runtime.configuration.RuntimeConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.eitchnet.privilege.model.Certificate;
/**
* @author Robert von Burg <eitch@eitchnet.ch>
*/
@ -33,30 +37,53 @@ public abstract class AbstractService<T extends ServiceArgument, U extends Servi
protected static final Logger logger = LoggerFactory.getLogger(AbstractService.class);
private static final long serialVersionUID = 1L;
private DefaultServiceHandler serviceHandler;
private ComponentContainer container;
private Certificate certificate;
/**
* @param serviceHandler
* the serviceHandler to set
* @param container
* the container to set
*/
public void setServiceHandler(DefaultServiceHandler serviceHandler) {
this.serviceHandler = serviceHandler;
public void setContainer(ComponentContainer container) {
this.container = container;
}
public <V> V getComponent(Class<V> clazz) {
return this.serviceHandler.getComponent(clazz);
/**
* @param certificate
* the certificate to set
*/
public void setCertificate(Certificate certificate) {
this.certificate = certificate;
}
public RuntimeConfiguration getRuntimeConfiguration() {
return this.serviceHandler.getRuntimeConfiguration();
/**
* @return the certificate
*/
protected Certificate getCertificate() {
return this.certificate;
}
public ResourceMap getResourceMap(String realm) {
return this.serviceHandler.getResourceMap(realm);
/**
* @return the container
*/
protected ComponentContainer getContainer() {
return this.container;
}
public OrderMap getOrderMap(String realm) {
return this.serviceHandler.getOrderMap(realm);
protected <V> V getComponent(Class<V> clazz) {
return this.container.getComponent(clazz);
}
protected RuntimeConfiguration getRuntimeConfiguration() {
return this.container.getAgent().getStrolchConfiguration().getRuntimeConfiguration();
}
protected StrolchRealm getRealm(String realm) {
return getComponent(ElementMapHandler.class).getRealm(realm);
}
protected StrolchTransaction openTx(String realm) {
return getComponent(ElementMapHandler.class).getRealm(realm).openTx();
}
@Override

View File

@ -16,9 +16,7 @@
package li.strolch.service.api;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.configuration.RuntimeConfiguration;
import li.strolch.runtime.agent.api.ComponentContainer;
import ch.eitchnet.privilege.model.Restrictable;
/**
@ -26,28 +24,23 @@ import ch.eitchnet.privilege.model.Restrictable;
*/
public abstract class Command implements Restrictable {
private final DefaultServiceHandler serviceHandler;
private final ComponentContainer container;
private final StrolchTransaction tx;
public Command(DefaultServiceHandler serviceHandler, StrolchTransaction tx) {
this.serviceHandler = serviceHandler;
public Command(ComponentContainer container, StrolchTransaction tx) {
this.container = container;
this.tx = tx;
}
public <V> V getComponent(Class<V> clazz) {
return this.serviceHandler.getComponent(clazz);
return this.container.getComponent(clazz);
}
public RuntimeConfiguration getRuntimeConfiguration() {
return this.serviceHandler.getRuntimeConfiguration();
}
public ResourceMap getResourceMap(String realm) {
return this.serviceHandler.getResourceMap(realm);
}
public OrderMap getOrderMap(String realm) {
return this.serviceHandler.getOrderMap(realm);
/**
* @return the container
*/
protected ComponentContainer getContainer() {
return this.container;
}
/**

View File

@ -18,8 +18,6 @@ package li.strolch.service.api;
import java.text.MessageFormat;
import li.strolch.exception.StrolchException;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.agent.api.StrolchComponent;
import li.strolch.runtime.agent.impl.ComponentContainerImpl;
import li.strolch.runtime.configuration.ComponentConfiguration;
@ -61,14 +59,6 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
return this.runtimeConfiguration;
}
public ResourceMap getResourceMap(String realm) {
return this.getContainer().getResourceMap(realm);
}
public OrderMap getOrderMap(String realm) {
return this.getContainer().getOrderMap(realm);
}
@Override
public <U extends ServiceResult> U doService(Certificate certificate, Service<ServiceArgument, U> service) {
return doService(certificate, service, null);
@ -94,8 +84,12 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
try {
// then perform the service
if (service instanceof AbstractService)
((AbstractService<?, ?>) service).setServiceHandler(this);
if (service instanceof AbstractService) {
AbstractService<?, ?> abstractService = (AbstractService<?, ?>) service;
abstractService.setContainer(getContainer());
abstractService.setCertificate(certificate);
}
U serviceResult = service.doService(argument);
if (serviceResult == null) {
String msg = "Service {0} is not properly implemented as it returned a null result!"; //$NON-NLS-1$

View File

@ -23,7 +23,6 @@ import java.text.MessageFormat;
import li.strolch.model.ModelGenerator;
import li.strolch.model.Resource;
import li.strolch.persistence.api.PersistenceHandler;
import li.strolch.persistence.api.ResourceDao;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.agent.api.ComponentContainer;
@ -144,8 +143,7 @@ public class ComponentContainerTest {
ServiceResultTest result = serviceHandler.doService();
assertEquals(1, result.getResult());
PersistenceHandler persistenceHandler = container.getComponent(PersistenceHandler.class);
try (StrolchTransaction tx = persistenceHandler.openTx()) {
try (StrolchTransaction tx = container.getDefaultRealm().openTx()) {
ResourceDao resourceDao = tx.getResourceDao();
resourceDao.save(ModelGenerator.createResource("@testRes", "Test Res", "Test"));
Resource queriesRes = resourceDao.queryBy("Test", "@testRes");

View File

@ -110,7 +110,7 @@ public class ControllerDependencyTest {
@Before
public void setupModel() {
this.container = new ComponentContainerImpl();
this.container = new ComponentContainerImpl(null);
this.con2 = new ComponentController(new StrolchComponent(this.container, "2"));
this.con5 = new ComponentController(new StrolchComponent(this.container, "5"));
@ -539,7 +539,7 @@ public class ControllerDependencyTest {
@Test
public void shouldAddDepedencies() {
ComponentContainerImpl container = new ComponentContainerImpl();
ComponentContainerImpl container = new ComponentContainerImpl(null);
StrolchComponent component = new StrolchComponent(container, "1"); //$NON-NLS-1$
ComponentController controller = new ComponentController(component);

View File

@ -34,8 +34,7 @@ import li.strolch.model.query.ResourceQuery;
import li.strolch.model.query.Selection;
import li.strolch.model.query.StrolchTypeNavigation;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.agent.api.OrderMap;
import li.strolch.runtime.agent.api.ResourceMap;
import li.strolch.runtime.agent.api.ComponentContainer;
import li.strolch.runtime.agent.api.StrolchAgent;
import li.strolch.runtime.query.inmemory.InMemoryOrderQueryVisitor;
import li.strolch.runtime.query.inmemory.InMemoryQuery;
@ -58,12 +57,13 @@ public class QueryTest {
StrolchAgent agent = ComponentContainerTest.startContainer(PATH_EMPTY_RUNTIME,
ComponentContainerTest.PATH_EMPTY_CONTAINER);
ComponentContainer container = agent.getContainer();
Resource res1 = createResource("@1", "Test Resource", "MyType");
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
res1.addParameter(BAG_ID, iP);
ResourceMap resourceMap = agent.getContainer().getResourceMap();
try (StrolchTransaction tx = resourceMap.openTx()) {
resourceMap.add(tx, res1);
try (StrolchTransaction tx = container.getDefaultRealm().openTx()) {
tx.getResourceMap().add(tx, res1);
}
List<Selection> elementAndSelections = new ArrayList<>();
@ -76,7 +76,7 @@ public class QueryTest {
InMemoryResourceQueryVisitor resourceQuery = new InMemoryResourceQueryVisitor();
InMemoryQuery<Resource> inMemoryQuery = resourceQuery.visit(query);
List<Resource> result;
try (StrolchTransaction tx = resourceMap.openTx()) {
try (StrolchTransaction tx = container.getDefaultRealm().openTx()) {
result = inMemoryQuery.doQuery(tx.getResourceDao());
}
assertEquals(1, result.size());
@ -88,12 +88,13 @@ public class QueryTest {
StrolchAgent agent = ComponentContainerTest.startContainer(PATH_EMPTY_RUNTIME,
ComponentContainerTest.PATH_EMPTY_CONTAINER);
ComponentContainer container = agent.getContainer();
Order o1 = createOrder("@1", "Test Order", "MyType");
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
o1.addParameter(BAG_ID, iP);
OrderMap orderMap = agent.getContainer().getOrderMap();
try (StrolchTransaction tx = orderMap.openTx()) {
orderMap.add(tx, o1);
try (StrolchTransaction tx = container.getDefaultRealm().openTx()) {
tx.getOrderMap().add(tx, o1);
}
List<Selection> elementAndSelections = new ArrayList<>();
@ -106,7 +107,7 @@ public class QueryTest {
InMemoryOrderQueryVisitor orderQuery = new InMemoryOrderQueryVisitor();
InMemoryQuery<Order> inMemoryQuery = orderQuery.visit(query);
List<Order> result;
try (StrolchTransaction tx = orderMap.openTx()) {
try (StrolchTransaction tx = container.getDefaultRealm().openTx()) {
result = inMemoryQuery.doQuery(tx.getOrderDao());
}
assertEquals(1, result.size());