You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/24 03:43:24 UTC
svn commit: r380312 - in /incubator/tuscany/java/sca:
binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/
container.java/src/main/java/org/apache/tuscany/container/java/builder/
container.java/src/main/java/org/apache/tuscany/container/j...
Author: jsdelfino
Date: Thu Feb 23 18:43:20 2006
New Revision: 380312
URL: http://svn.apache.org/viewcvs?rev=380312&view=rev
Log:
added support for pluggable SCDL loaders
Added:
incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java (with props)
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java (with props)
Removed:
incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment.off
incubator/tuscany/java/sca/core/src/main/resources/org/apache/tuscany/core/pipeline/impl/
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/SCDLAssemblyModelLoader.java
Modified:
incubator/tuscany/java/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilder.java
incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java
incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/config/ModuleComponentConfigurationLoaderTestCase.java
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/config/ModuleComponentConfigurationLoaderTestCase.java
incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/integration/JSComponentContextTestCase.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeBootTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeContextImplTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemBootstrapTestCase.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Aggregate.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleFragment.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Subsystem.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregateImpl.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.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/SCDLModelLoader.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLContentHandlerImpl.java
incubator/tuscany/java/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLAssemblyLoaderTestCase.java
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/RuntimeBootstrap.java
Modified: incubator/tuscany/java/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java (original)
+++ incubator/tuscany/java/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java Thu Feb 23 18:43:20 2006
@@ -12,34 +12,47 @@
import org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory;
import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
import org.apache.tuscany.binding.axis.assembly.impl.WebServiceAssemblyFactoryImpl;
-import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelObject;
import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
import org.apache.tuscany.model.util.XMLNameUtil;
+import org.osoa.sca.annotations.Init;
/**
* Populates the assembly model from an SCDL model
*/
+@org.osoa.sca.annotations.Scope("MODULE")
public class WebServiceSCDLModelLoader implements SCDLModelLoader {
- private AssemblyModelContext modelContext;
- private ResourceLoader resourceLoader;
+ private RuntimeContext runtimeContext;
private WebServiceAssemblyFactory wsFactory;
/**
* Constructs a new WebServiceSCDLModelLoader.
*/
public WebServiceSCDLModelLoader(AssemblyModelContext modelContext) {
- this.modelContext=modelContext;
- this.resourceLoader=this.modelContext.getResourceLoader();
this.wsFactory=new WebServiceAssemblyFactoryImpl();
}
/**
- * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(java.lang.Object)
+ * @param runtimeContext The runtimeContext to set.
*/
- public AssemblyModelObject load(Object object) {
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addLoader(this);
+ }
+
+ /**
+ * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
+ */
+ public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
if (object instanceof org.apache.tuscany.model.scdl.WebServiceBinding) {
org.apache.tuscany.model.scdl.WebServiceBinding scdlBinding=(org.apache.tuscany.model.scdl.WebServiceBinding)object;
WebServiceBinding binding=wsFactory.createWebServiceBinding();
Modified: incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilder.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilder.java (original)
+++ incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilder.java Thu Feb 23 18:43:20 2006
@@ -64,7 +64,9 @@
public class JavaComponentContextBuilder implements RuntimeConfigurationBuilder<AggregateContext> {
private RuntimeContext runtimeContext;
- private ProxyFactoryFactory factory;
+ private ProxyFactoryFactory proxyFactoryFactory;
+ private MessageFactory messageFactory;
+ private RuntimeConfigurationBuilder referenceBuilder;
@Init(eager=true)
public void init() {
@@ -84,11 +86,9 @@
*/
@Autowire
public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
- this.factory = factory;
+ this.proxyFactoryFactory = factory;
}
- private MessageFactory messageFactory;
-
/**
* Sets the factory used to construct invocation messages
*
@@ -99,8 +99,6 @@
this.messageFactory = msgFactory;
}
- private RuntimeConfigurationBuilder referenceBuilder;
-
/**
* Sets a builder responsible for creating source-side and target-side invocation chains for a reference. The
* reference builder may be hierarchical, containing other child reference builders that operate on specific
@@ -205,7 +203,7 @@
Service service = configuredService.getService();
ServiceContract serviceContract = service.getServiceContract();
Map<Method, InvocationConfiguration> iConfigMap = new HashMap();
- ProxyFactory proxyFactory = factory.createProxyFactory();
+ ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
for (Method method : javaMethods) {
InvocationConfiguration iConfig = new InvocationConfiguration(method);
@@ -232,7 +230,7 @@
List<ConfiguredReference> configuredReferences = component.getConfiguredReferences();
if (configuredReferences != null) {
for (ConfiguredReference reference : configuredReferences) {
- ProxyFactory proxyFactory = factory.createProxyFactory();
+ ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
ServiceContract serviceContract = reference.getReference().getServiceContract();
Map<Method, InvocationConfiguration> iConfigMap = new HashMap();
Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
Modified: incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java (original)
+++ incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java Thu Feb 23 18:43:20 2006
@@ -1,41 +1,54 @@
package org.apache.tuscany.container.java.loader;
-import org.apache.tuscany.common.resource.ResourceLoader;
import org.apache.tuscany.container.java.assembly.JavaAssemblyFactory;
import org.apache.tuscany.container.java.assembly.JavaImplementation;
import org.apache.tuscany.container.java.assembly.impl.JavaAssemblyFactoryImpl;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelObject;
import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.osoa.sca.annotations.Init;
/**
* Populates the assembly model from an SCDL model
*/
+@org.osoa.sca.annotations.Scope("MODULE")
public class JavaSCDLModelLoader implements SCDLModelLoader {
-
- private AssemblyModelContext modelContext;
- private ResourceLoader resourceLoader;
+
+ private RuntimeContext runtimeContext;
private JavaAssemblyFactory javaFactory;
/**
* Constructs a new JavaSCDLModelLoader.
*/
- public JavaSCDLModelLoader(AssemblyModelContext modelContext) {
- this.modelContext=modelContext;
- this.resourceLoader=this.modelContext.getResourceLoader();
+ public JavaSCDLModelLoader() {
this.javaFactory=new JavaAssemblyFactoryImpl();
}
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addLoader(this);
+ }
/**
- * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(java.lang.Object)
+ * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
*/
- public AssemblyModelObject load(Object object) {
+ public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
if (object instanceof org.apache.tuscany.model.scdl.JavaImplementation) {
org.apache.tuscany.model.scdl.JavaImplementation scdlJavaImplementation=(org.apache.tuscany.model.scdl.JavaImplementation)object;
JavaImplementation implementation=javaFactory.createJavaImplementation();
Class implementationClass;
try {
- implementationClass=resourceLoader.loadClass(scdlJavaImplementation.getClass_());
+ implementationClass=modelContext.getResourceLoader().loadClass(scdlJavaImplementation.getClass_());
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException(e);
}
Modified: incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment (original)
+++ incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment Thu Feb 23 18:43:20 2006
@@ -22,4 +22,8 @@
<system:implementation.system class="org.apache.tuscany.container.java.builder.JavaComponentContextBuilder"/>
</component>
+ <component name="org.apache.tuscany.container.java.loader.JavaSCDLModelLoader">
+ <system:implementation.system class="org.apache.tuscany.container.java.loader.JavaSCDLModelLoader"/>
+ </component>
+
</moduleFragment>
Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java Thu Feb 23 18:43:20 2006
@@ -30,7 +30,7 @@
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
-import org.apache.tuscany.model.scdl.loader.SCDLAssemblyModelLoader;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
/**
@@ -47,11 +47,11 @@
public void testLoader() {
ResourceLoader resourceLoader=new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader());
- SCDLAssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl();
+ AssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl();
+ JavaSCDLModelLoader javaLoader=new JavaSCDLModelLoader();
+ assemblyLoader.getSCDLModelLoaders().add(javaLoader);
AssemblyFactory assemblyFactory=new AssemblyFactoryImpl();
AssemblyModelContext modelContext=new AssemblyModelContextImpl(assemblyFactory, assemblyLoader, resourceLoader);
-
- assemblyLoader.getSCDLModelLoaders().add(new JavaSCDLModelLoader(modelContext));
Module module = assemblyLoader.getModule(getClass().getResource("sca.module").toString());
module.initialize(modelContext);
Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/config/ModuleComponentConfigurationLoaderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/config/ModuleComponentConfigurationLoaderTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/config/ModuleComponentConfigurationLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/config/ModuleComponentConfigurationLoaderTestCase.java Thu Feb 23 18:43:20 2006
@@ -35,7 +35,7 @@
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.scdl.loader.SCDLAssemblyModelLoader;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
/**
@@ -67,10 +67,11 @@
protected void setUp() throws Exception {
super.setUp();
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
- SCDLAssemblyModelLoader modelLoader=new SCDLAssemblyModelLoaderImpl();
+ AssemblyModelLoader modelLoader=new SCDLAssemblyModelLoaderImpl();
+ JavaSCDLModelLoader javaLoader=new JavaSCDLModelLoader();
+ modelLoader.getSCDLModelLoaders().add(javaLoader);
modelContext=new AssemblyModelContextImpl(new AssemblyFactoryImpl(), modelLoader,
new ResourceLoaderImpl(this.getClass().getClassLoader()));
loader = new ModuleComponentConfigurationLoaderImpl(modelContext);
- modelLoader.getSCDLModelLoaders().add(new JavaSCDLModelLoader(modelContext));
}
}
Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java Thu Feb 23 18:43:20 2006
@@ -89,7 +89,7 @@
wireBuilders.add(defaultWireBuilder);
- RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
+ RuntimeContext runtime = new RuntimeContextImpl(null, null, builders, wireBuilders);
runtime.start();
runtime.getRootContext().registerModelObject(
MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(), Scope.AGGREGATE));
@@ -134,7 +134,7 @@
defaultWireBuilder.addWireBuilder(new JavaTargetWireBuilder());
wireBuilders.add(defaultWireBuilder);
- RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
+ RuntimeContext runtime = new RuntimeContextImpl(null, null, builders, wireBuilders);
runtime.start();
runtime.getRootContext().registerModelObject(
MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(),
@@ -182,7 +182,7 @@
defaultWireBuilder.addWireBuilder(new JavaTargetWireBuilder());
wireBuilders.add(defaultWireBuilder);
- RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
+ RuntimeContext runtime = new RuntimeContextImpl(null, null, builders, wireBuilders);
runtime.start();
runtime.getRootContext().registerModelObject(
MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(),
@@ -227,7 +227,7 @@
defaultWireBuilder.addWireBuilder(new JavaTargetWireBuilder());
wireBuilders.add(defaultWireBuilder);
- RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
+ RuntimeContext runtime = new RuntimeContextImpl(null, null, builders, wireBuilders);
runtime.start();
runtime.getRootContext().registerModelObject(
MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(),
Modified: incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java (original)
+++ incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java Thu Feb 23 18:43:20 2006
@@ -5,17 +5,21 @@
import org.apache.tuscany.container.js.assembly.impl.JavaScriptAssemblyFactoryImpl;
import org.apache.tuscany.container.js.scdl.ScdlFactory;
import org.apache.tuscany.container.js.scdl.impl.ScdlPackageImpl;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelObject;
import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Init;
/**
* Populates the assembly model from an SCDL model
*/
+@org.osoa.sca.annotations.Scope("MODULE")
public class JavaScriptSCDLModelLoader implements SCDLModelLoader {
-
- private AssemblyModelContext modelContext;
+
+ private RuntimeContext runtimeContext;
private JavaScriptAssemblyFactory jsFactory;
static {
@@ -25,17 +29,29 @@
}
/**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addLoader(this);
+ }
+
+ /**
* Constructs a new JavaSCDLModelLoader.
*/
- public JavaScriptSCDLModelLoader(AssemblyModelContext modelContext) {
- this.modelContext=modelContext;
+ public JavaScriptSCDLModelLoader() {
this.jsFactory=new JavaScriptAssemblyFactoryImpl();
}
/**
- * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(java.lang.Object)
+ * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
*/
- public AssemblyModelObject load(Object object) {
+ public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
if (object instanceof org.apache.tuscany.container.js.scdl.JavaScriptImplementation) {
org.apache.tuscany.container.js.scdl.JavaScriptImplementation scdlImplementation=(org.apache.tuscany.container.js.scdl.JavaScriptImplementation)object;
JavaScriptImplementation implementation=jsFactory.createJavaScriptImplementation();
Added: incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment?rev=380312&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment (added)
+++ incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment Thu Feb 23 18:43:20 2006
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ 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.
+ -->
+<moduleFragment xmlns="http://www.osoa.org/xmlns/sca/0.9" xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
+ xmlns:system="http://org.apache.tuscany/xmlns/system/0.9"
+ name="org.apache.tuscany.container.js">
+
+ <component name="org.apache.tuscany.container.js.builder.JavaScriptComponentContextBuilder">
+ <system:implementation.system class="org.apache.tuscany.container.js.builder.JavaScriptComponentContextBuilder"/>
+ </component>
+
+ <component name="org.apache.tuscany.container.js.loader.JavaScriptSCDLModelLoader">
+ <system:implementation.system class="org.apache.tuscany.container.js.loader.JavaScriptSCDLModelLoader"/>
+ </component>
+
+</moduleFragment>
Modified: incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/config/ModuleComponentConfigurationLoaderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/config/ModuleComponentConfigurationLoaderTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/config/ModuleComponentConfigurationLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/config/ModuleComponentConfigurationLoaderTestCase.java Thu Feb 23 18:43:20 2006
@@ -36,7 +36,6 @@
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.SCDLAssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
/**
@@ -66,11 +65,11 @@
protected void setUp() throws Exception {
super.setUp();
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
- SCDLAssemblyModelLoader modelLoader=new SCDLAssemblyModelLoaderImpl();
+ AssemblyModelLoader modelLoader=new SCDLAssemblyModelLoaderImpl();
+ JavaScriptSCDLModelLoader jsLoader=new JavaScriptSCDLModelLoader();
+ modelLoader.getSCDLModelLoaders().add(jsLoader);
AssemblyModelContext modelContext=new AssemblyModelContextImpl(
new AssemblyFactoryImpl(), modelLoader,new ResourceLoaderImpl(this.getClass().getClassLoader()));
- JavaScriptSCDLModelLoader jsLoader=new JavaScriptSCDLModelLoader(modelContext);
- modelLoader.getSCDLModelLoaders().add(jsLoader);
loader = new ModuleComponentConfigurationLoaderImpl(modelContext);
}
}
Modified: incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/integration/JSComponentContextTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/integration/JSComponentContextTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/integration/JSComponentContextTestCase.java (original)
+++ incubator/tuscany/java/sca/container.js/src/test/java/org/apache/tuscany/container/js/integration/JSComponentContextTestCase.java Thu Feb 23 18:43:20 2006
@@ -75,7 +75,7 @@
wireBuilders.add(defaultWireBuilder);
- RuntimeContext runtime = new RuntimeContextImpl(null, builders, wireBuilders);
+ RuntimeContext runtime = new RuntimeContextImpl(null, null, builders, wireBuilders);
runtime.start();
runtime.getRootContext().registerModelObject(
MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(),
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=380312&r1=380311&r2=380312&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 Thu Feb 23 18:43:20 2006
@@ -16,7 +16,6 @@
*/
package org.apache.tuscany.core.client;
-import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
@@ -42,8 +41,7 @@
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.scdl.loader.SCDLAssemblyModelLoader;
-import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
import org.osoa.sca.ModuleContext;
import org.osoa.sca.SCA;
@@ -93,23 +91,16 @@
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
ResourceLoader resourceLoader = new ResourceLoaderImpl(classLoader);
AssemblyFactory modelFactory=new AssemblyFactoryImpl();
- SCDLAssemblyModelLoader modelLoader=new SCDLAssemblyModelLoaderImpl();
+ AssemblyModelLoader modelLoader=new SCDLAssemblyModelLoaderImpl();
AssemblyModelContext modelContext = new AssemblyModelContextImpl(modelFactory, modelLoader, resourceLoader);
- modelLoader.getSCDLModelLoaders().add(new SystemSCDLModelLoader(modelContext));
- try {
- Class clazz=classLoader.loadClass("org.apache.tuscany.container.java.loader.JavaSCDLModelLoader");
- Constructor constructor=clazz.getConstructor(new Class[]{AssemblyModelContext.class});
- modelLoader.getSCDLModelLoaders().add((SCDLModelLoader)constructor.newInstance(new Object[]{modelContext}));
- } catch (Exception e) {
- System.out.println(e);
- }
+ modelLoader.getSCDLModelLoaders().add(new SystemSCDLModelLoader());
List<RuntimeConfigurationBuilder> configBuilders = new ArrayList();
configBuilders.add((new SystemComponentContextBuilder()));
configBuilders.add(new SystemEntryPointBuilder());
configBuilders.add(new SystemExternalServiceBuilder());
- runtimeContext = new RuntimeContextImpl(monitorFactory,configBuilders,null);
+ runtimeContext = new RuntimeContextImpl(monitorFactory, modelLoader.getSCDLModelLoaders(), configBuilders,null);
runtimeContext.start();
monitor.started(runtimeContext);
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java Thu Feb 23 18:43:20 2006
@@ -19,6 +19,7 @@
import org.apache.tuscany.core.context.AutowireContext;
import org.apache.tuscany.core.context.ConfigurationContext;
import org.apache.tuscany.core.context.SystemAggregateContext;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
/**
* Represents a top-level component context in the runtime, that is the bootstrap context.
@@ -58,6 +59,11 @@
* Adds a configuration builder to the runtime
*/
public void addBuilder(RuntimeConfigurationBuilder builder);
+
+ /**
+ * Adds an SCDL model loader to the runtime
+ */
+ public void addLoader(SCDLModelLoader loader);
/**
* Returns the monitor factory in use by the runtime
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java Thu Feb 23 18:43:20 2006
@@ -37,14 +37,11 @@
import org.apache.tuscany.core.context.TargetException;
import org.apache.tuscany.core.context.impl.AggregateContextImpl;
import org.apache.tuscany.core.context.impl.EventContextImpl;
-import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
import org.apache.tuscany.core.invocation.spi.ProxyFactory;
-import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
-import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
import org.apache.tuscany.core.system.context.SystemAggregateContextImpl;
import org.apache.tuscany.core.system.context.SystemScopeStrategy;
import org.apache.tuscany.model.assembly.Extensible;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
/**
* Implementation of a RuntimeContext that forms the foundation for a Tuscany environment.
@@ -55,6 +52,8 @@
private final List<RuntimeConfigurationBuilder> builders;
+ private final List<SCDLModelLoader> loaders;
+
private final List<WireBuilder> wireBuilders;
private final List<RuntimeEventListener> listeners = new ArrayList(1);
@@ -69,7 +68,7 @@
* Default constructor that creates a runtime with a NullMonitorFactory and no builders.
*/
public RuntimeContextImpl() {
- this(new NullMonitorFactory(), null, null);
+ this(new NullMonitorFactory(), null, null, null);
}
/**
@@ -79,12 +78,13 @@
* @param builders a list of builders automatically made available; may be null
* @param wireBuilders a list of wire builders automatically made available; may be null
*/
- public RuntimeContextImpl(MonitorFactory monitorFactory, List<RuntimeConfigurationBuilder> builders,
+ public RuntimeContextImpl(MonitorFactory monitorFactory, List<SCDLModelLoader> loaders, List<RuntimeConfigurationBuilder> builders,
List<WireBuilder> wireBuilders) {
super(RUNTIME);
this.monitorFactory = monitorFactory;
- this.builders = (builders == null) ? new ArrayList(1) : new ArrayList(builders);
- this.wireBuilders = (wireBuilders == null) ? new ArrayList(1) : new ArrayList(wireBuilders);
+ this.builders = (builders == null) ? new ArrayList(1) : builders;
+ this.loaders = (loaders == null) ? new ArrayList(1) : loaders;
+ this.wireBuilders = (wireBuilders == null) ? new ArrayList(1) : wireBuilders;
rootContext = new AggregateContextImpl(ROOT, this, this, new RuntimeScopeStrategy(), new EventContextImpl(), this,
monitorFactory);
@@ -103,13 +103,14 @@
* @param wireBuilders a list of wire builders automatically made available; may be null
*/
public RuntimeContextImpl(MonitorFactory monitorFactory, AggregateContext rootContext, SystemAggregateContext systemContext,
- List<RuntimeConfigurationBuilder> builders, List<WireBuilder> wireBuilders) {
+ List<SCDLModelLoader> loaders, List<RuntimeConfigurationBuilder> builders, List<WireBuilder> wireBuilders) {
super(RUNTIME);
this.rootContext = rootContext;
this.systemContext = systemContext;
this.monitorFactory = monitorFactory;
- this.builders = (builders == null) ? new ArrayList(1) : new ArrayList(builders);
- this.wireBuilders = (wireBuilders == null) ? new ArrayList(1) : new ArrayList(wireBuilders);
+ this.loaders = (loaders == null) ? new ArrayList(1) : loaders;
+ this.builders = (builders == null) ? new ArrayList(1) : builders;
+ this.wireBuilders = (wireBuilders == null) ? new ArrayList(1) : wireBuilders;
}
public void start() throws CoreRuntimeException {
@@ -133,6 +134,11 @@
public void addBuilder(RuntimeConfigurationBuilder builder) {
assert (builder != null) : "Builder was null";
builders.add(builder);
+ }
+
+ public void addLoader(SCDLModelLoader loader) {
+ assert (loader != null) : "Loader was null";
+ loaders.add(loader);
}
public AggregateContext getContext(String ctxName) {
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=380312&r1=380311&r2=380312&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 Thu Feb 23 18:43:20 2006
@@ -1,6 +1,5 @@
package org.apache.tuscany.core.system.loader;
-import org.apache.tuscany.common.resource.ResourceLoader;
import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
import org.apache.tuscany.core.system.scdl.ScdlFactory;
@@ -15,9 +14,7 @@
*/
public class SystemSCDLModelLoader implements SCDLModelLoader {
- private AssemblyModelContext modelContext;
private SystemAssemblyFactory systemFactory;
- private ResourceLoader resourceLoader;
static {
// Register the system SCDL model
@@ -27,22 +24,20 @@
/**
* Constructs a new JavaSCDLModelLoader.
*/
- public SystemSCDLModelLoader(AssemblyModelContext modelContext) {
- this.modelContext=modelContext;
- this.resourceLoader=this.modelContext.getResourceLoader();
+ public SystemSCDLModelLoader() {
this.systemFactory=new SystemAssemblyFactoryImpl();
}
/**
- * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(java.lang.Object)
+ * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
*/
- public AssemblyModelObject load(Object object) {
+ public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
if (object instanceof SystemImplementation) {
SystemImplementation scdlImplementation=(SystemImplementation)object;
org.apache.tuscany.core.system.assembly.SystemImplementation implementation=systemFactory.createSystemImplementation();
Class implementationClass;
try {
- implementationClass=resourceLoader.loadClass(scdlImplementation.getClass_());
+ implementationClass=modelContext.getResourceLoader().loadClass(scdlImplementation.getClass_());
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException(e);
}
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeBootTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeBootTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeBootTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeBootTestCase.java Thu Feb 23 18:43:20 2006
@@ -61,7 +61,7 @@
List<RuntimeConfigurationBuilder> builders = MockSystemAssemblyFactory.createBuilders();
// start the runtime context
- RuntimeContext runtimeContext = new RuntimeContextImpl(new NullMonitorFactory(), builders, null);
+ RuntimeContext runtimeContext = new RuntimeContextImpl(new NullMonitorFactory(), null, builders, null);
runtimeContext.start();
AggregateContext system = runtimeContext.getSystemContext();
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeContextImplTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeContextImplTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeContextImplTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeContextImplTestCase.java Thu Feb 23 18:43:20 2006
@@ -57,7 +57,7 @@
* point
*/
public void testSystemExplicitWiring() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
AggregateContext root = runtime.getRootContext();
@@ -108,7 +108,7 @@
* Tests autowiring an external service to a system entry point
*/
public void testSystemAutoWiring() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
AggregateContext root = runtime.getRootContext();
@@ -140,7 +140,7 @@
}
public void testServiceNotFound() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
// create a test module
@@ -160,7 +160,7 @@
}
public void testExternalServiceReferenceNotFound() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
AggregateContext system = runtime.getSystemContext();
@@ -187,7 +187,7 @@
}
public void testEntryPointReferenceNotFound() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
// create a test module
@@ -218,7 +218,7 @@
* Test two module components that have external services wired to entry points contained in each
*/
public void testCircularWires() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
// create a test modules
@@ -264,7 +264,7 @@
* as an error condition FIXME this must be implemented
*/
public void testInterModuleCircularReference() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
// create a test modules
@@ -299,7 +299,7 @@
public void testRuntimeBuilderAutowire() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
AggregateContext system = runtime.getSystemContext();
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemBootstrapTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemBootstrapTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemBootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemBootstrapTestCase.java Thu Feb 23 18:43:20 2006
@@ -55,7 +55,7 @@
* Simulates booting a runtime process
*/
public void testBoot() throws Exception {
- RuntimeContext runtimeContext = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtimeContext = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtimeContext.start();
AggregateContext systemContext = runtimeContext.getSystemContext();
@@ -86,7 +86,7 @@
}
public void testRuntimeBoot() throws Exception {
- RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), builders,null);
+ RuntimeContext runtime = new RuntimeContextImpl(new NullMonitorFactory(), null, builders,null);
runtime.start();
runtime.getRootContext();
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Aggregate.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Aggregate.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Aggregate.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Aggregate.java Thu Feb 23 18:43:20 2006
@@ -87,4 +87,10 @@
*/
List<AggregatePart> getAggregateParts();
+ /**
+ * Returns the wires.
+ * @return
+ */
+ List<Wire> getWires();
+
}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java Thu Feb 23 18:43:20 2006
@@ -153,4 +153,9 @@
*/
QName createQName(String uri);
+ /**
+ * Create a wire
+ * @return
+ */
+ Wire createWire();
}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleFragment.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleFragment.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleFragment.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleFragment.java Thu Feb 23 18:43:20 2006
@@ -17,6 +17,7 @@
package org.apache.tuscany.model.assembly;
+
/**
* Represents a module fragment.
*/
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Subsystem.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Subsystem.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Subsystem.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Subsystem.java Thu Feb 23 18:43:20 2006
@@ -17,6 +17,7 @@
package org.apache.tuscany.model.assembly;
+
/**
* Represents a subsystem.
*/
@@ -34,4 +35,4 @@
*/
void setURI(String value);
-} // Subsystem
+}
Added: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java?rev=380312&view=auto
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java (added)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java Thu Feb 23 18:43:20 2006
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * 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.model.assembly;
+
+
+/**
+ * Represents a wire.
+ */
+public interface Wire extends Extensible {
+
+ /**
+ * Returns the source URI
+ * @return
+ */
+ ServiceURI getSource();
+
+ /**
+ * Sets the source URI
+ * @param uri
+ */
+ void setSource(ServiceURI uri);
+
+ /**
+ * Returns the target URI
+ * @return
+ */
+ ServiceURI getTarget();
+
+ /**
+ * Sets the target URI
+ * @param uri
+ */
+ void setTarget(ServiceURI uri);
+
+}
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregateImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregateImpl.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregateImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregateImpl.java Thu Feb 23 18:43:20 2006
@@ -31,6 +31,7 @@
import org.apache.tuscany.model.assembly.EntryPoint;
import org.apache.tuscany.model.assembly.ExternalService;
import org.apache.tuscany.model.assembly.ServiceURI;
+import org.apache.tuscany.model.assembly.Wire;
/**
* An implementation of Aggregate.
@@ -45,6 +46,7 @@
private List<ExternalService> externalServices=new ArrayList<ExternalService>();
private Map<String, ExternalService> externalServicesMap;
private List<AggregatePart> aggregateParts;
+ private List<Wire> wires=new ArrayList<Wire>();
/**
* Constructor
@@ -121,6 +123,13 @@
}
/**
+ * @see org.apache.tuscany.model.assembly.Aggregate#getWires()
+ */
+ public List<Wire> getWires() {
+ return wires;
+ }
+
+ /**
* @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
*/
public ConfiguredService getConfiguredService(ServiceURI address) {
@@ -179,6 +188,9 @@
externalService.initialize(modelContext);
((AggregatePartImpl)externalService).setAggregate(this);
}
+ for (Wire wire : wires) {
+ wire.initialize(modelContext);
+ }
}
/**
@@ -196,6 +208,8 @@
freeze(entryPoints);
externalServices=Collections.unmodifiableList(externalServices);
freeze(externalServices);
+ wires=Collections.unmodifiableList(wires);
+ freeze(wires);
}
/**
@@ -206,6 +220,9 @@
return false;
if (!accept(aggregateParts, visitor))
+ return false;
+
+ if (!accept(wires, visitor))
return false;
return true;
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java Thu Feb 23 18:43:20 2006
@@ -35,6 +35,7 @@
import org.apache.tuscany.model.assembly.ServiceURI;
import org.apache.tuscany.model.assembly.SimpleComponent;
import org.apache.tuscany.model.assembly.Subsystem;
+import org.apache.tuscany.model.assembly.Wire;
import org.apache.tuscany.model.types.java.JavaServiceContract;
import org.apache.tuscany.model.types.java.impl.JavaServiceContractImpl;
import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
@@ -192,4 +193,10 @@
return new QName(uri.substring(0, h), uri.substring(h + 1));
}
+ /**
+ * @see org.apache.tuscany.model.assembly.AssemblyFactory#createWire()
+ */
+ public Wire createWire() {
+ return new WireImpl();
+ }
}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java Thu Feb 23 18:43:20 2006
@@ -26,14 +26,20 @@
import org.apache.tuscany.model.assembly.AssemblyFactory;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
+import org.apache.tuscany.model.assembly.Component;
import org.apache.tuscany.model.assembly.ComponentType;
+import org.apache.tuscany.model.assembly.ConfiguredReference;
+import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.EntryPoint;
import org.apache.tuscany.model.assembly.ExternalService;
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.ModuleFragment;
+import org.apache.tuscany.model.assembly.Multiplicity;
import org.apache.tuscany.model.assembly.Reference;
import org.apache.tuscany.model.assembly.Service;
import org.apache.tuscany.model.assembly.ServiceContract;
+import org.apache.tuscany.model.assembly.ServiceURI;
+import org.apache.tuscany.model.assembly.Wire;
/**
* An implementation of Module.
@@ -98,14 +104,15 @@
getEntryPoints().addAll(moduleFragment.getEntryPoints());
getExternalServices().addAll(moduleFragment.getExternalServices());
+ // Add all the wires from the module fragments
+ getWires().addAll(moduleFragment.getWires());
+
moduleFragment.initialize(modelContext);
}
// Initialize the aggregate
super.initialize(modelContext);
- //FIXME derive the module properties from the overridable properties of the components in the module
-
// Derive the component type from the entry points and external services in the module
if (componentType==null) {
AssemblyFactory factory = modelContext.getAssemblyFactory();
@@ -130,138 +137,53 @@
}
componentType.initialize(modelContext);
- //FIXME add wiring later
-//
-// // Resolve the references and the wires
-// AssemblyFactory factory = modelContext.getAssemblyFactory();
-//
-// // Resolve entry point references
-// for (Iterator<EntryPoint> i = entryPointsMap.values().iterator(); i.hasNext();) {
-// EntryPoint entryPoint = i.next();
-// ConfiguredReference configuredReference = entryPoint.getConfiguredReference();
-// for (Iterator<DataObject> r = ((org.osoa.sca.model.EntryPoint) entryPoint).getReferences().iterator(); r.hasNext();) {
-// DataObject targetURIElement = r.next();
-// ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
-// if (configuredService != null) {
-// if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getTargetConfiguredServices().isEmpty()) {
-// // FIXME shouldn't we be throwing an exception here
-// // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
-// } else {
-// configuredReference.getTargetConfiguredServices().add(configuredService);
-// }
-// }
-// }
-// }
-//
-// // Resolve component references
-// for (Iterator<Component> i = componentsMap.values().iterator(); i.hasNext();) {
-// Component component = i.next();
-// ReferenceValues referenceValues = ((org.osoa.sca.model.Component) component).getReferenceValues();
-// if (referenceValues == null)
-// continue;
-// Sequence sequence = referenceValues.getAny();
-// for (int p = 0, n = sequence.size(); p < n; p++) {
-// Property property = sequence.getProperty(p);
-// DataObject targetURIElement = (DataObject) sequence.getValue(p);
-//
-// // Get the named reference
-// ConfiguredReference configuredReference = component.getConfiguredReference(property.getName());
-// if (configuredReference != null) {
-// ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
-// if (configuredService != null) {
-// if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getTargetConfiguredServices().isEmpty()) {
-// // FIXME shouldn't we be throwing an exception here
-// // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
-// } else {
-// configuredReference.getTargetConfiguredServices().add(configuredService);
-// }
-// }
-// } else {
-// // FIXME shouldn't we be throwing an exception here
-// // log.error("Undefined reference " + property.getName());
-// }
-// }
-// }
-//
-// // Resolve wires from this module and its module fragments
-// resolveWires(factory, getWires());
-// for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
-// ModuleFragment moduleFragment = i.next();
-// resolveWires(factory, ((org.osoa.sca.model.ModuleFragment) moduleFragment).getWires());
-// }
- }
-
-// /**
-// * Resolve a target URI
-// *
-// * @param factory
-// * @param targetURIElement
-// */
-// private ConfiguredService resolveURIElement(AssemblyFactory factory, DataObject targetURIElement) {
-// Sequence sequence = targetURIElement.getSequence(0);
-// String targetURI = (String) sequence.getValue(0);
-// ServiceURI serviceURI = factory.createServiceURI(null, targetURI);
-// ConfiguredService configuredService = getConfiguredService(serviceURI);
-// if (configuredService == null) {
-// // FIXME shouldn't we be throwing an exception here
-// // log.error("Cannot find service for " + targetURI);
-// }
-// return configuredService;
-// }
-//
-// /**
-// * Resolve the given wires
-// *
-// * @param factory
-// * @param wires
-// */
-// private void resolveWires(AssemblyFactory factory, List<ModuleWire> wires) {
-//
-// // Loop through the wires
-// for (Iterator<ModuleWire> i = wires.iterator(); i.hasNext();) {
-// ModuleWire wire = i.next();
-//
-// // Get the source reference
-// ServiceURI sourceURI = factory.createServiceURI(null, wire.getSourceUri());
-// ConfiguredReference configuredReference = null;
-// String partName = sourceURI.getPartName();
-// String referenceName = sourceURI.getServiceName();
-// if (referenceName != null) {
-// Component component = getComponent(partName);
-// if (component != null) {
-// configuredReference = component.getConfiguredReference(referenceName);
-// }
-// } else {
-// EntryPoint entryPoint = getEntryPoint(partName);
-// if (entryPoint != null) {
-// configuredReference = entryPoint.getConfiguredReference();
-// }
-// }
-// if (configuredReference == null) {
-// // FIXME shouldn't we be throwing an exception here
-// // log.error("Cannot find wire source " + sourceURI);
-// } else {
-//
-// // Resolve the target service endpoint
-// ServiceURI targetURI = factory.createServiceURI(null, wire.getTargetUri());
-// ConfiguredService configuredService = getConfiguredService(targetURI);
-// if (configuredService != null) {
-//
-// // Wire the reference to the target
-// if (configuredReference.getReference().isMultiplicityN()) {
-// configuredReference.getTargetConfiguredServices().add(configuredService);
-// } else {
-// configuredReference.getTargetConfiguredServices().clear();
-// configuredReference.getTargetConfiguredServices().add(configuredService);
-// }
-// } else {
-// // FIXME shouldn't we be throwing an exception here
-// // log.error("Cannot find service for " + targetURI.getAddress());
-// }
-// }
-// }
-// }
+ //FIXME derive the module properties from the overridable properties of the components in the module
+
+ // Wire the module parts
+ for (Wire wire : getWires()) {
+ // Get the source reference
+ ServiceURI sourceURI=wire.getSource();
+ ConfiguredReference configuredReference = null;
+ String partName = sourceURI.getPartName();
+ String referenceName = sourceURI.getServiceName();
+ if (referenceName != null) {
+ Component component = getComponent(partName);
+ if (component != null) {
+ configuredReference = component.getConfiguredReference(referenceName);
+ }
+ } else {
+ EntryPoint entryPoint = getEntryPoint(partName);
+ if (entryPoint != null) {
+ configuredReference = entryPoint.getConfiguredReference();
+ }
+ }
+ if (configuredReference == null) {
+ //FIXME
+ //throw new IllegalArgumentException("Cannot find wire source " + sourceURI.getAddress());
+ } else {
+
+ // Resolve the target service endpoint
+ ServiceURI targetURI = wire.getTarget();
+ ConfiguredService configuredService = getConfiguredService(targetURI);
+ if (configuredService != null) {
+
+ // Wire the reference to the target
+ Multiplicity multiplicity=configuredReference.getReference().getMultiplicity();
+ if (multiplicity==Multiplicity.ZERO_N || multiplicity==Multiplicity.ONE_N) {
+ configuredReference.getTargetConfiguredServices().add(configuredService);
+ } else {
+ configuredReference.getTargetConfiguredServices().clear();
+ configuredReference.getTargetConfiguredServices().add(configuredService);
+ }
+ } else {
+ //FIXME
+ //throw new IllegalArgumentException("Cannot find service for " + targetURI.getAddress());
+ }
+ }
+ }
+ }
+
/**
* @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
*/
Added: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java?rev=380312&view=auto
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java (added)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java Thu Feb 23 18:43:20 2006
@@ -0,0 +1,66 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * 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.model.assembly.impl;
+
+import org.apache.tuscany.model.assembly.ServiceURI;
+import org.apache.tuscany.model.assembly.Wire;
+
+/**
+ * An implementation of Wire.
+ */
+public class WireImpl extends ExtensibleImpl implements Wire {
+
+ private ServiceURI source;
+ private ServiceURI target;
+
+ /**
+ * Constructor
+ */
+ protected WireImpl() {
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Wire#getSource()
+ */
+ public ServiceURI getSource() {
+ return source;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Wire#setSource(org.apache.tuscany.model.assembly.ServiceURI)
+ */
+ public void setSource(ServiceURI uri) {
+ checkNotFrozen();
+ source=uri;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Wire#getTarget()
+ */
+ public ServiceURI getTarget() {
+ return target;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Wire#setTarget(org.apache.tuscany.model.assembly.ServiceURI)
+ */
+ public void setTarget(ServiceURI uri) {
+ checkNotFrozen();
+ target=uri;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
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=380312&r1=380311&r2=380312&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 Thu Feb 23 18:43:20 2006
@@ -16,12 +16,14 @@
*/
package org.apache.tuscany.model.assembly.loader;
+import java.util.List;
+
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.ComponentType;
import org.apache.tuscany.model.assembly.Module;
-import org.apache.tuscany.model.assembly.ModuleComponent;
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.
@@ -63,11 +65,9 @@
Subsystem getSubsystem(String uri);
/**
- * Load a module component.
- * @param name
- * @param uri
+ * Returns the SCDL model loaders
* @return
*/
- ModuleComponent loadModuleComponent(String name, String uri);
+ List<SCDLModelLoader> getSCDLModelLoaders();
}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/SCDLModelLoader.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/SCDLModelLoader.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/SCDLModelLoader.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/SCDLModelLoader.java Thu Feb 23 18:43:20 2006
@@ -16,6 +16,7 @@
*/
package org.apache.tuscany.model.scdl.loader;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelObject;
/**
@@ -25,9 +26,10 @@
/**
* Load an SCDL model object into an assembly model.
+ * @param modelContext
* @param object
* @return
*/
- AssemblyModelObject load(Object object);
+ AssemblyModelObject load(AssemblyModelContext modelContext, Object object);
}
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=380312&r1=380311&r2=380312&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 Thu Feb 23 18:43:20 2006
@@ -16,8 +16,6 @@
*/
package org.apache.tuscany.model.scdl.loader.impl;
-import java.io.IOException;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -28,10 +26,9 @@
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.ComponentType;
import org.apache.tuscany.model.assembly.Module;
-import org.apache.tuscany.model.assembly.ModuleComponent;
import org.apache.tuscany.model.assembly.ModuleFragment;
import org.apache.tuscany.model.assembly.Subsystem;
-import org.apache.tuscany.model.scdl.loader.SCDLAssemblyModelLoader;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
import org.apache.tuscany.model.util.ModelTransformer;
import org.apache.tuscany.model.util.ModelTransformerImpl;
@@ -39,7 +36,7 @@
/**
*/
-public class SCDLAssemblyModelLoaderImpl implements SCDLAssemblyModelLoader {
+public class SCDLAssemblyModelLoaderImpl implements AssemblyModelLoader {
private static final String SCA_MODULE_FILE_NAME = "sca.module";
//FIXME can fragments have a variable prefix name?
@@ -112,45 +109,6 @@
return transform(scdlSubsystem).getSubsystem();
}
- /**
- * @see org.apache.tuscany.model.assembly.loader.AssemblyModelLoader#loadModuleComponent(java.lang.String, java.lang.String)
- */
- public ModuleComponent loadModuleComponent(String name, String uri) throws AssemblyModelLoadException {
-
- // Load the sca.module file
- URL url;
- try {
- url = resourceLoader.getResource(SCA_MODULE_FILE_NAME);
- } catch (IOException e) {
- throw new AssemblyModelLoadException(e);
- }
- if (url == null) {
- throw new AssemblyModelLoadException(SCA_MODULE_FILE_NAME);
- }
- Module module=getModule(url.toString());
-
- // Load the sca.fragment files
- Iterator<URL> i;
- try {
- i = resourceLoader.getAllResources(SCA_FRAGMENT_FILE_NAME);
- } catch (IOException e) {
- throw new AssemblyModelLoadException(SCA_FRAGMENT_FILE_NAME, e);
- }
- while (i.hasNext()) {
- ModuleFragment moduleFragment=getModuleFragment(i.next().toString());
- module.getModuleFragments().add(moduleFragment);
- }
-
- // Create the module component
- ModuleComponent moduleComponent=assemblyFactory.createModuleComponent();
- moduleComponent.setName(name);
- moduleComponent.setURI(uri);
- moduleComponent.setComponentImplementation(module);
- moduleComponent.initialize(modelContext);
-
- return moduleComponent;
- }
-
/**
* @see org.apache.tuscany.model.scdl.loader.SCDLAssemblyModelLoader#getSCDLModelLoaders()
*/
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLContentHandlerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLContentHandlerImpl.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLContentHandlerImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLContentHandlerImpl.java Thu Feb 23 18:43:20 2006
@@ -29,7 +29,9 @@
import org.apache.tuscany.model.assembly.OverrideOption;
import org.apache.tuscany.model.assembly.Scope;
import org.apache.tuscany.model.assembly.ServiceContract;
+import org.apache.tuscany.model.assembly.ServiceURI;
import org.apache.tuscany.model.assembly.SimpleComponent;
+import org.apache.tuscany.model.assembly.Wire;
import org.apache.tuscany.model.scdl.Binding;
import org.apache.tuscany.model.scdl.Component;
import org.apache.tuscany.model.scdl.ComponentType;
@@ -429,15 +431,21 @@
if (configuredReference == null) {
throw new IllegalArgumentException("Undefined reference " + referenceName);
}
+ ServiceURI referenceURI=factory.createServiceURI(null, configuredReference);
// Get the reference value text
//FIXME SDO returns a featuremap instead of a sequence
//Sequence text = propertyElement.getSequence(0);
FeatureMap text = (FeatureMap)referenceElement.get(0);
if (text != null && text.size() != 0) {
- Object rawValue = text.getValue(0);
- //FIXME
- //configuredReference.setValue(rawValue);
+ String uri = text.getValue(0).toString();
+ ServiceURI serviceURI=factory.createServiceURI(uri);
+
+ // Create a wire
+ Wire wire=factory.createWire();
+ wire.setSource(referenceURI);
+ wire.setTarget(serviceURI);
+ currentAggregate.getWires().add(wire);
}
}
}
@@ -543,16 +551,34 @@
* @see org.apache.tuscany.model.scdl.util.ScdlSwitch#caseModuleWire(org.apache.tuscany.model.scdl.ModuleWire)
*/
public Object caseModuleWire(ModuleWire object) {
- // TODO Auto-generated method stub
- return super.caseModuleWire(object);
+ final Wire wire=factory.createWire();
+ wire.setSource(factory.createServiceURI(object.getSourceUri()));
+ wire.setTarget(factory.createServiceURI(object.getTargetUri()));
+
+ linkers.add(new Runnable() {
+ public void run() {
+ currentAggregate.getWires().add(wire);
+ };
+ });
+
+ return wire;
}
/**
* @see org.apache.tuscany.model.scdl.util.ScdlSwitch#caseSystemWire(org.apache.tuscany.model.scdl.SystemWire)
*/
public Object caseSystemWire(SystemWire object) {
- // TODO Auto-generated method stub
- return super.caseSystemWire(object);
+ final Wire wire=factory.createWire();
+ wire.setSource(factory.createServiceURI(object.getSource().toString()));
+ wire.setTarget(factory.createServiceURI(object.getTarget().toString()));
+
+ linkers.add(new Runnable() {
+ public void run() {
+ currentAggregate.getWires().add(wire);
+ };
+ });
+
+ return wire;
}
/**
@@ -564,7 +590,7 @@
for (SCDLModelLoader scdlModelLoader : scdlModelLoaders) {
// Invoke an SCDL loader to handle the specific implementation type
- final ComponentImplementation implementation=(ComponentImplementation)scdlModelLoader.load(object);
+ final ComponentImplementation implementation=(ComponentImplementation)scdlModelLoader.load(modelContext, object);
if (implementation!=null) {
component.setComponentImplementation(implementation);
return implementation;
@@ -591,7 +617,7 @@
for (SCDLModelLoader scdlModelLoader : scdlModelLoaders) {
// Invoke an SCDL loader to handle the specific binding type
- final org.apache.tuscany.model.assembly.Binding binding=(org.apache.tuscany.model.assembly.Binding)scdlModelLoader.load(object);
+ final org.apache.tuscany.model.assembly.Binding binding=(org.apache.tuscany.model.assembly.Binding)scdlModelLoader.load(modelContext, object);
if (binding!=null) {
bindings.add(binding);
return binding;
Modified: incubator/tuscany/java/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLAssemblyLoaderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLAssemblyLoaderTestCase.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLAssemblyLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLAssemblyLoaderTestCase.java Thu Feb 23 18:43:20 2006
@@ -28,7 +28,7 @@
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
-import org.apache.tuscany.model.scdl.loader.SCDLAssemblyModelLoader;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
/**
@@ -45,7 +45,7 @@
public void testLoader() {
ResourceLoader resourceLoader=new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader());
- SCDLAssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl();
+ AssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl();
AssemblyFactory assemblyFactory=new AssemblyFactoryImpl();
AssemblyModelContext modelContext=new AssemblyModelContextImpl(assemblyFactory, assemblyLoader, resourceLoader);
Modified: incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/RuntimeBootstrap.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/RuntimeBootstrap.java?rev=380312&r1=380311&r2=380312&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/RuntimeBootstrap.java (original)
+++ incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/RuntimeBootstrap.java Thu Feb 23 18:43:20 2006
@@ -97,7 +97,7 @@
// throw new BootstrapConfigurationException("Error initializing configuration loader in Tomcat configuration", e);
// }
// create the SCA Runtime and have it bound in the global JNDI context
- return new RuntimeContextImpl(monitorFactory, createBuilders(),null);
+ return new RuntimeContextImpl(monitorFactory, null, createBuilders(),null);
}
/**