diff --git a/src/main/java/li/strolch/testbase/runtime/ComponentMock.java b/src/main/java/li/strolch/testbase/runtime/ComponentMock.java deleted file mode 100644 index 2696b7866..000000000 --- a/src/main/java/li/strolch/testbase/runtime/ComponentMock.java +++ /dev/null @@ -1,11 +0,0 @@ -package li.strolch.testbase.runtime; - -import li.strolch.runtime.component.StrolchComponent; -import li.strolch.runtime.configuration.StrolchConfiguration; - -public interface ComponentMock { - - public StrolchComponent getComponent(); - - public void mock(StrolchConfiguration configuration); -} diff --git a/src/main/java/li/strolch/testbase/runtime/RuntimeMock.java b/src/main/java/li/strolch/testbase/runtime/RuntimeMock.java index 2cdaf44eb..49129d203 100644 --- a/src/main/java/li/strolch/testbase/runtime/RuntimeMock.java +++ b/src/main/java/li/strolch/testbase/runtime/RuntimeMock.java @@ -3,13 +3,28 @@ package li.strolch.testbase.runtime; import java.io.File; import java.text.MessageFormat; +import li.strolch.runtime.component.ComponentContainer; import li.strolch.runtime.configuration.RuntimeConfiguration; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import ch.eitchnet.utils.helper.FileHelper; public class RuntimeMock { + private static final Logger logger = LoggerFactory.getLogger(RuntimeMock.class); private static final String TARGET = "target"; //$NON-NLS-1$ + private static ComponentContainer container; + + /** + * @return the container + */ + public static ComponentContainer getContainer() { + return container; + } + public static void mockRuntime(File rootPathF, File configSrc) { if (!rootPathF.getParentFile().getName().equals(TARGET)) { @@ -46,19 +61,41 @@ public class RuntimeMock { msg = MessageFormat.format(msg, configSrc.getAbsolutePath(), configPathF.getAbsolutePath()); throw new RuntimeException(msg); } -// -// // initialize a runtime configuration -// Map runtimeConfigurationValues = new HashMap<>(); -// RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration("RuntimeMock", runtimeConfigurationValues, //$NON-NLS-1$ -// rootPathF); -// -// Map configurationByComponent = new HashMap<>(); -// StrolchConfiguration configuration = new StrolchConfiguration(runtimeConfiguration, configurationByComponent); -// -// // initialize the component configuration -// for (ComponentMock componentMock : runtimeMocks) { -// //configurationByComponent.put(key, value) -// componentMock.mock(configuration); -// } + } + + public static void startContainer(File rootPathF) { + + ComponentContainer container = new ComponentContainer(); + try { + + container.setup(rootPathF); + container.initialize(); + container.start(); + + RuntimeMock.container = container; + + } catch (Exception e) { + logger.error("Failed to start mocked container due to: " + e.getMessage(), e); //$NON-NLS-1$ + destroyRuntime(); + throw e; + } + } + + public static void destroyRuntime() { + + if (container == null) + return; + + try { + container.stop(); + } catch (Exception e) { + logger.info("Failed to stop container: " + e.getMessage()); //$NON-NLS-1$ + } + + try { + container.destroy(); + } catch (Exception e) { + logger.info("Failed to destroy container: " + e.getMessage()); //$NON-NLS-1$ + } } }