Author: jboynes
Date: Mon Mar 20 15:34:44 2006
New Revision: 387345
URL: http://svn.apache.org/viewcvs?rev=387345&view=rev
Log:
support binding.system for use in system entry points
Added:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java
(with props)
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyServletListener.java
incubator/tuscany/java/sca/core/src/main/resources/system.module
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java?rev=387345&r1=387344&r2=387345&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
Mon Mar 20 15:34:44 2006
@@ -35,6 +35,7 @@
import org.apache.tuscany.core.loader.assembly.InterfaceWSDLLoader;
import org.apache.tuscany.core.loader.assembly.InterfaceJavaLoader;
import org.apache.tuscany.core.loader.system.SystemImplementationLoader;
+import org.apache.tuscany.core.loader.system.SystemBindingLoader;
import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
import org.apache.tuscany.core.system.assembly.SystemImplementation;
import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
@@ -108,6 +109,7 @@
components.add(bootstrapLoader(factory, ServiceLoader.class));
components.add(bootstrapLoader(factory,
SystemImplementationLoader.class));
+ components.add(bootstrapLoader(factory, SystemBindingLoader.class));
ModuleComponent mc = factory.createModuleComponent();
mc.setName(name);
Added:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java?rev=387345&view=auto
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java
(added)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java
Mon Mar 20 15:34:44 2006
@@ -0,0 +1,51 @@
+/**
+ *
+ * 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.loader.system;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.osoa.sca.annotations.Scope;
+
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.core.config.ConfigurationLoadException;
+import org.apache.tuscany.core.loader.StAXUtil;
+import org.apache.tuscany.core.system.assembly.SystemBinding;
+
+/**
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED]("MODULE")
+public class SystemBindingLoader extends AbstractLoader {
+ public static final QName SYSTEM_BINDING = new
QName("http://org.apache.tuscany/xmlns/system/0.9", "binding.system");
+
+ public QName getXMLType() {
+ return SystemBindingLoader.SYSTEM_BINDING;
+ }
+
+ public Class<SystemBinding> getModelType() {
+ return SystemBinding.class;
+ }
+
+ public SystemBinding load(XMLStreamReader reader, ResourceLoader
resourceLoader) throws XMLStreamException, ConfigurationLoadException {
+ assert SystemBindingLoader.SYSTEM_BINDING.equals(reader.getName());
+ SystemBinding binding = factory.createSystemBinding();
+ StAXUtil.skipToEndElement(reader);
+ return binding;
+ }
+}
Propchange:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/system/SystemBindingLoader.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java?rev=387345&r1=387344&r2=387345&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java
Mon Mar 20 15:34:44 2006
@@ -4,6 +4,7 @@
import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
import org.apache.tuscany.core.system.scdl.ScdlFactory;
import org.apache.tuscany.core.system.scdl.SystemImplementation;
+import org.apache.tuscany.core.system.scdl.SystemBinding;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelObject;
import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
@@ -43,6 +44,9 @@
}
implementation.setImplementationClass(implementationClass);
return implementation;
+ } else if (object instanceof SystemBinding) {
+ org.apache.tuscany.core.system.assembly.SystemBinding binding =
systemFactory.createSystemBinding();
+ return binding;
} else
return null;
}
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyServletListener.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyServletListener.java?rev=387345&r1=387344&r2=387345&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyServletListener.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyServletListener.java
Mon Mar 20 15:34:44 2006
@@ -16,7 +16,6 @@
*/
package org.apache.tuscany.core.webapp;
-import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
@@ -29,29 +28,19 @@
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.ContextFactoryBuilder;
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.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.SystemContextFactoryBuilder;
-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.core.client.BootstrapHelper;
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;
/**
* ServletContextListener that can be added to a standard web application to
boot
@@ -65,10 +54,7 @@
public static final String MODULE_COMPONENT_NAME =
"org.apache.tuscany.core.webapp.ModuleComponentContext";
public static final String TUSCANY_RUNTIME_NAME =
RuntimeContext.class.getName();
- private final Object sessionKey = new Object();
-
- private RuntimeContext runtimeContext;
- private AggregateContext systemModuleComponentContext;
+ private RuntimeContext runtime;
private AggregateContext moduleContext;
private static final String SYSTEM_MODULE_COMPONENT =
"org.apache.tuscany.core.system";
@@ -85,16 +71,17 @@
throw new RuntimeException(e.getMessage(), e);
}
- servletContext.setAttribute(TUSCANY_RUNTIME_NAME, runtimeContext);
+ servletContext.setAttribute(TUSCANY_RUNTIME_NAME, runtime);
servletContext.setAttribute(MODULE_COMPONENT_NAME, moduleContext);
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
moduleContext.fireEvent(EventContext.MODULE_STOP, null);
moduleContext.stop();
- systemModuleComponentContext.fireEvent(EventContext.MODULE_STOP, null);
- systemModuleComponentContext.stop();
- runtimeContext.stop();
+ SystemAggregateContext systemContext = runtime.getSystemContext();
+ systemContext.fireEvent(EventContext.MODULE_STOP, null);
+ systemContext.stop();
+ runtime.stop();
servletContextEvent.getServletContext().removeAttribute(MODULE_COMPONENT_NAME);
servletContextEvent.getServletContext().removeAttribute(TUSCANY_RUNTIME_NAME);
}
@@ -115,53 +102,28 @@
}
private void bootRuntime(String name, String uri, MonitorFactory
monitorFactory) throws ConfigurationException {
- // 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<ContextFactoryBuilder> configBuilders = new ArrayList();
- configBuilders.add((new SystemContextFactoryBuilder()));
- 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();
-
- // Get the system context
- AggregateContext systemContext = runtimeContext.getSystemContext();
-
- // Load the system module component
- ModuleComponentConfigurationLoader loader = new
ModuleComponentConfigurationLoaderImpl(modelContext);
+ List<SCDLModelLoader> loaders =
modelContext.getAssemblyLoader().getLoaders();
+ List<ContextFactoryBuilder> configBuilders =
BootstrapHelper.getBuilders();
+ runtime = new RuntimeContextImpl(monitorFactory, loaders,
configBuilders, new DefaultWireBuilder());
+ runtime.start();
+
+ // 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
- runtimeContext.getRootContext().registerModelObject(moduleComponent);
-
moduleContext=(AggregateContext)runtimeContext.getContext(moduleComponent.getName());
-
//moduleContext.registerModelObject(moduleComponent.getComponentImplementation());
+ moduleContext = BootstrapHelper.registerModule(rootContext,
moduleComponent);
moduleContext.fireEvent(EventContext.MODULE_START, null);
}
Modified: incubator/tuscany/java/sca/core/src/main/resources/system.module
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/resources/system.module?rev=387345&r1=387344&r2=387345&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/resources/system.module (original)
+++ incubator/tuscany/java/sca/core/src/main/resources/system.module Mon Mar 20
15:34:44 2006
@@ -19,8 +19,14 @@
xmlns:system="http://org.apache.tuscany/xmlns/system/0.9"
name="org.apache.tuscany.core.system">
- <component name="org.apache.tuscany.core.loader.SCDLModelLoaderRegistry">
- <system:implementation.system
class="org.apache.tuscany.core.loader.impl.SCDLModelLoaderRegistryImpl"/>
+ <entryPoint name="org.apache.tuscany.core.loader.StAXLoaderRegistry">
+ <interface.java
interface="org.apache.tuscany.core.loader.StAXLoaderRegistry"/>
+ <system:binding.system/>
+
<reference>org.apache.tuscany.core.loader.StAXLoaderRegistryImpl</reference>
+ </entryPoint>
+
+ <component name="org.apache.tuscany.core.loader.StAXLoaderRegistryImpl">
+ <system:implementation.system
class="org.apache.tuscany.core.loader.impl.StAXLoaderRegistryImpl"/>
</component>
</module>