[Major] refactored Element maps for better handling
Now they are not components, now there is an ElementMapHandler which is the component and the OrderMap and ResourceMap can be retrieved from the ElementMapHandler
This commit is contained in:
parent
8a084d0144
commit
0254a74d16
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* 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.runtime.agent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface ComponentContainer {
|
||||||
|
|
||||||
|
public abstract boolean hasComponent(Class<?> clazz);
|
||||||
|
|
||||||
|
public abstract <T> T getComponent(Class<T> clazz);
|
||||||
|
|
||||||
|
public abstract OrderMap getOrderMap();
|
||||||
|
|
||||||
|
public abstract ResourceMap getResourceMap();
|
||||||
|
|
||||||
|
}
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
@ -29,9 +29,9 @@ import li.strolch.runtime.configuration.StrolchConfigurationException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class ComponentContainer {
|
public class ComponentContainerImpl implements ComponentContainer {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ComponentContainer.class);
|
private static final Logger logger = LoggerFactory.getLogger(ComponentContainerImpl.class);
|
||||||
|
|
||||||
private Map<Class<?>, StrolchComponent> componentMap;
|
private Map<Class<?>, StrolchComponent> componentMap;
|
||||||
private Map<String, ComponentController> controllerMap;
|
private Map<String, ComponentController> controllerMap;
|
||||||
|
@ -39,7 +39,7 @@ public class ComponentContainer {
|
||||||
private StrolchConfiguration strolchConfiguration;
|
private StrolchConfiguration strolchConfiguration;
|
||||||
private ComponentState state;
|
private ComponentState state;
|
||||||
|
|
||||||
public ComponentContainer() {
|
public ComponentContainerImpl() {
|
||||||
this.state = ComponentState.UNDEFINED;
|
this.state = ComponentState.UNDEFINED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,10 +47,12 @@ public class ComponentContainer {
|
||||||
return this.state;
|
return this.state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean hasComponent(Class<?> clazz) {
|
public boolean hasComponent(Class<?> clazz) {
|
||||||
return this.componentMap.containsKey(clazz);
|
return this.componentMap.containsKey(clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <T> T getComponent(Class<T> clazz) {
|
public <T> T getComponent(Class<T> clazz) {
|
||||||
T component = (T) this.componentMap.get(clazz);
|
T component = (T) this.componentMap.get(clazz);
|
||||||
|
@ -62,6 +64,16 @@ public class ComponentContainer {
|
||||||
return component;
|
return component;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrderMap getOrderMap() {
|
||||||
|
return getComponent(ElementMapHandler.class).getOrderMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceMap getResourceMap() {
|
||||||
|
return getComponent(ElementMapHandler.class).getResourceMap();
|
||||||
|
}
|
||||||
|
|
||||||
private void initializeComponent(Map<Class<?>, StrolchComponent> componentMap,
|
private void initializeComponent(Map<Class<?>, StrolchComponent> componentMap,
|
||||||
Map<String, ComponentController> controllerMap, ComponentConfiguration componentConfiguration) {
|
Map<String, ComponentController> controllerMap, ComponentConfiguration componentConfiguration) {
|
||||||
|
|
||||||
|
@ -86,7 +98,7 @@ public class ComponentContainer {
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
Class<StrolchComponent> strolchComponentClass = (Class<StrolchComponent>) implClass;
|
Class<StrolchComponent> strolchComponentClass = (Class<StrolchComponent>) implClass;
|
||||||
Constructor<StrolchComponent> constructor = strolchComponentClass.getConstructor(ComponentContainer.class,
|
Constructor<StrolchComponent> constructor = strolchComponentClass.getConstructor(ComponentContainerImpl.class,
|
||||||
String.class);
|
String.class);
|
||||||
StrolchComponent strolchComponent = constructor.newInstance(this, componentName);
|
StrolchComponent strolchComponent = constructor.newInstance(this, componentName);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
|
|
@ -24,32 +24,30 @@ import java.text.MessageFormat;
|
||||||
public enum DataStoreMode {
|
public enum DataStoreMode {
|
||||||
EMPTY {
|
EMPTY {
|
||||||
@Override
|
@Override
|
||||||
public ElementMapConfigurationCreator getElementMapConfigurationConfigurator() {
|
public ElementMapHandlerConfigurator getElementMapConfigurationConfigurator() {
|
||||||
return new EmptyElementMapConfigurationCreator();
|
return new EmptyElementMapHandlerConfigurator();
|
||||||
}
|
}
|
||||||
}, //
|
}, //
|
||||||
TRANSIENT {
|
TRANSIENT {
|
||||||
@Override
|
@Override
|
||||||
public ElementMapConfigurationCreator getElementMapConfigurationConfigurator() {
|
public ElementMapHandlerConfigurator getElementMapConfigurationConfigurator() {
|
||||||
return new TransientElementMapConfigurationCreator();
|
return new TransientElementMapHandlerConfigurator();
|
||||||
}
|
}
|
||||||
}, //
|
}, //
|
||||||
CACHED {
|
CACHED {
|
||||||
@Override
|
@Override
|
||||||
public ElementMapConfigurationCreator getElementMapConfigurationConfigurator() {
|
public ElementMapHandlerConfigurator getElementMapConfigurationConfigurator() {
|
||||||
throw new UnsupportedOperationException(MessageFormat.format("The mode {0} is not yet supported!", this)); //$NON-NLS-1$
|
throw new UnsupportedOperationException(MessageFormat.format("The mode {0} is not yet supported!", this)); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}, //
|
}, //
|
||||||
TRANSACTIONAL {
|
TRANSACTIONAL {
|
||||||
@Override
|
@Override
|
||||||
public ElementMapConfigurationCreator getElementMapConfigurationConfigurator() {
|
public ElementMapHandlerConfigurator getElementMapConfigurationConfigurator() {
|
||||||
throw new UnsupportedOperationException(MessageFormat.format("The mode {0} is not yet supported!", this)); //$NON-NLS-1$
|
throw new UnsupportedOperationException(MessageFormat.format("The mode {0} is not yet supported!", this)); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}; //
|
}; //
|
||||||
|
|
||||||
public ElementMapConfigurationCreator getElementMapConfigurationConfigurator() {
|
public abstract ElementMapHandlerConfigurator getElementMapConfigurationConfigurator();
|
||||||
throw new UnsupportedOperationException("Please implement in enum!"); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DataStoreMode parseDataStoreMode(String modeS) {
|
public static DataStoreMode parseDataStoreMode(String modeS) {
|
||||||
for (DataStoreMode dataStoreMode : values()) {
|
for (DataStoreMode dataStoreMode : values()) {
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
* 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.runtime.agent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
*/
|
||||||
|
public interface ElementMapHandler {
|
||||||
|
|
||||||
|
public ResourceMap getResourceMap();
|
||||||
|
|
||||||
|
public OrderMap getOrderMap();
|
||||||
|
}
|
|
@ -15,16 +15,12 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.agent;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public interface ElementMapConfigurationCreator {
|
public interface ElementMapHandlerConfigurator {
|
||||||
|
|
||||||
public List<ComponentConfiguration> getComponentConfigurations(RuntimeConfiguration runtimeConfiguration);
|
public ComponentConfiguration buildConfiguration(StrolchAgent agent);
|
||||||
}
|
}
|
|
@ -15,20 +15,25 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.agent;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class EmptyElementMapConfigurationCreator extends InMemoryElementMapConfigurationCreator {
|
public class EmptyElementMapHandler extends InMemoryElementMapHandler {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param container
|
||||||
|
* @param componentName
|
||||||
|
*/
|
||||||
|
public EmptyElementMapHandler(ComponentContainerImpl container, String componentName) {
|
||||||
|
super(container, componentName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void addConfiguration(List<ComponentConfiguration> configurations,
|
public void initialize(ComponentConfiguration configuration) {
|
||||||
RuntimeConfiguration runtimeConfiguration) {
|
this.resourceMap = new InMemoryResourceMap();
|
||||||
// nothing to do
|
this.orderMap = new InMemoryOrderMap();
|
||||||
|
super.initialize(configuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,9 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.agent;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -26,23 +25,23 @@ import li.strolch.runtime.configuration.RuntimeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class TransientElementMapConfigurationCreator extends InMemoryElementMapConfigurationCreator {
|
public class EmptyElementMapHandlerConfigurator implements ElementMapHandlerConfigurator {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void addConfiguration(List<ComponentConfiguration> configurations,
|
public ComponentConfiguration buildConfiguration(StrolchAgent agent) {
|
||||||
RuntimeConfiguration runtimeConfiguration) {
|
|
||||||
|
String name = ElementMapHandler.class.getSimpleName();
|
||||||
|
String api = ElementMapHandler.class.getName();
|
||||||
|
String impl = EmptyElementMapHandler.class.getName();
|
||||||
|
|
||||||
String name = TransientElementMapController.class.getSimpleName();
|
|
||||||
String api = TransientElementMapController.class.getName();
|
|
||||||
String impl = TransientElementMapController.class.getName();
|
|
||||||
Map<String, String> configurationValues = new HashMap<>();
|
Map<String, String> configurationValues = new HashMap<>();
|
||||||
Set<String> dependencies = new HashSet<>();
|
Set<String> dependencies = Collections.emptySet();
|
||||||
dependencies.add(ResourceMap.class.getSimpleName());
|
|
||||||
dependencies.add(OrderMap.class.getSimpleName());
|
RuntimeConfiguration runtimeConfiguration = agent.getStrolchConfiguration().getRuntimeConfiguration();
|
||||||
ComponentConfiguration configuration = new ComponentConfiguration(runtimeConfiguration, name,
|
ComponentConfiguration configuration = new ComponentConfiguration(runtimeConfiguration, name,
|
||||||
configurationValues, api, impl, dependencies);
|
configurationValues, api, impl, dependencies);
|
||||||
configurations.add(configuration);
|
|
||||||
|
return configuration;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -24,48 +24,18 @@ import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import li.strolch.model.StrolchElement;
|
import li.strolch.model.StrolchElement;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
|
||||||
import ch.eitchnet.utils.helper.StringHelper;
|
import ch.eitchnet.utils.helper.StringHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class InMemoryElementMap<T extends StrolchElement> extends StrolchComponent implements ElementMap<T> {
|
public abstract class InMemoryElementMap<T extends StrolchElement> implements ElementMap<T> {
|
||||||
|
|
||||||
private Map<String, Map<String, T>> elementMap;
|
private Map<String, Map<String, T>> elementMap;
|
||||||
|
|
||||||
/**
|
public InMemoryElementMap() {
|
||||||
* @param container
|
|
||||||
* @param componentName
|
|
||||||
*/
|
|
||||||
public InMemoryElementMap(ComponentContainer container, String componentName) {
|
|
||||||
super(container, componentName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initialize(ComponentConfiguration configuration) {
|
|
||||||
this.elementMap = new HashMap<>();
|
this.elementMap = new HashMap<>();
|
||||||
super.initialize(configuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void start() {
|
|
||||||
super.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void stop() {
|
|
||||||
this.elementMap.clear();
|
|
||||||
super.stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void destroy() {
|
|
||||||
this.elementMap = null;
|
|
||||||
super.destroy();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.runtime.agent;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
|
||||||
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public abstract class InMemoryElementMapConfigurationCreator implements ElementMapConfigurationCreator {
|
|
||||||
|
|
||||||
protected static final Logger logger = LoggerFactory.getLogger(InMemoryElementMapConfigurationCreator.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<ComponentConfiguration> getComponentConfigurations(RuntimeConfiguration runtimeConfiguration) {
|
|
||||||
List<ComponentConfiguration> configurations = new ArrayList<>();
|
|
||||||
addConfiguration(configurations, runtimeConfiguration);
|
|
||||||
addResourceMapConfiguration(configurations, runtimeConfiguration);
|
|
||||||
addOrderMapConfiguration(configurations, runtimeConfiguration);
|
|
||||||
return configurations;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void addConfiguration(List<ComponentConfiguration> configurations,
|
|
||||||
RuntimeConfiguration runtimeConfiguration);
|
|
||||||
|
|
||||||
protected void addResourceMapConfiguration(List<ComponentConfiguration> configurations,
|
|
||||||
RuntimeConfiguration runtimeConfiguration) {
|
|
||||||
|
|
||||||
String name = ResourceMap.class.getSimpleName();
|
|
||||||
String api = ResourceMap.class.getName();
|
|
||||||
String impl = InMemoryResourceMap.class.getName();
|
|
||||||
Map<String, String> configurationValues = new HashMap<>();
|
|
||||||
Set<String> dependencies = Collections.emptySet();
|
|
||||||
ComponentConfiguration configuration = new ComponentConfiguration(runtimeConfiguration, name,
|
|
||||||
configurationValues, api, impl, dependencies);
|
|
||||||
configurations.add(configuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void addOrderMapConfiguration(List<ComponentConfiguration> configurations,
|
|
||||||
RuntimeConfiguration runtimeConfiguration) {
|
|
||||||
|
|
||||||
String name = OrderMap.class.getSimpleName();
|
|
||||||
String api = OrderMap.class.getName();
|
|
||||||
String impl = InMemoryOrderMap.class.getName();
|
|
||||||
Map<String, String> configurationValues = new HashMap<>();
|
|
||||||
Set<String> dependencies = Collections.emptySet();
|
|
||||||
|
|
||||||
ComponentConfiguration configuration = new ComponentConfiguration(runtimeConfiguration, name,
|
|
||||||
configurationValues, api, impl, dependencies);
|
|
||||||
configurations.add(configuration);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* 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.runtime.agent;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public abstract class InMemoryElementMapHandler extends StrolchComponent implements ElementMapHandler {
|
||||||
|
|
||||||
|
protected ResourceMap resourceMap;
|
||||||
|
protected OrderMap orderMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param container
|
||||||
|
* @param componentName
|
||||||
|
*/
|
||||||
|
public InMemoryElementMapHandler(ComponentContainerImpl container, String componentName) {
|
||||||
|
super(container, componentName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the resourceMap
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ResourceMap getResourceMap() {
|
||||||
|
assertContainerStarted();
|
||||||
|
return this.resourceMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the orderMap
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OrderMap getOrderMap() {
|
||||||
|
assertContainerStarted();
|
||||||
|
return this.orderMap;
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,7 +16,6 @@
|
||||||
package li.strolch.runtime.agent;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import li.strolch.model.Order;
|
import li.strolch.model.Order;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -24,11 +23,5 @@ import li.strolch.runtime.component.ComponentContainer;
|
||||||
*/
|
*/
|
||||||
public class InMemoryOrderMap extends InMemoryElementMap<Order> implements OrderMap {
|
public class InMemoryOrderMap extends InMemoryElementMap<Order> implements OrderMap {
|
||||||
|
|
||||||
/**
|
// marker class
|
||||||
* @param container
|
|
||||||
* @param componentName
|
|
||||||
*/
|
|
||||||
public InMemoryOrderMap(ComponentContainer container, String componentName) {
|
|
||||||
super(container, componentName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
package li.strolch.runtime.agent;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import li.strolch.model.Resource;
|
import li.strolch.model.Resource;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -24,11 +23,5 @@ import li.strolch.runtime.component.ComponentContainer;
|
||||||
*/
|
*/
|
||||||
public class InMemoryResourceMap extends InMemoryElementMap<Resource> implements ResourceMap {
|
public class InMemoryResourceMap extends InMemoryElementMap<Resource> implements ResourceMap {
|
||||||
|
|
||||||
/**
|
// marker class
|
||||||
* @param container
|
|
||||||
* @param componentName
|
|
||||||
*/
|
|
||||||
public InMemoryResourceMap(ComponentContainer container, String componentName) {
|
|
||||||
super(container, componentName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -25,7 +25,7 @@ public class SimplePostInitializer extends StrolchComponent implements PostIniti
|
||||||
* @param container
|
* @param container
|
||||||
* @param componentName
|
* @param componentName
|
||||||
*/
|
*/
|
||||||
public SimplePostInitializer(ComponentContainer container, String componentName) {
|
public SimplePostInitializer(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,7 @@ package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
import li.strolch.runtime.configuration.ConfigurationParser;
|
import li.strolch.runtime.configuration.ConfigurationParser;
|
||||||
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
||||||
|
@ -30,7 +28,6 @@ import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class StrolchAgent {
|
public class StrolchAgent {
|
||||||
|
|
||||||
|
@ -38,7 +35,7 @@ public class StrolchAgent {
|
||||||
public static final String PROP_DATA_STORE_FILE = "dataStoreFile"; //$NON-NLS-1$
|
public static final String PROP_DATA_STORE_FILE = "dataStoreFile"; //$NON-NLS-1$
|
||||||
private static final Logger logger = LoggerFactory.getLogger(StrolchAgent.class);
|
private static final Logger logger = LoggerFactory.getLogger(StrolchAgent.class);
|
||||||
|
|
||||||
private ComponentContainer container;
|
private ComponentContainerImpl container;
|
||||||
private StrolchConfiguration strolchConfiguration;
|
private StrolchConfiguration strolchConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,17 +81,31 @@ public class StrolchAgent {
|
||||||
RuntimeConfiguration runtimeConfiguration = this.strolchConfiguration.getRuntimeConfiguration();
|
RuntimeConfiguration runtimeConfiguration = this.strolchConfiguration.getRuntimeConfiguration();
|
||||||
DataStoreMode dataStoreMode = DataStoreMode.parseDataStoreMode(runtimeConfiguration.getString(
|
DataStoreMode dataStoreMode = DataStoreMode.parseDataStoreMode(runtimeConfiguration.getString(
|
||||||
PROP_DATA_STORE_MODE, null));
|
PROP_DATA_STORE_MODE, null));
|
||||||
ElementMapConfigurationCreator elementMapConfigurationCreator = dataStoreMode
|
|
||||||
.getElementMapConfigurationConfigurator();
|
|
||||||
List<ComponentConfiguration> componentConfigurations = elementMapConfigurationCreator
|
|
||||||
.getComponentConfigurations(runtimeConfiguration);
|
|
||||||
for (ComponentConfiguration configuration : componentConfigurations) {
|
|
||||||
this.strolchConfiguration.addConfiguration(configuration.getName(), configuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
ComponentContainer container = new ComponentContainer();
|
ElementMapHandlerConfigurator mapHandlerConfigurator = dataStoreMode.getElementMapConfigurationConfigurator();
|
||||||
|
ComponentConfiguration configuration = mapHandlerConfigurator.buildConfiguration(this);
|
||||||
|
this.strolchConfiguration.addConfiguration(configuration.getName(), configuration);
|
||||||
|
|
||||||
|
ComponentContainerImpl container = new ComponentContainerImpl();
|
||||||
this.container = container;
|
this.container = container;
|
||||||
|
|
||||||
logger.info(MessageFormat.format("Setup Agent {0}", runtimeConfiguration.getApplicationName())); //$NON-NLS-1$
|
logger.info(MessageFormat.format("Setup Agent {0}", runtimeConfiguration.getApplicationName())); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResourceMap getResourceMap() {
|
||||||
|
assertContainerStarted();
|
||||||
|
return getContainer().getComponent(ElementMapHandler.class).getResourceMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderMap getOrderMap() {
|
||||||
|
assertContainerStarted();
|
||||||
|
return getContainer().getComponent(ElementMapHandler.class).getOrderMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertContainerStarted() {
|
||||||
|
if (this.container == null || this.container.getState() != ComponentState.STARTED) {
|
||||||
|
String msg = "Container is not yet started!"; //$NON-NLS-1$
|
||||||
|
throw new IllegalStateException(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.component;
|
package li.strolch.runtime.agent;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
|
@ -25,11 +25,11 @@ import org.slf4j.LoggerFactory;
|
||||||
public class StrolchComponent {
|
public class StrolchComponent {
|
||||||
|
|
||||||
protected static final Logger logger = LoggerFactory.getLogger(StrolchComponent.class);
|
protected static final Logger logger = LoggerFactory.getLogger(StrolchComponent.class);
|
||||||
private final ComponentContainer container;
|
private final ComponentContainerImpl container;
|
||||||
private final String componentName;
|
private final String componentName;
|
||||||
private ComponentState state;
|
private ComponentState state;
|
||||||
|
|
||||||
public StrolchComponent(ComponentContainer container, String componentName) {
|
public StrolchComponent(ComponentContainerImpl container, String componentName) {
|
||||||
this.container = container;
|
this.container = container;
|
||||||
this.componentName = componentName;
|
this.componentName = componentName;
|
||||||
this.state = ComponentState.UNDEFINED;
|
this.state = ComponentState.UNDEFINED;
|
||||||
|
@ -46,7 +46,7 @@ public class StrolchComponent {
|
||||||
return this.state;
|
return this.state;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ComponentContainer getContainer() {
|
protected ComponentContainerImpl getContainer() {
|
||||||
return this.container;
|
return this.container;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,17 +20,14 @@ import java.text.MessageFormat;
|
||||||
|
|
||||||
import li.strolch.model.xml.XmlModelDefaultHandler.XmlModelStatistics;
|
import li.strolch.model.xml.XmlModelDefaultHandler.XmlModelStatistics;
|
||||||
import li.strolch.model.xml.XmlModelFileHandler;
|
import li.strolch.model.xml.XmlModelFileHandler;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
||||||
import ch.eitchnet.utils.helper.StringHelper;
|
import ch.eitchnet.utils.helper.StringHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class TransientElementMapController extends StrolchComponent {
|
public class TransientElementMapHandler extends InMemoryElementMapHandler {
|
||||||
|
|
||||||
private File modelFile;
|
private File modelFile;
|
||||||
|
|
||||||
|
@ -38,7 +35,7 @@ public class TransientElementMapController extends StrolchComponent {
|
||||||
* @param container
|
* @param container
|
||||||
* @param componentName
|
* @param componentName
|
||||||
*/
|
*/
|
||||||
public TransientElementMapController(ComponentContainer container, String componentName) {
|
public TransientElementMapHandler(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,16 +47,16 @@ public class TransientElementMapController extends StrolchComponent {
|
||||||
runtimeConfiguration, true);
|
runtimeConfiguration, true);
|
||||||
this.modelFile = modelFile;
|
this.modelFile = modelFile;
|
||||||
|
|
||||||
|
this.resourceMap = new InMemoryResourceMap();
|
||||||
|
this.orderMap = new InMemoryOrderMap();
|
||||||
|
|
||||||
super.initialize(configuration);
|
super.initialize(configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
|
|
||||||
ResourceMap resourceMap = getContainer().getComponent(ResourceMap.class);
|
InMemoryElementListener elementListener = new InMemoryElementListener(this.resourceMap, this.orderMap);
|
||||||
OrderMap orderMap = getContainer().getComponent(OrderMap.class);
|
|
||||||
|
|
||||||
InMemoryElementListener elementListener = new InMemoryElementListener(resourceMap, orderMap);
|
|
||||||
XmlModelFileHandler handler = new XmlModelFileHandler(elementListener, this.modelFile);
|
XmlModelFileHandler handler = new XmlModelFileHandler(elementListener, this.modelFile);
|
||||||
handler.parseFile();
|
handler.parseFile();
|
||||||
XmlModelStatistics statistics = handler.getStatistics();
|
XmlModelStatistics statistics = handler.getStatistics();
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* 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.runtime.agent;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
|
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
*/
|
||||||
|
public class TransientElementMapHandlerConfigurator implements ElementMapHandlerConfigurator {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ComponentConfiguration buildConfiguration(StrolchAgent agent) {
|
||||||
|
|
||||||
|
String name = ElementMapHandler.class.getSimpleName();
|
||||||
|
String api = ElementMapHandler.class.getName();
|
||||||
|
String impl = TransientElementMapHandler.class.getName();
|
||||||
|
|
||||||
|
Map<String, String> configurationValues = new HashMap<>();
|
||||||
|
Set<String> dependencies = Collections.emptySet();
|
||||||
|
|
||||||
|
RuntimeConfiguration runtimeConfiguration = agent.getStrolchConfiguration().getRuntimeConfiguration();
|
||||||
|
ComponentConfiguration configuration = new ComponentConfiguration(runtimeConfiguration, name,
|
||||||
|
configurationValues, api, impl, dependencies);
|
||||||
|
|
||||||
|
return configuration;
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,8 +22,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import li.strolch.model.StrolchElement;
|
import li.strolch.model.StrolchElement;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
import li.strolch.runtime.agent.StrolchComponent;
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,7 +44,7 @@ public class DefaultObserverHandler extends StrolchComponent implements Observer
|
||||||
* @param container
|
* @param container
|
||||||
* @param componentName
|
* @param componentName
|
||||||
*/
|
*/
|
||||||
public DefaultObserverHandler(ComponentContainer container, String componentName) {
|
public DefaultObserverHandler(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,8 @@ package li.strolch.runtime.privilege;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
import li.strolch.runtime.agent.StrolchComponent;
|
||||||
import li.strolch.runtime.configuration.ComponentConfiguration;
|
import li.strolch.runtime.configuration.ComponentConfiguration;
|
||||||
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
import li.strolch.runtime.configuration.RuntimeConfiguration;
|
||||||
import ch.eitchnet.privilege.base.PrivilegeException;
|
import ch.eitchnet.privilege.base.PrivilegeException;
|
||||||
|
@ -35,7 +35,7 @@ public class DefaultStrolchPrivilegeHandler extends StrolchComponent implements
|
||||||
|
|
||||||
private PrivilegeHandler privilegeHandler;
|
private PrivilegeHandler privilegeHandler;
|
||||||
|
|
||||||
public DefaultStrolchPrivilegeHandler(ComponentContainer container, String componentName) {
|
public DefaultStrolchPrivilegeHandler(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ import li.strolch.model.query.OrderQuery;
|
||||||
import li.strolch.model.query.OrderQueryVisitor;
|
import li.strolch.model.query.OrderQueryVisitor;
|
||||||
import li.strolch.model.query.StateSelection;
|
import li.strolch.model.query.StateSelection;
|
||||||
import li.strolch.model.query.StrolchTypeNavigation;
|
import li.strolch.model.query.StrolchTypeNavigation;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
|
|
@ -34,7 +34,7 @@ import li.strolch.model.query.ParameterSelection.IntegerParameterSelection;
|
||||||
import li.strolch.model.query.ParameterSelection.LongParameterSelection;
|
import li.strolch.model.query.ParameterSelection.LongParameterSelection;
|
||||||
import li.strolch.model.query.ParameterSelection.StringListParameterSelection;
|
import li.strolch.model.query.ParameterSelection.StringListParameterSelection;
|
||||||
import li.strolch.model.query.ParameterSelection.StringParameterSelection;
|
import li.strolch.model.query.ParameterSelection.StringParameterSelection;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
|
|
@ -22,7 +22,7 @@ import li.strolch.model.Resource;
|
||||||
import li.strolch.model.query.ResourceQuery;
|
import li.strolch.model.query.ResourceQuery;
|
||||||
import li.strolch.model.query.ResourceQueryVisitor;
|
import li.strolch.model.query.ResourceQueryVisitor;
|
||||||
import li.strolch.model.query.StrolchTypeNavigation;
|
import li.strolch.model.query.StrolchTypeNavigation;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
|
|
@ -16,9 +16,8 @@
|
||||||
package li.strolch.runtime.query.inmemory;
|
package li.strolch.runtime.query.inmemory;
|
||||||
|
|
||||||
import li.strolch.model.Order;
|
import li.strolch.model.Order;
|
||||||
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
import li.strolch.runtime.agent.ElementMap;
|
import li.strolch.runtime.agent.ElementMap;
|
||||||
import li.strolch.runtime.agent.OrderMap;
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -37,6 +36,6 @@ public class OrderTypeNavigator extends StrolchTypeNavigator<Order> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ElementMap<Order> getElementMap() {
|
protected ElementMap<Order> getElementMap() {
|
||||||
return this.container.getComponent(OrderMap.class);
|
return this.container.getOrderMap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,13 +16,11 @@
|
||||||
package li.strolch.runtime.query.inmemory;
|
package li.strolch.runtime.query.inmemory;
|
||||||
|
|
||||||
import li.strolch.model.Resource;
|
import li.strolch.model.Resource;
|
||||||
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
import li.strolch.runtime.agent.ElementMap;
|
import li.strolch.runtime.agent.ElementMap;
|
||||||
import li.strolch.runtime.agent.ResourceMap;
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class ResourceTypeNavigator extends StrolchTypeNavigator<Resource> {
|
public class ResourceTypeNavigator extends StrolchTypeNavigator<Resource> {
|
||||||
|
|
||||||
|
@ -38,6 +36,6 @@ public class ResourceTypeNavigator extends StrolchTypeNavigator<Resource> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ElementMap<Resource> getElementMap() {
|
protected ElementMap<Resource> getElementMap() {
|
||||||
return this.container.getComponent(ResourceMap.class);
|
return this.container.getResourceMap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@ import static org.junit.Assert.assertNotNull;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import li.strolch.model.Resource;
|
import li.strolch.model.Resource;
|
||||||
|
import li.strolch.runtime.agent.ComponentContainer;
|
||||||
import li.strolch.runtime.agent.StrolchAgent;
|
import li.strolch.runtime.agent.StrolchAgent;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -91,7 +91,7 @@ public class ComponentContainerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void destroyContainer(StrolchAgent agent) {
|
public static void destroyContainer(StrolchAgent agent) {
|
||||||
agent.getContainer().stop();
|
agent.stop();
|
||||||
agent.getContainer().destroy();
|
agent.destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,10 +25,10 @@ import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||||
import li.strolch.runtime.component.ComponentController;
|
import li.strolch.runtime.agent.ComponentController;
|
||||||
import li.strolch.runtime.component.ComponentDependencyAnalyzer;
|
import li.strolch.runtime.agent.ComponentDependencyAnalyzer;
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
import li.strolch.runtime.agent.StrolchComponent;
|
||||||
import li.strolch.runtime.configuration.ConfigurationParser;
|
import li.strolch.runtime.configuration.ConfigurationParser;
|
||||||
import li.strolch.runtime.configuration.StrolchConfiguration;
|
import li.strolch.runtime.configuration.StrolchConfiguration;
|
||||||
import li.strolch.runtime.configuration.StrolchConfigurationException;
|
import li.strolch.runtime.configuration.StrolchConfigurationException;
|
||||||
|
@ -82,7 +82,7 @@ public class ControllerDependencyTest {
|
||||||
// : Downstream dependency for b is a
|
// : Downstream dependency for b is a
|
||||||
//
|
//
|
||||||
|
|
||||||
private ComponentContainer container;
|
private ComponentContainerImpl container;
|
||||||
private ComponentController con2;
|
private ComponentController con2;
|
||||||
private ComponentController con5;
|
private ComponentController con5;
|
||||||
private ComponentController con11;
|
private ComponentController con11;
|
||||||
|
@ -110,7 +110,7 @@ public class ControllerDependencyTest {
|
||||||
@Before
|
@Before
|
||||||
public void setupModel() {
|
public void setupModel() {
|
||||||
|
|
||||||
this.container = new ComponentContainer();
|
this.container = new ComponentContainerImpl();
|
||||||
|
|
||||||
this.con2 = new ComponentController(new StrolchComponent(this.container, "2"));
|
this.con2 = new ComponentController(new StrolchComponent(this.container, "2"));
|
||||||
this.con5 = new ComponentController(new StrolchComponent(this.container, "5"));
|
this.con5 = new ComponentController(new StrolchComponent(this.container, "5"));
|
||||||
|
@ -539,7 +539,7 @@ public class ControllerDependencyTest {
|
||||||
@Test
|
@Test
|
||||||
public void shouldAddDepedencies() {
|
public void shouldAddDepedencies() {
|
||||||
|
|
||||||
ComponentContainer container = new ComponentContainer();
|
ComponentContainerImpl container = new ComponentContainerImpl();
|
||||||
StrolchComponent component = new StrolchComponent(container, "1"); //$NON-NLS-1$
|
StrolchComponent component = new StrolchComponent(container, "1"); //$NON-NLS-1$
|
||||||
ComponentController controller = new ComponentController(component);
|
ComponentController controller = new ComponentController(component);
|
||||||
|
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
package li.strolch.runtime.test.component;
|
package li.strolch.runtime.test.component;
|
||||||
|
|
||||||
import li.strolch.model.Resource;
|
import li.strolch.model.Resource;
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
import li.strolch.runtime.agent.StrolchComponent;
|
||||||
|
|
||||||
public class PersistenceHandlerTestImpl extends StrolchComponent implements PersistenceHandlerTest {
|
public class PersistenceHandlerTestImpl extends StrolchComponent implements PersistenceHandlerTest {
|
||||||
|
|
||||||
public PersistenceHandlerTestImpl(ComponentContainer container, String componentName) {
|
public PersistenceHandlerTestImpl(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.test.component;
|
package li.strolch.runtime.test.component;
|
||||||
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
import li.strolch.runtime.agent.StrolchComponent;
|
||||||
|
|
||||||
public class PostInitializerTestImpl extends StrolchComponent implements PostInitializerTest {
|
public class PostInitializerTestImpl extends StrolchComponent implements PostInitializerTest {
|
||||||
|
|
||||||
public PostInitializerTestImpl(ComponentContainer container, String componentName) {
|
public PostInitializerTestImpl(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.runtime.test.component;
|
package li.strolch.runtime.test.component;
|
||||||
|
|
||||||
import li.strolch.runtime.component.ComponentContainer;
|
import li.strolch.runtime.agent.ComponentContainerImpl;
|
||||||
import li.strolch.runtime.component.StrolchComponent;
|
import li.strolch.runtime.agent.StrolchComponent;
|
||||||
|
|
||||||
public class ServiceHandlerTestImpl extends StrolchComponent implements ServiceHandlerTest {
|
public class ServiceHandlerTestImpl extends StrolchComponent implements ServiceHandlerTest {
|
||||||
|
|
||||||
public ServiceHandlerTestImpl(ComponentContainer container, String componentName) {
|
public ServiceHandlerTestImpl(ComponentContainerImpl container, String componentName) {
|
||||||
super(container, componentName);
|
super(container, componentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,6 @@ import li.strolch.model.query.ParameterSelection;
|
||||||
import li.strolch.model.query.ResourceQuery;
|
import li.strolch.model.query.ResourceQuery;
|
||||||
import li.strolch.model.query.Selection;
|
import li.strolch.model.query.Selection;
|
||||||
import li.strolch.model.query.StrolchTypeNavigation;
|
import li.strolch.model.query.StrolchTypeNavigation;
|
||||||
import li.strolch.runtime.agent.OrderMap;
|
|
||||||
import li.strolch.runtime.agent.ResourceMap;
|
|
||||||
import li.strolch.runtime.agent.StrolchAgent;
|
import li.strolch.runtime.agent.StrolchAgent;
|
||||||
import li.strolch.runtime.query.inmemory.InMemoryOrderQueryVisitor;
|
import li.strolch.runtime.query.inmemory.InMemoryOrderQueryVisitor;
|
||||||
import li.strolch.runtime.query.inmemory.InMemoryQuery;
|
import li.strolch.runtime.query.inmemory.InMemoryQuery;
|
||||||
|
@ -57,7 +55,7 @@ public class QueryTest {
|
||||||
Resource res1 = createResource("@1", "Test Resource", "MyType");
|
Resource res1 = createResource("@1", "Test Resource", "MyType");
|
||||||
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
||||||
res1.addParameter(BAG_ID, iP);
|
res1.addParameter(BAG_ID, iP);
|
||||||
agent.getContainer().getComponent(ResourceMap.class).add(res1);
|
agent.getResourceMap().add(res1);
|
||||||
|
|
||||||
List<Selection> elementAndSelections = new ArrayList<>();
|
List<Selection> elementAndSelections = new ArrayList<>();
|
||||||
elementAndSelections.add(new IdSelection("@1"));
|
elementAndSelections.add(new IdSelection("@1"));
|
||||||
|
@ -80,7 +78,7 @@ public class QueryTest {
|
||||||
Order o1 = createOrder("@1", "Test Order", "MyType");
|
Order o1 = createOrder("@1", "Test Order", "MyType");
|
||||||
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
IntegerParameter iP = new IntegerParameter("nbOfBooks", "Number of Books", 33);
|
||||||
o1.addParameter(BAG_ID, iP);
|
o1.addParameter(BAG_ID, iP);
|
||||||
agent.getContainer().getComponent(OrderMap.class).add(o1);
|
agent.getOrderMap().add(o1);
|
||||||
|
|
||||||
List<Selection> elementAndSelections = new ArrayList<>();
|
List<Selection> elementAndSelections = new ArrayList<>();
|
||||||
elementAndSelections.add(new IdSelection("@1"));
|
elementAndSelections.add(new IdSelection("@1"));
|
||||||
|
|
Loading…
Reference in New Issue