Author: jboynes
Date: Sat Mar 11 15:01:00 2006
New Revision: 385188
URL: http://svn.apache.org/viewcvs?rev=385188&view=rev
Log:
refactor bootstrap code so it can be shared between standalone and tomcat
Added:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
(with props)
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/loader/AssemblyModelLoader.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyHost.java
Added:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java?rev=385188&view=auto
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
(added)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
Sat Mar 11 15:01:00 2006
@@ -0,0 +1,129 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * 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 org.apache.tuscany.core.client;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.stream.XMLInputFactory;
+
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.config.ModuleComponentConfigurationLoader;
+import org.apache.tuscany.core.config.ConfigurationException;
+import
org.apache.tuscany.core.config.impl.ModuleComponentConfigurationLoaderImpl;
+import
org.apache.tuscany.core.config.impl.StAXModuleComponentConfigurationLoaderImpl;
+import org.apache.tuscany.core.context.SystemAggregateContext;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EventContext;
+import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
+import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
+import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
+import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
+import org.apache.tuscany.core.system.loader.SystemSCDLModelLoader;
+import org.apache.tuscany.core.loader.StAXLoaderRegistry;
+import org.apache.tuscany.core.loader.StAXUtil;
+import org.apache.tuscany.model.assembly.AssemblyFactory;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.ModuleComponent;
+import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public final class BootstrapHelper {
+ private BootstrapHelper() {
+ }
+
+ /**
+ * Returns a default AssemblyModelContext.
+ *
+ * @param classLoader the classloader to use for application artifacts
+ * @return a default AssemblyModelContext
+ */
+ public static AssemblyModelContext getModelContext(ClassLoader
classLoader) {
+ // Create an assembly model factory
+ AssemblyFactory modelFactory = new SystemAssemblyFactoryImpl();
+
+ // Create a default assembly model loader
+ List<SCDLModelLoader> scdlLoaders = new ArrayList<SCDLModelLoader>();
+ scdlLoaders.add(new SystemSCDLModelLoader());
+ AssemblyModelLoader modelLoader = new
SCDLAssemblyModelLoaderImpl(scdlLoaders);
+
+ // Create a resource loader from the supplied classloader
+ ResourceLoader resourceLoader = new ResourceLoaderImpl(classLoader);
+
+ // Create an assembly model context
+ return new AssemblyModelContextImpl(modelFactory, modelLoader,
resourceLoader);
+ }
+
+ /**
+ * Returns a default list of configuration builders.
+ *
+ * @return a default list of configuration builders
+ */
+ public static List<RuntimeConfigurationBuilder> getBuilders() {
+ List<RuntimeConfigurationBuilder> configBuilders = new ArrayList();
+ configBuilders.add((new SystemComponentContextBuilder()));
+ configBuilders.add(new SystemEntryPointBuilder());
+ configBuilders.add(new SystemExternalServiceBuilder());
+ return configBuilders;
+ }
+
+ private static final boolean useStax = false;
+ private static final String SYSTEM_LOADER_COMPONENT = "tuscany.loader";
+
+ /**
+ * Returns the default module configuration loader.
+ *
+ * @param systemContext the runtime's system context
+ * @param modelContext the model context the loader will use
+ * @return the default module configuration loader
+ */
+ public static ModuleComponentConfigurationLoader
getConfigurationLoader(SystemAggregateContext systemContext,
AssemblyModelContext modelContext) throws ConfigurationException {
+ if (useStax) {
+ // Bootstrap the StAX loader module
+ bootstrapStaxLoader(systemContext, modelContext);
+ return new
StAXModuleComponentConfigurationLoaderImpl(modelContext,
XMLInputFactory.newInstance(),
systemContext.resolveInstance(StAXLoaderRegistry.class));
+ } else {
+ return new ModuleComponentConfigurationLoaderImpl(modelContext);
+ }
+ }
+
+ private static AggregateContext bootstrapStaxLoader(SystemAggregateContext
systemContext, AssemblyModelContext modelContext) throws ConfigurationException
{
+ ModuleComponent loaderComponent =
StAXUtil.bootstrapLoader(SYSTEM_LOADER_COMPONENT, modelContext);
+ systemContext.registerModelObject(loaderComponent);
+ AggregateContext loaderContext = (AggregateContext)
systemContext.getContext(SYSTEM_LOADER_COMPONENT);
+
loaderContext.registerModelObject(loaderComponent.getComponentImplementation());
+ loaderContext.fireEvent(EventContext.MODULE_START, null);
+ return loaderContext;
+ }
+
+ public static AggregateContext registerModule(AggregateContext parent,
ModuleComponent component) throws ConfigurationException {
+ // register the component
+ parent.registerModelObject(component);
+
+ // Get the aggregate context representing the component
+ AggregateContext context = (AggregateContext)
parent.getContext(component.getName());
+ context.registerModelObject(component.getComponentImplementation());
+ return context;
+ }
+}
Propchange:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java?rev=385188&r1=385187&r2=385188&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java
Sat Mar 11 15:01:00 2006
@@ -16,47 +16,27 @@
*/
package org.apache.tuscany.core.client;
-import java.util.ArrayList;
import java.util.List;
-import javax.xml.stream.XMLInputFactory;
+import org.osoa.sca.ModuleContext;
+import org.osoa.sca.SCA;
+import org.osoa.sca.ServiceRuntimeException;
import org.apache.tuscany.common.monitor.MonitorFactory;
import org.apache.tuscany.common.monitor.impl.NullMonitorFactory;
-import org.apache.tuscany.common.resource.ResourceLoader;
-import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
import org.apache.tuscany.core.config.ConfigurationException;
import org.apache.tuscany.core.config.ModuleComponentConfigurationLoader;
-import
org.apache.tuscany.core.config.impl.ModuleComponentConfigurationLoaderImpl;
-import
org.apache.tuscany.core.config.impl.StAXModuleComponentConfigurationLoaderImpl;
import org.apache.tuscany.core.context.AggregateContext;
import org.apache.tuscany.core.context.CoreRuntimeException;
import org.apache.tuscany.core.context.EventContext;
import org.apache.tuscany.core.context.SystemAggregateContext;
import org.apache.tuscany.core.runtime.RuntimeContext;
import org.apache.tuscany.core.runtime.RuntimeContextImpl;
-import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
-import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
-import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
-import org.apache.tuscany.core.system.loader.SystemSCDLModelLoader;
-import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
-import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
-import org.apache.tuscany.core.loader.StAXUtil;
-import org.apache.tuscany.core.loader.StAXLoaderRegistry;
-import org.apache.tuscany.core.loader.impl.StAXLoaderRegistryImpl;
-import org.apache.tuscany.model.assembly.AssemblyFactory;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.ModuleComponent;
-import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
-import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
-import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
-import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
-import org.osoa.sca.ModuleContext;
-import org.osoa.sca.SCA;
-import org.osoa.sca.ServiceRuntimeException;
/**
* Create and initialize a Tuscany SCA runtime environment.
@@ -67,12 +47,10 @@
private final Monitor monitor;
private final Object sessionKey = new Object();
- private final RuntimeContext runtimeContext;
- private AggregateContext systemModuleComponentContext;
- private AggregateContext moduleContext;
+ private final RuntimeContext runtime;
+ private final AggregateContext moduleContext;
private static final String SYSTEM_MODULE_COMPONENT =
"org.apache.tuscany.core.system";
- private static final String SYSTEM_LOADER_COMPONENT = "tuscany.loader";
/**
* Construct a runtime using a null MonitorFactory.
@@ -99,70 +77,28 @@
public TuscanyRuntime(String name, String uri, MonitorFactory
monitorFactory) throws ConfigurationException {
this.monitor = monitorFactory.getMonitor(Monitor.class);
- // Create a resource loader from the current classloader
- ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
- ResourceLoader resourceLoader = new ResourceLoaderImpl(classLoader);
-
- // Create an assembly model factory
- AssemblyFactory modelFactory=new AssemblyFactoryImpl();
-
- // Create an assembly model loader
- List<SCDLModelLoader> scdlLoaders=new ArrayList<SCDLModelLoader>();
- scdlLoaders.add(new SystemSCDLModelLoader());
- AssemblyModelLoader modelLoader=new
SCDLAssemblyModelLoaderImpl(scdlLoaders);
-
// Create an assembly model context
- AssemblyModelContext modelContext = new
AssemblyModelContextImpl(modelFactory, modelLoader, resourceLoader);
-
- // Create system configuration builders
- List<RuntimeConfigurationBuilder> configBuilders = new ArrayList();
- configBuilders.add((new SystemComponentContextBuilder()));
- configBuilders.add(new SystemEntryPointBuilder());
- configBuilders.add(new SystemExternalServiceBuilder());
+ ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
+ AssemblyModelContext modelContext =
BootstrapHelper.getModelContext(classLoader);
// Create a runtime context and start it
- runtimeContext = new RuntimeContextImpl(monitorFactory, scdlLoaders,
configBuilders,new DefaultWireBuilder());
- runtimeContext.start();
- monitor.started(runtimeContext);
-
- // Get the system context
- SystemAggregateContext systemContext =
runtimeContext.getSystemContext();
-
- // Bootstrap the StAX loader module
- AggregateContext loaderContext = bootstrapLoader(systemContext,
modelContext);
-
- // Load the system module component
- ModuleComponentConfigurationLoader loader;
- loader = new ModuleComponentConfigurationLoaderImpl(modelContext);
-// loader = new
StAXModuleComponentConfigurationLoaderImpl(modelContext,
XMLInputFactory.newInstance(),
systemContext.resolveInstance(StAXLoaderRegistry.class));
+ List<SCDLModelLoader> loaders =
modelContext.getAssemblyLoader().getLoaders();
+ List<RuntimeConfigurationBuilder> configBuilders =
BootstrapHelper.getBuilders();
+ runtime = new RuntimeContextImpl(monitorFactory, loaders,
configBuilders, new DefaultWireBuilder());
+ runtime.start();
+ monitor.started(runtime);
+
+ // Load and start the system configuration
+ SystemAggregateContext systemContext = runtime.getSystemContext();
+ ModuleComponentConfigurationLoader loader =
BootstrapHelper.getConfigurationLoader(systemContext, modelContext);
ModuleComponent systemModuleComponent =
loader.loadSystemModuleComponent(SYSTEM_MODULE_COMPONENT,
SYSTEM_MODULE_COMPONENT);
-
- // Register it with the system context
- systemContext.registerModelObject(systemModuleComponent);
-
- // Get the aggregate context representing the system module component
- systemModuleComponentContext = (AggregateContext)
systemContext.getContext(SYSTEM_MODULE_COMPONENT);
-
systemModuleComponentContext.registerModelObject(systemModuleComponent.getComponentImplementation());
- systemModuleComponentContext.fireEvent(EventContext.MODULE_START,
null);
+ AggregateContext context =
BootstrapHelper.registerModule(systemContext, systemModuleComponent);
+ context.fireEvent(EventContext.MODULE_START, null);
// Load the SCDL configuration of the application module
+ AggregateContext rootContext = runtime.getRootContext();
ModuleComponent moduleComponent = loader.loadModuleComponent(name,
uri);
-
- // Register it under the root application context
- AggregateContext rootContext = runtimeContext.getRootContext();
- rootContext.registerModelObject(moduleComponent);
-
moduleContext=(AggregateContext)rootContext.getContext(moduleComponent.getName());
-
moduleContext.registerModelObject(moduleComponent.getComponentImplementation());
-
- }
-
- private static AggregateContext bootstrapLoader(SystemAggregateContext
systemContext, AssemblyModelContext modelContext) throws ConfigurationException
{
- ModuleComponent loaderComponent =
StAXUtil.bootstrapLoader(SYSTEM_LOADER_COMPONENT, modelContext);
- systemContext.registerModelObject(loaderComponent);
- AggregateContext loaderContext = (AggregateContext)
systemContext.getContext(SYSTEM_LOADER_COMPONENT);
-
loaderContext.registerModelObject(loaderComponent.getComponentImplementation());
- loaderContext.fireEvent(EventContext.MODULE_START, null);
- return loaderContext;
+ moduleContext = BootstrapHelper.registerModule(rootContext,
moduleComponent);
}
/**
@@ -170,7 +106,7 @@
*/
@Override
public void start() {
- setModuleContext((ModuleContext)moduleContext);
+ setModuleContext((ModuleContext) moduleContext);
try {
//moduleContext.start();
moduleContext.fireEvent(EventContext.MODULE_START, null);
@@ -196,8 +132,8 @@
moduleContext.fireEvent(EventContext.MODULE_STOP, null);
moduleContext.stop();
monitor.stopped(moduleContext);
- runtimeContext.stop();
- monitor.stopped(runtimeContext);
+ runtime.stop();
+ monitor.stopped(runtime);
}
/**
Modified:
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/loader/AssemblyModelLoader.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/loader/AssemblyModelLoader.java?rev=385188&r1=385187&r2=385188&view=diff
==============================================================================
---
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/loader/AssemblyModelLoader.java
(original)
+++
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/loader/AssemblyModelLoader.java
Sat Mar 11 15:01:00 2006
@@ -26,12 +26,13 @@
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.ModuleFragment;
import org.apache.tuscany.model.assembly.Subsystem;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
/**
* An assembly model loader.
*/
public interface AssemblyModelLoader {
-
+
/**
* Sets the model context to use.
* @param modelContext
@@ -39,6 +40,12 @@
void setModelContext(AssemblyModelContext modelContext);
/**
+ * Returns the live list of sub-loaders this loader is using.
+ * @return the list of sub-loaders
+ */
+ List<SCDLModelLoader> getLoaders();
+
+ /**
* Returns the module at the given uri
* @param uri
* @return
@@ -70,12 +77,12 @@
* Load a WSDL definition
*/
Definition loadDefinition(String uri);
-
+
/**
* Load definitions by namespace
* @param uri
* @return
*/
List<Definition> loadDefinitions(String namespace);
-
+
}
Modified:
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java?rev=385188&r1=385187&r2=385188&view=diff
==============================================================================
---
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java
(original)
+++
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java
Sat Mar 11 15:01:00 2006
@@ -71,6 +71,10 @@
this.modelContext = modelContext;
}
+ public List<SCDLModelLoader> getLoaders() {
+ return scdlModelLoaders;
+ }
+
/**
* @see
org.apache.tuscany.model.assembly.loader.AssemblyModelLoader#loadComponentType(java.lang.String)
*/
Modified:
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyHost.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyHost.java?rev=385188&r1=385187&r2=385188&view=diff
==============================================================================
---
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyHost.java
(original)
+++
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyHost.java
Sat Mar 11 15:01:00 2006
@@ -16,7 +16,6 @@
*/
package org.apache.tuscany.tomcat;
-import java.util.ArrayList;
import java.util.List;
import org.apache.catalina.Container;
@@ -29,29 +28,20 @@
import org.apache.tuscany.common.monitor.impl.NullMonitorFactory;
import org.apache.tuscany.common.resource.ResourceLoader;
-import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
+import org.apache.tuscany.core.client.BootstrapHelper;
import org.apache.tuscany.core.config.ConfigurationLoadException;
import org.apache.tuscany.core.config.ModuleComponentConfigurationLoader;
-import
org.apache.tuscany.core.config.impl.ModuleComponentConfigurationLoaderImpl;
import org.apache.tuscany.core.context.AggregateContext;
import org.apache.tuscany.core.context.EventContext;
import org.apache.tuscany.core.context.SystemAggregateContext;
import org.apache.tuscany.core.runtime.RuntimeContext;
import org.apache.tuscany.core.runtime.RuntimeContextImpl;
-import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
-import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
-import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
-import org.apache.tuscany.core.system.loader.SystemSCDLModelLoader;
import org.apache.tuscany.model.assembly.AssemblyFactory;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.ModuleComponent;
-import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
-import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
-import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
-import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
/**
* A Tomcat listener to be attached to a Host container to add SCA runtime
functionality.
@@ -60,6 +50,7 @@
*
* @version $Rev$ $Date$
*/
[EMAIL PROTECTED]({"serial"})
public class TuscanyHost extends StandardHost {
private static final String SYSTEM_MODULE_COMPONENT =
"org.apache.tuscany.core.system";
private static final Log log = LogFactory.getLog(TuscanyHost.class);
@@ -81,45 +72,27 @@
}
private void startRuntime() {
- systemLoader = new ResourceLoaderImpl(getClass().getClassLoader());
-
- // Create an assembly model factory
- modelFactory = new AssemblyFactoryImpl();
-
- // Create an assembly model loader
- List<SCDLModelLoader> scdlLoaders=new ArrayList<SCDLModelLoader>();
- scdlLoaders.add(new SystemSCDLModelLoader());
- modelLoader = new SCDLAssemblyModelLoaderImpl(scdlLoaders);
-
// Create an assembly model context
- AssemblyModelContext modelContext = new
AssemblyModelContextImpl(modelFactory, modelLoader, systemLoader);
+ AssemblyModelContext modelContext =
BootstrapHelper.getModelContext(getClass().getClassLoader());
+ modelFactory = modelContext.getAssemblyFactory();
+ modelLoader = modelContext.getAssemblyLoader();
+ systemLoader = modelContext.getSystemResourceLoader();
+
+ // Create and start the runtime
+ List<RuntimeConfigurationBuilder> configBuilders =
BootstrapHelper.getBuilders();
+ runtime = new RuntimeContextImpl(new NullMonitorFactory(),
modelLoader.getLoaders(), configBuilders, new DefaultWireBuilder());
+ runtime.start();
- // Load the system module component
- ModuleComponentConfigurationLoader loader = new
ModuleComponentConfigurationLoaderImpl(modelContext);
- ModuleComponent systemModuleComponent;
+ // Load and start the system configuration
try {
- systemModuleComponent =
loader.loadSystemModuleComponent(SYSTEM_MODULE_COMPONENT,
SYSTEM_MODULE_COMPONENT);
+ SystemAggregateContext systemContext = runtime.getSystemContext();
+ ModuleComponentConfigurationLoader loader =
BootstrapHelper.getConfigurationLoader(systemContext, modelContext);
+ ModuleComponent systemModuleComponent =
loader.loadSystemModuleComponent(SYSTEM_MODULE_COMPONENT,
SYSTEM_MODULE_COMPONENT);
+ AggregateContext context =
BootstrapHelper.registerModule(systemContext, systemModuleComponent);
+ context.fireEvent(EventContext.MODULE_START, null);
} catch (ConfigurationLoadException e) {
log.warn(sm.getString("runtime.loadSystemFailed"), e);
return;
- }
-
- List<RuntimeConfigurationBuilder> configBuilders = new ArrayList();
- configBuilders.add((new SystemComponentContextBuilder()));
- configBuilders.add(new SystemEntryPointBuilder());
- configBuilders.add(new SystemExternalServiceBuilder());
-
- runtime = new RuntimeContextImpl(new NullMonitorFactory(),
scdlLoaders, configBuilders, new DefaultWireBuilder());
- runtime.start();
-
- try {
- SystemAggregateContext systemContext = runtime.getSystemContext();
- systemContext.registerModelObject(systemModuleComponent);
-
- // Get the aggregate context representing the system module
component
- AggregateContext systemModuleComponentContext = (AggregateContext)
systemContext.getContext(SYSTEM_MODULE_COMPONENT);
-
systemModuleComponentContext.registerModelObject(systemModuleComponent.getComponentImplementation());
- systemModuleComponentContext.fireEvent(EventContext.MODULE_START,
null);
} catch (Exception e) {
log.warn(sm.getString("runtime.registerSystemFailed"), e);
runtime.stop();