summaryrefslogtreecommitdiffstats
path: root/branches/java-post-M1/sca/containers/container.rhino/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'branches/java-post-M1/sca/containers/container.rhino/src/main')
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java74
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java132
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java40
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java114
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java140
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/loader/JavaScriptImplementationLoader.java168
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java108
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScript.java76
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoScript.java290
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/ScriptEngine.java573
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/TuscanyShell.java42
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/LICENSE.txt777
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/NOTICE18
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/README.txt35
-rw-r--r--branches/java-post-M1/sca/containers/container.rhino/src/main/resources/system.fragment32
15 files changed, 0 insertions, 2619 deletions
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java
deleted file mode 100644
index c68bf239a3..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/assembly/JavaScriptImplementation.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- *
- * 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.container.rhino.assembly;
-
-import org.apache.tuscany.common.resource.ResourceLoader;
-import org.apache.tuscany.model.assembly.impl.AtomicImplementationImpl;
-
-import commonj.sdo.helper.TypeHelper;
-
-/**
- * Default implementation of a JavScript component implementation type
- *
- * @version $Rev$ $Date$
- */
-public class JavaScriptImplementation extends AtomicImplementationImpl {
-
- private String scriptFile;
-
- private String script;
-
- private ResourceLoader resourceLoader;
-
- private TypeHelper typeHelper;
-
- public JavaScriptImplementation() {
- super();
- }
-
- public void setResourceLoader(ResourceLoader resourceLoader) {
- this.resourceLoader = resourceLoader;
- }
-
- public ResourceLoader getResourceLoader() {
- return resourceLoader;
- }
-
- public TypeHelper getTypeHelper() {
- return typeHelper;
- }
-
- public void setTypeHelper(TypeHelper typeHelper) {
- this.typeHelper = typeHelper;
- }
-
- public String getScriptFile() {
- return scriptFile;
- }
-
- public void setScriptFile(String fn) {
- scriptFile = fn;
- }
-
- public String getScript() {
- return script;
- }
-
- public void setScript(String script) {
- this.script = script;
- }
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
deleted file mode 100644
index 2012971014..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- *
- * 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.container.rhino.builder;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.wsdl.Input;
-import javax.wsdl.Message;
-import javax.wsdl.Operation;
-import javax.wsdl.Part;
-import javax.wsdl.PortType;
-
-import org.apache.tuscany.container.rhino.assembly.JavaScriptImplementation;
-import org.apache.tuscany.container.rhino.config.JavaScriptContextFactory;
-import org.apache.tuscany.container.rhino.rhino.E4XDataBinding;
-import org.apache.tuscany.container.rhino.rhino.RhinoE4XScript;
-import org.apache.tuscany.container.rhino.rhino.RhinoScript;
-import org.apache.tuscany.core.builder.BuilderConfigException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.extension.ContextFactoryBuilderSupport;
-import org.apache.tuscany.model.assembly.Scope;
-import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ServiceContract;
-import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
-
-import commonj.sdo.helper.TypeHelper;
-
-/**
- * Builds {@link org.apache.tuscany.container.rhino.config.JavaScriptContextFactory}s from a JavaScript component type
- *
- * @version $Rev$ $Date$
- */
-@org.osoa.sca.annotations.Scope("MODULE")
-public class JavaScriptContextFactoryBuilder extends ContextFactoryBuilderSupport<JavaScriptImplementation> {
-
- @Override
- protected ContextFactory createContextFactory(String componentName, JavaScriptImplementation jsImplementation, Scope scope) {
-
- Map<String, Class> services = new HashMap<String, Class>();
- for (Service service : jsImplementation.getComponentType().getServices()) {
- services.put(service.getName(), service.getServiceContract().getInterface());
- }
-
- Map<String, Object> defaultProperties = new HashMap<String, Object>();
- for (org.apache.tuscany.model.assembly.Property property : jsImplementation.getComponentType().getProperties()) {
- defaultProperties.put(property.getName(), property.getDefaultValue());
- }
-
- String script = jsImplementation.getScript();
- ClassLoader cl = jsImplementation.getResourceLoader().getClassLoader();
-
- RhinoScript invoker;
- if (isE4XStyle(componentName, jsImplementation.getComponentType().getServices())) {
- E4XDataBinding dataBinding = createDataBinding(jsImplementation);
- invoker = new RhinoE4XScript(componentName, script, defaultProperties, cl, dataBinding);
- } else {
- invoker = new RhinoScript(componentName, script, defaultProperties, cl);
- }
-
- Map<String, Object> properties = new HashMap<String, Object>();
- JavaScriptContextFactory contextFactory = new JavaScriptContextFactory(componentName, scope, services, properties, invoker);
-
- return contextFactory;
- }
-
- /**
- * Tests if this should be an E4X style service
- * Its E4X if the JavaScript component uses WSDL to define its interface
- */
- protected boolean isE4XStyle(String componentName, List<Service> services) {
- Boolean isE4XStyle = null;
- for (Service service : services) {
- ServiceContract sc = service.getServiceContract();
- if (sc instanceof WSDLServiceContract) {
- if (isE4XStyle != null && !isE4XStyle.booleanValue()) {
- throw new BuilderConfigException("mixed service interface types not supportted");
- }
- isE4XStyle = Boolean.TRUE;
- } else {
- isE4XStyle = Boolean.FALSE;
- }
- }
- return isE4XStyle.booleanValue();
- }
-
- /**
- * Create the data binding for the component initialized for each operation in the service
- */
- protected E4XDataBinding createDataBinding(JavaScriptImplementation jsImplementation) {
- ClassLoader classLoader = jsImplementation.getResourceLoader().getClassLoader();
- TypeHelper typeHelper = jsImplementation.getTypeHelper();
- E4XDataBinding dataBinding = new E4XDataBinding(classLoader, typeHelper);
- for (Service service : jsImplementation.getComponentType().getServices()) {
- ServiceContract sc = service.getServiceContract();
- if (sc instanceof WSDLServiceContract) {
- PortType pt = ((WSDLServiceContract) sc).getPortType();
- for (Object o : pt.getOperations()) {
- Operation operation = (Operation) o;
- Input input = operation.getInput();
- if (input != null) {
- Message message = input.getMessage();
- if (message != null) {
- List parts = message.getOrderedParts(null);
- if (parts != null && parts.size() > 0) {
- Part part = (Part) parts.get(0);
- dataBinding.addElementQName(operation.getName(), part.getElementName());
- }
- }
- }
- }
- }
- }
- return dataBinding;
- }
-
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java
deleted file mode 100644
index 0c45aee35e..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptTargetWireBuilder.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- *
- * 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.container.rhino.builder;
-
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.container.rhino.config.JavaScriptContextFactory;
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.context.ScopeContext;
-import org.apache.tuscany.core.extension.ComponentTargetInvoker;
-import org.apache.tuscany.core.extension.WireBuilderSupport;
-import org.apache.tuscany.core.wire.TargetInvoker;
-import org.osoa.sca.annotations.Scope;
-
-/**
- * Responsible for bridging source- and target-side invocations chains when the target type is a JavaScript implementation
- *
- * @version $Rev$ $Date$
- */
-@Scope("MODULE")
-public class JavaScriptTargetWireBuilder extends WireBuilderSupport<JavaScriptContextFactory> {
-
- protected TargetInvoker createInvoker(QualifiedName targetName, Method operation, ScopeContext context, boolean downScope) {
- return new ComponentTargetInvoker(targetName, operation, context);
- }
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
deleted file mode 100644
index 28a0302a4f..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- *
- * 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.container.rhino.config;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.container.rhino.context.JavaScriptComponentContext;
-import org.apache.tuscany.container.rhino.rhino.RhinoScript;
-import org.apache.tuscany.core.builder.ContextCreationException;
-import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.builder.ContextResolver;
-import org.apache.tuscany.core.context.AtomicContext;
-import org.apache.tuscany.core.context.CompositeContext;
-import org.apache.tuscany.core.wire.SourceWireFactory;
-import org.apache.tuscany.core.wire.TargetWireFactory;
-import org.apache.tuscany.model.assembly.Scope;
-
-/**
- * Creates instance contexts for JavaScript component types
- *
- * @version $Rev$ $Date$
- */
-public class JavaScriptContextFactory implements ContextFactory<AtomicContext>, ContextResolver {
-
- private Scope scope;
-
- private String name;
-
- private Map<String, TargetWireFactory> targetProxyFactories = new HashMap<String, TargetWireFactory>();
-
- private List<SourceWireFactory> sourceProxyFactories = new ArrayList<SourceWireFactory>();
-
- private Map<String, Class> services;
-
- private Map<String, Object> properties;
-
- private RhinoScript invoker;
-
- private CompositeContext parentContext;
-
- public JavaScriptContextFactory(String name, Scope scope, Map<String, Class> services, Map<String, Object> properties, RhinoScript invoker) {
- this.name = name;
- this.scope = scope;
- this.services = services;
- this.properties = properties;
- this.invoker = invoker;
- }
-
- public AtomicContext createContext() throws ContextCreationException {
- return new JavaScriptComponentContext(name, services, properties, sourceProxyFactories, targetProxyFactories, invoker.copy());
- }
-
- public Scope getScope() {
- return scope;
- }
-
- public String getName() {
- return name;
- }
-
- public void addProperty(String propertyName, Object value) {
- properties.put(propertyName, value);
- }
-
- public void addTargetWireFactory(String serviceName, TargetWireFactory factory) {
- targetProxyFactories.put(serviceName, factory);
- }
-
- public TargetWireFactory getTargetWireFactory(String serviceName) {
- return targetProxyFactories.get(serviceName);
- }
-
- public Map<String, TargetWireFactory> getTargetWireFactories() {
- return targetProxyFactories;
- }
-
- public void addSourceWireFactory(String referenceName, SourceWireFactory factory) {
- sourceProxyFactories.add(factory);
- }
-
- public void addSourceWireFactories(String referenceName, Class referenceInterface, List<SourceWireFactory> factories, boolean multiplicity) {
- sourceProxyFactories.addAll(factories);
- }
-
- public List<SourceWireFactory> getSourceWireFactories() {
- return sourceProxyFactories;
- }
-
- public void prepare(CompositeContext parent) {
- parentContext = parent;
- }
-
- public CompositeContext getCurrentContext() {
- return parentContext;
- }
-
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java
deleted file mode 100644
index bfa4eeaffb..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/context/JavaScriptComponentContext.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- *
- * 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.container.rhino.context;
-
-import org.apache.tuscany.container.rhino.rhino.RhinoScript;
-import org.apache.tuscany.core.context.AtomicContext;
-import org.apache.tuscany.core.context.CoreRuntimeException;
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.context.TargetException;
-import org.apache.tuscany.core.context.event.InstanceCreated;
-import org.apache.tuscany.core.context.impl.AbstractContext;
-import org.apache.tuscany.core.wire.ProxyCreationException;
-import org.apache.tuscany.core.wire.WireFactory;
-import org.apache.tuscany.core.wire.SourceWireFactory;
-import org.apache.tuscany.core.wire.TargetWireFactory;
-import org.osoa.sca.ServiceRuntimeException;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class JavaScriptComponentContext extends AbstractContext implements AtomicContext {
-
- private Map<String, Class> services;
-
- private RhinoScript rhinoInvoker;
-
- private Map<String, Object> properties;
-
- private List<SourceWireFactory> sourceProxyFactories;
-
- private Map<String, TargetWireFactory> targetProxyFactories;
-
- private Object instance;
-
- public JavaScriptComponentContext(String name, Map<String, Class> services, Map<String, Object> properties,
- List<SourceWireFactory> sourceProxyFactories, Map<String, TargetWireFactory> targetProxyFactories, RhinoScript invoker) {
- super(name);
- assert (services != null) : "No service interface mapping specified";
- assert (properties != null) : "No properties specified";
- this.services = services;
- this.properties = properties;
- this.rhinoInvoker = invoker;
- this.sourceProxyFactories = sourceProxyFactories;
- this.targetProxyFactories = targetProxyFactories;
- }
-
- public Object getInstance(QualifiedName qName) throws TargetException {
- return getInstance(qName, true);
- }
-
- public void init() throws TargetException {
- getInstance(null, false);
- }
-
- public void destroy() throws TargetException {
-
- }
-
- private synchronized Object getInstance(QualifiedName qName, boolean notify) throws TargetException {
- String portName = qName.getPortName();
- WireFactory targetFactory;
- if (portName != null) {
- targetFactory = targetProxyFactories.get(portName);
- } else {
- //FIXME The port name is null here, either locateService needs more information (the expected interface) to
- // select the correct port, or we need to return a factory that matches the whole set of services exposed by
- // the component.
- targetFactory = targetProxyFactories.values().iterator().next();
- }
- if (targetFactory == null) {
- TargetException e = new TargetException("Target service not found");
- e.setIdentifier(qName.getPortName());
- e.addContextName(getName());
- throw e;
- }
- try {
- Object proxy = targetFactory.createProxy(); //createProxy(new Class[] { iface });
- if (notify) {
- publish(new InstanceCreated(this));
- }
- return proxy;
- } catch (ProxyCreationException e) {
- TargetException te = new TargetException("Error returning target", e);
- e.setIdentifier(qName.getPortName());
- e.addContextName(getName());
- throw te;
- }
- }
-
- public Object getTargetInstance() throws TargetException {
- rhinoInvoker.updateScriptScope(createServiceReferences()); // create references
- rhinoInvoker.updateScriptScope(properties); // create prop values
- return rhinoInvoker;
- }
-
- /**
- * Creates a map containing any ServiceReferences
- */
- private Map createServiceReferences() {
- try {
- Map<String, Object> context = new HashMap<String, Object>();
- for (SourceWireFactory proxyFactory : sourceProxyFactories) {
- context.put(proxyFactory.getConfiguration().getReferenceName(), proxyFactory.createProxy());
- }
- return context;
- } catch (ProxyCreationException e) {
- throw new ServiceRuntimeException(e);
- }
- }
-
- public boolean isEagerInit() {
- return false;
- }
-
- public boolean isDestroyable() {
- return false;
- }
-
- public void start() throws CoreRuntimeException {
- }
-
- public void stop() throws CoreRuntimeException {
- }
-
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/loader/JavaScriptImplementationLoader.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/loader/JavaScriptImplementationLoader.java
deleted file mode 100644
index e28776049c..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/loader/JavaScriptImplementationLoader.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- *
- * Copyright 2005 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.container.rhino.loader;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.common.resource.ResourceLoader;
-import org.apache.tuscany.container.rhino.assembly.JavaScriptImplementation;
-import org.apache.tuscany.core.config.ConfigurationLoadException;
-import org.apache.tuscany.core.config.InvalidRootElementException;
-import org.apache.tuscany.core.config.MissingResourceException;
-import org.apache.tuscany.core.config.SidefileLoadException;
-import org.apache.tuscany.core.loader.LoaderContext;
-import org.apache.tuscany.core.loader.StAXElementLoader;
-import org.apache.tuscany.core.loader.StAXLoaderRegistry;
-import org.apache.tuscany.core.loader.assembly.AssemblyConstants;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.model.assembly.ComponentType;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-
-/**
- * @version $Rev$ $Date$
- */
-@Scope("MODULE")
-public class JavaScriptImplementationLoader implements StAXElementLoader<JavaScriptImplementation> {
-
- public static final QName IMPLEMENTATION_JS = new QName("http://org.apache.tuscany/xmlns/js/0.9", "implementation.js");
-
- protected StAXLoaderRegistry registry;
-
- private XMLInputFactory xmlFactory;
-
- public JavaScriptImplementationLoader() {
- // todo make this a reference to a system service
- xmlFactory = XMLInputFactory.newInstance();
- }
-
- @Autowire
- public void setRegistry(StAXLoaderRegistry registry) {
- this.registry = registry;
- }
-
- @Init(eager = true)
- public void start() {
- registry.registerLoader(IMPLEMENTATION_JS, this);
- }
-
- @Destroy
- public void stop() {
- registry.unregisterLoader(IMPLEMENTATION_JS, this);
- }
-
- public JavaScriptImplementation load(XMLStreamReader reader, LoaderContext loaderContext) throws XMLStreamException, ConfigurationLoadException {
- String scriptFile = reader.getAttributeValue(null, "scriptFile");
- String script = loadScript(scriptFile, loaderContext.getResourceLoader());
- ComponentType componentType = loadComponentType(scriptFile, loaderContext);
-
- JavaScriptImplementation jsImpl = new JavaScriptImplementation();
- jsImpl.setComponentType(componentType);
- jsImpl.setScriptFile(scriptFile);
- jsImpl.setScript(script);
- jsImpl.setResourceLoader(loaderContext.getResourceLoader());
- jsImpl.setTypeHelper(registry.getContext().getTypeHelper());
- return jsImpl;
- }
-
- protected String loadScript(String scriptFile, ResourceLoader resourceLoader) throws ConfigurationLoadException {
- URL url = resourceLoader.getResource(scriptFile);
- if (url == null) {
- throw new ConfigurationLoadException(scriptFile);
- }
- InputStream inputStream;
- try {
- inputStream = url.openStream();
- } catch (IOException e) {
- throw new ConfigurationLoadException(scriptFile, e);
- }
- try {
- StringBuilder sb = new StringBuilder(1024);
- int n;
- while ((n = inputStream.read()) != -1) {
- sb.append((char) n);
- }
- return sb.toString();
- } catch (IOException e) {
- throw new ConfigurationLoadException(scriptFile, e);
- } finally {
- try {
- inputStream.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
-
- protected ComponentType loadComponentType(String scriptFile, LoaderContext loaderContext) throws SidefileLoadException, MissingResourceException{
- String sidefile = scriptFile.substring(0, scriptFile.lastIndexOf('.')) + ".componentType";
- URL componentTypeFile = loaderContext.getResourceLoader().getResource(sidefile);
- if (componentTypeFile == null) {
- throw new MissingResourceException(sidefile);
- }
-
- try {
- XMLStreamReader reader;
- InputStream is;
- is = componentTypeFile.openStream();
- try {
- reader = xmlFactory.createXMLStreamReader(is);
- try {
- reader.nextTag();
- if (!AssemblyConstants.COMPONENT_TYPE.equals(reader.getName())) {
- InvalidRootElementException e = new InvalidRootElementException(AssemblyConstants.COMPONENT_TYPE, reader.getName());
- e.setResourceURI(componentTypeFile.toString());
- throw e;
- }
- return (ComponentType) registry.load(reader, loaderContext);
- } finally {
- try {
- reader.close();
- } catch (XMLStreamException e) {
- // ignore
- }
- }
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- // ignore
- }
- }
- } catch (IOException e) {
- SidefileLoadException sfe = new SidefileLoadException(e.getMessage());
- sfe.setResourceURI(componentTypeFile.toString());
- throw sfe;
- } catch (XMLStreamException e) {
- SidefileLoadException sfe = new SidefileLoadException(e.getMessage());
- sfe.setResourceURI(componentTypeFile.toString());
- throw sfe;
- } catch (ConfigurationLoadException e) {
- SidefileLoadException sfe = new SidefileLoadException(e.getMessage());
- sfe.setResourceURI(componentTypeFile.toString());
- throw sfe;
- }
- }
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
deleted file mode 100644
index 3969735b23..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * 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.container.rhino.rhino;
-
-import java.io.ByteArrayInputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.core.wire.InvocationRuntimeException;
-import org.apache.tuscany.databinding.sdo.SDOXMLHelper;
-import org.apache.xmlbeans.XmlObject;
-import org.mozilla.javascript.Context;
-import org.mozilla.javascript.Scriptable;
-
-import commonj.sdo.helper.TypeHelper;
-
-/**
- * DataBinding to convert between Java objects and JavaScript E4X XML objects. This uses SDO to do the conversion between XML and Java so WSDL/XSDs
- * need to have be registered with the SDO runtime.
- *
- * TODO: suport non-wrapped WSDL
- */
-public class E4XDataBinding {
-
- private ClassLoader classLoader;
-
- private TypeHelper typeHelper;
-
- private Map<String, QName> function2ElementMap;
-
- private static final boolean IS_WRAPPED = true;
-
- public E4XDataBinding(ClassLoader classLoader, TypeHelper typeHelper) {
- this.classLoader = classLoader;
- this.typeHelper = typeHelper;
- this.function2ElementMap = new HashMap<String, QName>();
- }
-
- /**
- * Convert E4X XML to Java objects
- *
- * @param e4xXML
- * @return the array of Objects
- */
- public Object[] toObjects(Scriptable e4xXML) {
- byte[] xmlBytes = e4xXML.toString().getBytes();
- Object[] os = SDOXMLHelper.toObjects(classLoader, typeHelper, xmlBytes, IS_WRAPPED);
- return os;
- }
-
- /**
- * Convert request Java objects to XML
- *
- * @param functionName
- * @param os
- * @param scope
- * @return a JavaScript E4X XML object
- */
- public Scriptable toE4X(String functionName, Object[] os, Scriptable scope) {
- QName elementQN = function2ElementMap.get(functionName);
- byte[] xmlBytes = SDOXMLHelper.toXMLBytes(classLoader, typeHelper, os, elementQN, IS_WRAPPED);
-
- XmlObject xmlObject;
- try {
- xmlObject = XmlObject.Factory.parse(new ByteArrayInputStream(xmlBytes));
- } catch (Exception e) {
- throw new InvocationRuntimeException(e);
- }
-
- Context cx = Context.enter();
- try {
-
- Object xml = cx.getWrapFactory().wrap(cx, scope, xmlObject, XmlObject.class);
- Scriptable jsXML = cx.newObject(scope, "XML", new Object[] { xml });
-
- return jsXML;
-
- } finally {
- Context.exit();
- }
- }
-
- /**
- * Add the XML element name to use for an operation when converting from
- * Java objects to XML.
- *
- * @param functionName
- * @param elementQN
- */
- public void addElementQName(String functionName, QName elementQN) {
- function2ElementMap.put(functionName, elementQN);
- }
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScript.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScript.java
deleted file mode 100644
index 5f42f6d164..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScript.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * 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.container.rhino.rhino;
-
-import java.util.Map;
-
-import org.mozilla.javascript.Function;
-import org.mozilla.javascript.Scriptable;
-import org.mozilla.javascript.xml.XMLObject;
-
-/**
- * Invokes a JavaScript/E4X function with argument and return values that may be E4X XML objects.
- */
-public class RhinoE4XScript extends RhinoScript {
-
- private E4XDataBinding dataBinding;
-
- public RhinoE4XScript(String scriptName, String script, Map context, ClassLoader cl, E4XDataBinding dataBinding) {
- super(scriptName, script, context, cl);
- this.dataBinding = dataBinding;
- }
-
- protected RhinoE4XScript(String scriptName, String script, Scriptable scriptScope, E4XDataBinding dataBinding) {
- super(scriptName, script, scriptScope);
- this.dataBinding = dataBinding;
- }
-
- /**
- * Turn args to JS objects and convert any OMElement to E4X XML
- */
- @Override
- protected Object[] processArgs(String functionName, Object[] args, Scriptable scope) {
- return new Object[] { dataBinding.toE4X(functionName, args, scope) };
- }
-
- /**
- * Unwrap and convert response converting any E4X XML into Java objects
- */
- @Override
- protected Object processResponse(String functionName, Object response, Class responseClass) {
- if (response instanceof XMLObject) {
- Object[] os = dataBinding.toObjects((XMLObject) response);
- if (os == null || os.length < 1) {
- return null;
- } else {
- return os[0];
- }
- } else {
- return super.processResponse(functionName, response, responseClass);
- }
- }
-
- @Override
- protected Function getFunction(Scriptable scope, String functionName) {
- return super.getFunction(scope, "process");
- }
-
- @Override
- public RhinoE4XScript copy() {
- return new RhinoE4XScript(scriptName, script, scriptScope, dataBinding);
- }
-
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoScript.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoScript.java
deleted file mode 100644
index 5518159f69..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/RhinoScript.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- *
- * 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.container.rhino.rhino;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.tuscany.core.extension.ExternalServiceInvoker;
-import org.mozilla.javascript.Context;
-import org.mozilla.javascript.ContextFactory;
-import org.mozilla.javascript.Function;
-import org.mozilla.javascript.ImporterTopLevel;
-import org.mozilla.javascript.Script;
-import org.mozilla.javascript.Scriptable;
-import org.mozilla.javascript.Wrapper;
-
-/**
- * Represents, and is responsible for dispatching to, a JavaScript artifact in Rhino
- */
-public class RhinoScript implements ExternalServiceInvoker {
-
- protected String scriptName;
-
- protected String script;
-
- protected Scriptable scriptScope;
-
- private Scriptable sharedScope;
-
- /*
- * Enable dynamic scopes so a script can be used concurrently with a global shared scope and individual execution
- * scopes. See http://www.mozilla.org/rhino/scopes.html TODO: need to review how ths fits in with Tuscany scopes
- */
- private static class MyFactory extends ContextFactory {
- protected boolean hasFeature(Context cx, int featureIndex) {
- if (featureIndex == Context.FEATURE_DYNAMIC_SCOPE) {
- return true;
- }
- return super.hasFeature(cx, featureIndex);
- }
- }
-
- static {
- ContextFactory.initGlobal(new MyFactory());
- }
-
- /**
- * Create a new RhinoInvoker.
- *
- * @param scriptName the name of the script. Can be anything, only used in messages to identify the script
- * @param script the complete script
- */
- public RhinoScript(String scriptName, String script) {
- this(scriptName, script, (Map) null, null);
- }
-
- /**
- * Create a new RhinoInvoker.
- *
- * @param scriptName the name of the script. Can be anything, only used in messages to identify the script
- * @param script the complete script
- * @param context name-value pairs that are added in to the scope where the script is compiled. May be null. The
- * value objects are made available to the script by using a variable with the name.
- */
- public RhinoScript(String scriptName, String script, Map context, ClassLoader cl) {
- this.scriptName = scriptName;
- this.script = script;
- initScriptScope(scriptName, script, context, cl);
- initSharedScope();
- }
-
- /**
- * Construct a RhinoInvoker from another RhinoInvoker object. This uses the original script scope so the script
- * doesn't need to be recompiled.
- */
- protected RhinoScript(String scriptName, String script, Scriptable scriptScope) {
- this.scriptName = scriptName;
- this.script = script;
- this.scriptScope = scriptScope;
- initSharedScope();
- }
-
- /**
- * Invoke a script function
- *
- * @param functionName the name of the function to invoke.
- * @param arg arguments to the function, may be a single object or an array of objects.
- * @return the function return value.
- */
- public Object invoke(String functionName, Object[] args) {
- return invoke(functionName, args, null, null);
- }
-
- /**
- * Invoke a script function
- *
- * @param functionName the name of the function to invoke.
- * @param arg arguments to the function, may be a single object or an array of objects.
- * @param contexts a Map of name-value pairs which are added to the wire Scope to enable the script to access
- * the values by using the variable in name.
- * @return the function return value.
- */
- public Object invoke(String functionName, Object[] args, Map contexts) {
- return invoke(functionName, args, null, contexts);
- }
-
- /**
- * Invoke a script function
- *
- * @param functionName the name of the function to invoke.
- * @param arg arguments to the function, may be a single object or an array of objects.
- * @param responseClass the desired class of the response object.
- * @param contexts a Map of name-value pairs which are added to the wire Scope to enable the script to access
- * the values by using the variable in name.
- * @return the function return value.
- */
- public Object invoke(String functionName, Object[] args, Class responseClass, Map contexts) {
- Context cx = Context.enter();
- try {
- Function function = getFunction(scriptScope, functionName);
- Scriptable invocationScope = getInvocationScope(cx, contexts);
- Object[] jsArgs = processArgs(functionName, args, invocationScope);
- Object jsResponse = function.call(cx, invocationScope, invocationScope, jsArgs);
- Object response = processResponse(functionName, jsResponse, responseClass);
- return response;
- } finally {
- Context.exit();
- }
- }
-
- /**
- * Turn args to JS objects and convert any OMElement to E4X XML
- */
- protected Object[] processArgs(String functionName, Object[] arg, Scriptable scope) {
- Object[] args;
- if (arg == null) {
- args = new Object[] { null };
- } else if (arg.getClass().isArray()) {
- args = (Object[]) arg;
- for (int i = 0; i < args.length; i++) {
- args[i] = Context.toObject(args[i], scope);
- }
- } else {
- args = new Object[] { Context.toObject(arg, scope) };
- }
- return args;
- }
-
- /**
- * Unwrap and convert response
- */
- protected Object processResponse(String functionName, Object response, Class responseClass) {
- if (Context.getUndefinedValue().equals(response)) {
- response = null;
- } else if (response instanceof Wrapper) {
- response = ((Wrapper) response).unwrap();
- } else {
- if (responseClass != null) {
- response = Context.jsToJava(response, responseClass);
- } else {
- response = Context.jsToJava(response, String.class);
- }
- }
- return response;
- }
-
- /**
- * Create a Rhino scope and compile the script into it
- */
- protected void initScriptScope(String fileName, String scriptCode, Map context, ClassLoader cl) {
- Context cx = Context.enter();
- try {
-
- if (cl != null) {
- cx.setApplicationClassLoader(cl);
- }
- this.scriptScope = new ImporterTopLevel( cx, true );
- Script compiledScript = cx.compileString(scriptCode, fileName, 1, null);
- compiledScript.exec(cx, scriptScope);
- addContexts(scriptScope, context);
-
- } finally {
- Context.exit();
- }
- }
-
- /**
- * Initializes the shared scope
- */
- protected void initSharedScope() {
- Context cx = Context.enter();
- try {
-
- this.sharedScope = cx.newObject(scriptScope);
- sharedScope.setPrototype(scriptScope);
- sharedScope.setParentScope(null);
-
- } finally {
- Context.exit();
- }
- }
-
- /**
- * Get a Rhino scope for the function wire. If the wire has no context objects then this will use the
- * shared scope otherwise a new scope is created to hold the context objects. Any new variables the executing script
- * might define will go in the sharedScope. This new scope is just to hold the wire specific context objects.
- */
- protected Scriptable getInvocationScope(Context cx, Map contexts) {
-
- Scriptable scope;
- if (contexts == null || contexts.size() == 0) {
- scope = sharedScope;
- } else {
- scope = cx.newObject(sharedScope);
- scope.setPrototype(sharedScope);
- scope.setParentScope(null);
- addContexts(scope, contexts);
- }
-
- return scope;
- }
-
- /**
- * Add the context to the scope. This will make the objects available to a script by using the name it was added
- * with.
- */
- protected void addContexts(Scriptable scope, Map contexts) {
- if (contexts != null) {
- for (Iterator i = contexts.keySet().iterator(); i.hasNext();) {
- String name = (String) i.next();
- Object value = contexts.get(name);
- if (value != null) {
- scope.put(name, scope, Context.toObject(value, scope));
- }
- }
- }
- }
-
- /**
- * Get the Rhino Function object for the named script function
- */
- protected Function getFunction(Scriptable scope, String functionName) {
-
- Object handleObj = scope.get(functionName, scope);
-
- if (!(handleObj instanceof Function)) {
- throw new RuntimeException("script function '" + functionName + "' is undefined or not a function in script "
- + scriptName);
- }
-
- return (Function) handleObj;
- }
-
- /**
- * Make a copy of this RhinoScript object. This shares the script scope to avoid the overhead of recompiling the
- * script, and to allow any initialization done by the script to be shared.
- */
- public RhinoScript copy() {
- return new RhinoScript(scriptName, script, scriptScope);
- }
-
- /**
- * Update the scope where the script is complied with new context values
- *
- * @param properties
- */
- public void updateScriptScope(Map context) {
- Context.enter();
- try {
- addContexts(scriptScope, context);
- } finally {
- Context.exit();
- }
- }
-
-} \ No newline at end of file
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/ScriptEngine.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/ScriptEngine.java
deleted file mode 100644
index e8e6605300..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/ScriptEngine.java
+++ /dev/null
@@ -1,573 +0,0 @@
-/**
- *
- * 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.container.rhino.shell;
-
-import java.io.BufferedReader;
-import java.io.CharArrayWriter;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-import org.apache.tuscany.core.client.TuscanyRuntime;
-import org.mozilla.javascript.Context;
-import org.mozilla.javascript.Function;
-import org.mozilla.javascript.Scriptable;
-import org.mozilla.javascript.ScriptableObject;
-import org.mozilla.javascript.WrappedException;
-import org.osoa.sca.CurrentModuleContext;
-import org.osoa.sca.ModuleContext;
-
-/**
- *
- * This class implements a Scripting Engine for the Tuscany runitme. This engine uses the Rhino javaScript Engine.
- *
- * <p>
- * The defulat script functions supported by this engine are the follwing:
- * <ul>
- * <li>echo</li>
- * <li>version</li>
- * <li>load</li>
- * <li>help</li>
- * <li>exit</li>
- * <li>printStackTrace</li>
- * <li>loadModule</li>
- * <li>listComponents</li>
- * <li>getComponent</li>
- * <li>listServices</li>
- * <li>getService</li>
- * </ul>
- *
- * This class was based on ideas in the Rhino shell sample at http://lxr.mozilla.org/mozilla/source/js/rhino/examples/Shell.java
- */
-public class ScriptEngine extends ScriptableObject implements Runnable {
-
- /**
- * The context with which this script engine will be run
- */
- private Context jsContext = null;
-
- /**
- * Set of parameters passes to the script engine
- */
- private String[] params = null;
-
- /**
- * instance of Tuscany runtime
- */
- private TuscanyRuntime tuscany;
-
- /**
- * A reference to the old class loader
- */
- private ClassLoader oldClassLoader = null;
-
- /**
- * Flag to indicate, if the shoutdown has requested by the user
- */
- private boolean shutdown;
-
- /**
- * The current output stream
- */
- private static PrintStream out = System.out;
-
- /**
- * The current error output stream
- */
- private PrintStream err = System.err;
-
- /**
- * The current input stream
- */
- private InputStream in = System.in;
-
- /**
- * The prompt used
- */
- private String prompt = "js> ";
-
- /**
- * The last exception that occured, used for debugging
- */
- private Throwable lastException = null;
-
- /**
- * Names of the global functions particular to the shell. Note that these functions are not part of ECMA.
- */
- public static final String[] SCRIPT_FUNCTIONS = { "echo", "version", "load", "help", "exit", "printStackTrace", "loadModule", "listComponents",
- "getComponent", "listServices", "getService", };
-
- /**
- * get the class name
- *
- * @return "global"
- */
- @Override
- public String getClassName() {
- return "global";
- }
-
- /**
- * Construct a script engine
- *
- * @param command
- * line arguments
- */
- public ScriptEngine(String[] params) {
- this.params = params;
- }
-
- /**
- * Run the script engine. Invoking this method will initialize the script engine, Tuscany Runtime and load any SCA modules if found in the
- * classpath.
- *
- */
- public void run() {
- // Associate a new Context with this thread
- jsContext = Context.enter();
- try {
- // initialize standard objects
- jsContext.initStandardObjects(this);
- // define supported script functions
- this.defineFunctionProperties(SCRIPT_FUNCTIONS, ScriptEngine.class, ScriptableObject.DONTENUM);
-
- // init the tuscany runtime
- // this.initTuscanyRuntime();
- // initialize the script engine
- this.startScriptEngin();
- } finally {
- if (tuscany != null) {
- tuscany.stop();
- }
- Thread.currentThread().setContextClassLoader(oldClassLoader);
- Context.exit();
- }
- }
-
- /**
- * Print the help message.
- *
- * This method is defined as a script function.
- */
- public void help() {
- final String helpMsg = "Command Description \n" + "======= =========== \n"
- + "help() Display this message. \n"
- + "load(['f1.js', ...]) Load and execute javaScript source files named f1.js, etc. \n"
- + "echo([expr ...]) Evaluate and print a variable or an expressions. \n" + "exit() Exit this shell. \n"
- + "version([number]) Get or set the javaScript version. \n"
- + "printStackTrace() Print the stacktrace of the last exception \n" + "loadModule(jar|war) Not yet implemented. \n"
- + "listComponents() Not yet implemented. \n"
- + "getComponent('name') Get an instance of the component with the given name. \n"
- + "listServices() Not yet implemented. \n" + "getService('name') Not yet implemented. \n";
-
- out.println();
- out.println(helpMsg);
- }
-
- /**
- * Load a given module with the tuscany runtime
- *
- * This method is defined as a script function.
- *
- * @param moduleName
- * absolute path of the module
- */
- public void loadModule(final String moduleName) {
- // TODO complete this method
- if (tuscany != null) {
- tuscany.stop();
- }
-
- try {
- File file = new File(moduleName);
- URL[] urls = new URL[] { file.toURL(), };
- final ClassLoader newCL = new URLClassLoader(urls);
- Thread.currentThread().setContextClassLoader(newCL);
-
- tuscany = new TuscanyRuntime(moduleName, null);
- tuscany.start();
-
- } catch (Exception e) {
- e.printStackTrace();
- err.println(e.getMessage());
- lastException = e;
- }
- }
-
- /**
- * List the components available within the current module
- *
- * This method is defined as a script function.
- */
- public void listComponents() {
- // TODO complete this method
- }
-
- /**
- * Get the component available within the current module with a given name
- *
- * This method is defined as a script function.
- *
- * @param name
- * name of the component
- * @return service component object represented by the given name
- */
- public Object getComponent(String name) {
- ModuleContext tuscanyContext = CurrentModuleContext.getContext();
- Object component = tuscanyContext.locateService(name);
-
- return component;
- }
-
- /**
- * List the external services available within the current module
- *
- * This method is defined as a script function.
- */
- public void listServices() {
- // TODO complete this method
- }
-
- /**
- * Get an external service defined within the current module with a given name
- *
- * This method is defined as a script function.
- *
- * @param name
- * name of the service
- * @return service object represented by the given name
- */
- public Object getService(String name) {
- // get a service proxy
- ModuleContext tuscanyContext = CurrentModuleContext.getContext();
- Object service = tuscanyContext.locateService(name);
- out.println("service obj = " + service);
-
- return service;
- }
-
- /**
- * Echo a variable or a message.
- *
- * This method is defined as a script function.
- *
- * @param jsContext
- * @param thisObj
- * @param args
- * @param function
- */
- public static void echo(Context jsContext, Scriptable thisObj, Object[] args, Function function) {
- if (args.length > 0) {
- out.println(args[0]);
- for (int i = 1; i < args.length; i++) {
- out.print(" " + Context.toString(args[i]));
- }
- }
- out.println();
- }
-
- /**
- * print the stacktrace of the last exception
- *
- * This method is defined as a script function.
- */
- public void printStackTrace() {
- if (lastException == null) {
- out.println("No stacktrace available");
- } else {
- err.println(getStackTrace(lastException));
- }
- }
-
- /**
- * Exit the shell when it is in the interactive mode.
- *
- * This method is defined as a script function.
- */
- public void exit() {
- shutdown = true;
- }
-
- /**
- * Get and set the language version.
- *
- * This method is defined as a JavaScript function.
- *
- * @param jsContext
- * @param thisObj
- * @param args
- * @param function
- */
- public static double version(Context jsContext, Scriptable thisObj, Object[] args, Function function) {
- if (args.length > 0) {
- int i = (int) Context.toNumber(args[0]);
- jsContext.setLanguageVersion(i);
- }
- return (double) jsContext.getLanguageVersion();
- }
-
- /**
- * Load and execute a set of JavaScript source files.
- *
- * This method is defined as a JavaScript function.
- *
- * @param jsContext
- * @param thisObj
- * @param args
- * @param function
- */
- public static void load(Context jsContext, Scriptable thisObj, Object[] args, Function function) {
- ScriptEngine engine = (ScriptEngine) getTopLevelScope(thisObj);
- for (int i = 0; i < args.length; i++) {
- engine.processFile(Context.toString(args[i]));
- }
- }
-
- /**
- * Get the current output stream
- *
- * @return current output stream
- */
- public PrintStream getOut() {
- return out;
- }
-
- /**
- * Set the current output stream
- *
- * @param out
- * the new output stream
- */
- public void setOut(PrintStream out) {
- ScriptEngine.out = out;
- }
-
- /**
- * Get the current error output stream
- *
- * @return Returns the current error output stream.
- */
- public PrintStream getErr() {
- return err;
- }
-
- /**
- * Set the current error output stream
- *
- * @param err
- * The new error output stream to set.
- */
- public void setErr(PrintStream err) {
- this.err = err;
- }
-
- /**
- * Get the current input stream
- *
- * @return Returns the current input stream.
- */
- public InputStream getIn() {
- return in;
- }
-
- /**
- * Set the current input stream
- *
- * @param in
- * The new input stream to set.
- */
- public void setIn(InputStream in) {
- this.in = in;
- }
-
- /**
- * initialize the Tuscany runtime
- *
- */
- protected void initTuscanyRuntime() {
-
- // Required to allow the SDO runtime to use the correct classloader
- oldClassLoader = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
-
- // Obtain and start the Tuscany runtime
- try {
- tuscany = new TuscanyRuntime("TuscanyClient", null);
- tuscany.start();
-
- // this will get the module name; either specified by user or from the classpath
- String moduleName = getCurrentModuleName();
- // TODO how do we get all the components, services exposed by this module ?
-
- } catch (Exception ce) {
- ce.printStackTrace();
- err.println("Failed to start Tuscany runtime: " + ce.getMessage());
- // ce.printStackTrace(err);
- lastException = ce;
- }
- }
-
- /**
- * start the script engine
- *
- */
- protected void startScriptEngin() {
-
- out.println("Tuscany SCA Shell 0.1, type help() for a list of supported functions.");
-
- // set up "arguments" in the global scope
- if (params.length > 1) {
- int length = params.length - 1;
- Object obj[] = new Object[length];
- System.arraycopy(params, 1, obj, 0, length);
-
- Scriptable argsObj = jsContext.newArray(this, obj);
- this.defineProperty("arguments", argsObj, ScriptableObject.DONTENUM);
- }
-
- if (params.length == 0) {
- // no file name specified, go to interactive mode
- this.startInteractiveMode();
- } else {
- // TODO this could be a jar file or a script file
- // process the specified file
- this.processFile(params[0]);
- }
- System.gc();
- }
-
- /**
- * Evaluate JavaScript source in the interactive mode.
- *
- */
- private void startInteractiveMode() {
- // see if org.mozilla.javascript.tools.shell.Main.processSource() can handle this
- // Main.setErr(this.getErr());
- // Main.setOut(this.getOut());
- // Main.setIn(this.getIn());
- // Main.processSource(jsContext, filename);
-
- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- int currentLine = 1;
- boolean done = false;
- while (!shutdown && !done) {
- out.print(prompt);
- out.flush();
- int lineToCompile = currentLine;
- try {
- StringBuffer source = new StringBuffer();
- // read the next line entered by user
- boolean compilable = false;
- while (!compilable) {
- String nextLine = reader.readLine();
- if (nextLine != null) {
- currentLine += 1;
- source.append(nextLine).append("\n");
- compilable = jsContext.stringIsCompilableUnit(source.toString());
- } else {
- // TODO check if this can handle Ctrl+C
- System.out.println("=== Ctrl+C pressed ==");
- // break both the loops
- done = true;
- compilable = true;
- }
- }
- Object result = jsContext.evaluateString(this, source.toString(), "<stdin>", lineToCompile, null);
- if (result != Context.getUndefinedValue()) {
- out.println(Context.toString(result));
- }
- } catch (Exception e) {
- if (e instanceof WrappedException) {
- WrappedException we = (WrappedException) e;
- err.println(we.getWrappedException().getMessage());
- }
- err.println(e.getMessage());
- // e.printStackTrace(err);
- lastException = e;
- }
- }
- out.println();
- }
-
- /**
- * Read the contents from a script file and execute it.
- *
- * @param filename
- * the name of the file to compile
- */
- private void processFile(String fileName) {
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new FileReader(fileName));
- jsContext.evaluateReader(this, reader, fileName, 1, null);
- } catch (Exception e) {
- if (e instanceof WrappedException) {
- WrappedException we = (WrappedException) e;
- err.println(we.getWrappedException().getMessage());
- }
- err.println(e.getLocalizedMessage());
- // e.printStackTrace(err);
- lastException = e;
- } finally {
- try {
- reader.close();
- } catch (IOException ioe) {
- err.println(ioe.getLocalizedMessage());
- // ioe.printStackTrace(err);
- lastException = ioe;
- }
- }
- }
-
- /**
- * Find the SCA module name. If the user have specified one, use that, otherwise, if there is a module definition in the path, pick it up.
- *
- * @return name of the module
- */
- private String getCurrentModuleName() {
- String moduleName = "";
-
- // TODO parse the arguments to see if there is an SCA module name
- return moduleName;
- }
-
- /**
- * Get the stacktrace for a give exception
- *
- * @param t
- * Throwable from which the stacktrace need to be obtained
- * @return char array containing the stack trace
- */
- private char[] getStackTrace(Throwable t) {
- CharArrayWriter charWriter = new CharArrayWriter(2048);
- PrintWriter writer = new PrintWriter(charWriter);
- t.printStackTrace(writer);
-
- return charWriter.toCharArray();
- }
-
- public static void main(String args[]) {
- new ScriptEngine(args).run();
- }
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/TuscanyShell.java b/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/TuscanyShell.java
deleted file mode 100644
index c26dd213b1..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/shell/TuscanyShell.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * 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.container.rhino.shell;
-
-/**
- * This class provides a scripting shell that can be used as a Tuscany client.
- * This shell extends from the Rhino JavaScript Engine's shell and
- * provides capablities for working with the Tuscany Runtime.
- *
- * <p>
- * This shell initializt the Tuscany Engine, using the input parameters that point
- * to an SCA jar or war or a directory with an sca.module file. The Shell will
- * load that module and then all the components and external services in the
- * sca.module become available in the Shell, so that you can invoke them dynamically.
- *
- */
-public class TuscanyShell {
-
- /**
- * Main entry point into the shell. This method invokes the <code>ScriptEngine</code>.
- *
- */
- public static void main(String args[]) {
- ScriptEngine engine = new ScriptEngine(args);
- new Thread(engine).start();
- }
-
-}
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/LICENSE.txt b/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/LICENSE.txt
deleted file mode 100644
index 4095b1af76..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/LICENSE.txt
+++ /dev/null
@@ -1,777 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-
-===============================================================================
-
-For the Rhino JavaScript project:
-
-Netscape Public License V1.1
-
- AMENDMENTS
-
- The Netscape Public License Version 1.1 ("NPL") consists of the
- Mozilla Public License Version 1.1 with the following Amendments,
- including Exhibit A-Netscape Public License. Files identified with
- "Exhibit A-Netscape Public License" are governed by the Netscape
- Public License Version 1.1.
-
- Additional Terms applicable to the Netscape Public License.
- I. Effect.
- These additional terms described in this Netscape Public
- License -- Amendments shall apply to the Mozilla Communicator
- client code and to all Covered Code under this License.
-
- II. "Netscape's Branded Code" means Covered Code that Netscape
- distributes and/or permits others to distribute under one or more
- trademark(s) which are controlled by Netscape but which are not
- licensed for use under this License.
-
- III. Netscape and logo.
- This License does not grant any rights to use the trademarks
- "Netscape", the "Netscape N and horizon" logo or the "Netscape
- lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
- "Smart Browsing" even if such marks are included in the Original
- Code or Modifications.
-
- IV. Inability to Comply Due to Contractual Obligation.
- Prior to licensing the Original Code under this License, Netscape
- has licensed third party code for use in Netscape's Branded Code.
- To the extent that Netscape is limited contractually from making
- such third party code available under this License, Netscape may
- choose to reintegrate such code into Covered Code without being
- required to distribute such code in Source Code form, even if
- such code would otherwise be considered "Modifications" under
- this License.
-
- V. Use of Modifications and Covered Code by Initial Developer.
- V.1. In General.
- The obligations of Section 3 apply to Netscape, except to
- the extent specified in this Amendment, Section V.2 and V.3.
-
- V.2. Other Products.
- Netscape may include Covered Code in products other than the
- Netscape's Branded Code which are released by Netscape
- during the two (2) years following the release date of the
- Original Code, without such additional products becoming
- subject to the terms of this License, and may license such
- additional products on different terms from those contained
- in this License.
-
- V.3. Alternative Licensing.
- Netscape may license the Source Code of Netscape's Branded
- Code, including Modifications incorporated therein, without
- such Netscape Branded Code becoming subject to the terms of
- this License, and may license such Netscape Branded Code on
- different terms from those contained in this License.
-
- VI. Litigation.
- Notwithstanding the limitations of Section 11 above, the
- provisions regarding litigation in Section 11(a), (b) and (c) of
- the License shall apply to all disputes relating to this License.
-
- EXHIBIT A-Netscape Public License.
-
- "The contents of this file are subject to the Netscape Public
- License Version 1.1 (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.mozilla.org/NPL/
-
- Software distributed under the License is distributed on an "AS
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
-
- The Original Code is Mozilla Communicator client code, released
- March 31, 1998.
-
- The Initial Developer of the Original Code is Netscape
- Communications Corporation. Portions created by Netscape are
- Copyright (C) 1998-1999 Netscape Communications Corporation. All
- Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the
- terms of the _____ license (the "[___] License"), in which case
- the provisions of [______] License are applicable instead of
- those above. If you wish to allow use of your version of this
- file only under the terms of the [____] License and not to allow
- others to use your version of this file under the NPL, indicate
- your decision by deleting the provisions above and replace them
- with the notice and other provisions required by the [___]
- License. If you do not delete the provisions above, a recipient
- may use your version of this file under either the NPL or the
- [___] License."
-
- ----------------------------------------------------------------------
-
- MOZILLA PUBLIC LICENSE
- Version 1.1
-
- ---------------
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 1.1. "Contributor" means each entity that creates or contributes to
- the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications
- made by that particular Contributor.
-
- 1.3. "Covered Code" means the Original Code or Modifications or the
- combination of the Original Code and Modifications, in each case
- including portions thereof.
-
- 1.4. "Electronic Distribution Mechanism" means a mechanism generally
- accepted in the software development community for the electronic
- transfer of data.
-
- 1.5. "Executable" means Covered Code in any form other than Source
- Code.
-
- 1.6. "Initial Developer" means the individual or entity identified
- as the Initial Developer in the Source Code notice required by Exhibit
- A.
-
- 1.7. "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
-
- 1.8. "License" means this document.
-
- 1.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 1.9. "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- A. Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications.
-
- B. Any new file that contains any part of the Original Code or
- previous Modifications.
-
- 1.10. "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License.
-
- 1.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 1.11. "Source Code" means the preferred form of the Covered Code for
- making modifications to it, including all modules it contains, plus
- any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge.
-
- 1.12. "You" (or "Your") means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of
- this definition, "control" means (a) the power, direct or indirect,
- to cause the direction or management of such entity, whether by
- contract or otherwise, or (b) ownership of more than fifty percent
- (50%) of the outstanding shares or beneficial ownership of such
- entity.
-
-2. Source Code License.
-
- 2.1. The Initial Developer Grant.
- The Initial Developer hereby grants You a world-wide, royalty-free,
- non-exclusive license, subject to third party intellectual property
- claims:
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications
- created by such Contributor (or portions thereof) either on an
- unmodified basis, with other Modifications, as Covered Code
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-3. Distribution Obligations.
-
- 3.1. Application of License.
- The Modifications which You create or to which You contribute are
- governed by the terms of this License, including without limitation
- Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version
- of this License released under Section 6.1, and You must include a
- copy of this License with every copy of the Source Code You
- distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this
- License or the recipients' rights hereunder. However, You may include
- an additional document offering the additional rights described in
- Section 3.5.
-
- 3.2. Availability of Source Code.
- Any Modification which You create or to which You contribute must be
- made available in Source Code form under the terms of this License
- either on the same media as an Executable version or via an accepted
- Electronic Distribution Mechanism to anyone to whom you made an
- Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six
- (6) months after a subsequent version of that particular Modification
- has been made available to such recipients. You are responsible for
- ensuring that the Source Code version remains available even if the
- Electronic Distribution Mechanism is maintained by a third party.
-
- 3.3. Description of Modifications.
- You must cause all Covered Code to which You contribute to contain a
- file documenting the changes You made to create that Covered Code and
- the date of any change. You must include a prominent statement that
- the Modification is derived, directly or indirectly, from Original
- Code provided by the Initial Developer and including the name of the
- Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the
- origin or ownership of the Covered Code.
-
- 3.4. Intellectual Property Matters
- (a) Third Party Claims.
- If Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter and shall take other steps
- (such as notifying appropriate mailing lists or newsgroups)
- reasonably calculated to inform those who received the Covered
- Code that new knowledge has been obtained.
-
- (b) Contributor APIs.
- If Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. If it is not possible to put such notice in a particular Source
- Code file due to its structure, then You must include such notice in a
- location (such as a relevant directory) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Code. However, You
- may do so only on Your own behalf, and not on behalf of the Initial
- Developer or any Contributor. You must make it absolutely clear than
- any such warranty, support, indemnity or liability obligation is
- offered by You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred by the
- Initial Developer or such Contributor as a result of warranty,
- support, indemnity or liability terms You offer.
-
- 3.6. Distribution of Executable Versions.
- You may distribute Covered Code in Executable form only if the
- requirements of Section 3.1-3.5 have been met for that Covered Code,
- and if You include a notice stating that the Source Code version of
- the Covered Code is available under the terms of this License,
- including a description of how and where You have fulfilled the
- obligations of Section 3.2. The notice must be conspicuously included
- in any notice in an Executable version, related documentation or
- collateral in which You describe recipients' rights relating to the
- Covered Code. You may distribute the Executable version of Covered
- Code or ownership rights under a license of Your choice, which may
- contain terms different from this License, provided that You are in
- compliance with the terms of this License and that the license for the
- Executable version does not attempt to limit or alter the recipient's
- rights in the Source Code version from the rights set forth in this
- License. If You distribute the Executable version under a different
- license You must make it absolutely clear that any terms which differ
- from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the
- Initial Developer and every Contributor for any liability incurred by
- the Initial Developer or such Contributor as a result of any such
- terms You offer.
-
- 3.7. Larger Works.
- You may create a Larger Work by combining Covered Code with other code
- not governed by the terms of this License and distribute the Larger
- Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
- If it is impossible for You to comply with any of the terms of this
- License with respect to some or all of the Covered Code due to
- statute, judicial order, or regulation then You must: (a) comply with
- the terms of this License to the maximum extent possible; and (b)
- describe the limitations and the code they affect. Such description
- must be included in the LEGAL file described in Section 3.4 and must
- be included with all distributions of the Source Code. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Application of this License.
-
- This License applies to code to which the Initial Developer has
- attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
- 6.1. New Versions.
- Netscape Communications Corporation ("Netscape") may publish revised
- and/or new versions of the License from time to time. Each version
- will be given a distinguishing version number.
-
- 6.2. Effect of New Versions.
- Once Covered Code has been published under a particular version of the
- License, You may always continue to use it under the terms of that
- version. You may also choose to use such Covered Code under the terms
- of any subsequent version of the License published by Netscape. No one
- other than Netscape has the right to modify the terms applicable to
- Covered Code created under this License.
-
- 6.3. Derivative Works.
- If You create or use a modified version of this License (which you may
- only do in order to apply it to code which is not already Covered Code
- governed by this License), You must (a) rename Your license so that
- the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape Public License. (Filling in the name of the Initial
- Developer, Original Code or Contributor in the notice described in
- Exhibit A shall not of themselves be deemed to be modifications of
- this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
- COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
- DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
- IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
- YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
- COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
- OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
- 8.1. This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure
- such breach within 30 days of becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall
- survive any termination of this License. Provisions which, by their
- nature, must remain in effect beyond the termination of this License
- shall survive.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
- ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
- WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
- RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
- PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
- EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
- The Covered Code is a "commercial item," as that term is defined in
- 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
- software" and "commercial computer software documentation," as such
- terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
- C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
- all U.S. Government End Users acquire Covered Code with only those
- rights set forth herein.
-
-11. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if
- any, provides otherwise), excluding its conflict-of-law provisions.
- With respect to disputes in which at least one party is a citizen of,
- or an entity chartered or registered to do business in the United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- Any law or regulation which provides that the language of a contract
- shall be construed against the drafter shall not apply to this
- License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/NOTICE b/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index d48810c0ec..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,18 +0,0 @@
-=========================================================================
-== NOTICE file corresponding to the section 4 d of ==
-== the Apache License, Version 2.0, ==
-== in this case for the Apache Tuscany distribution. ==
-=========================================================================
-
-This product includes software developed by the Apache Software Foundation
-(http://www.apache.org/).
-
-This product also includes software developed by:
-- the Eclipse Modeling Framework project (http://www.eclipse.org/emf/)
-- the Celtix project (http://celtix.objectweb.org/)
-- the Mozilla Rhino project (http://www.mozilla.org/rhino/)
-- the GlassFish JAX-WS project (https://jax-ws.dev.java.net/)
-
-Please read the LICENSE.txt file present in the root directory of this
-distribution.
-
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/README.txt b/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/README.txt
deleted file mode 100644
index 9b26d1690a..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/META-INF/README.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Apache Tuscany M1 build (May, 2006)
-===================================
-
-http://incubator.apache.org/tuscany/
-
-Tuscany is an effort undergoing incubation at the Apache Software Foundation
-(ASF), sponsored by the Web Services PMC.
-
-Incubation is required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness or
-stability of the code, it does indicate that the project has yet to be fully
-endorsed by the ASF.
-
-
-Support
--------
-
-Any problem with this release can be reported to the Tuscany mailing list
-or in the JIRA issue tracker.
-
-Mailing list subscription:
- tuscany-dev-subscribe@ws.apache.org
-
-Jira:
- http://issues.apache.org/jira/browse/Tuscany
-
-
-Thank you for using Tuscany!
-
-
-The Tuscany Team.
-
diff --git a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/system.fragment b/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/system.fragment
deleted file mode 100644
index 840efd10bc..0000000000
--- a/branches/java-post-M1/sca/containers/container.rhino/src/main/resources/system.fragment
+++ /dev/null
@@ -1,32 +0,0 @@
-<?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:tuscany="http://org.apache.tuscany/xmlns/system/0.9"
- name="org.apache.tuscany.container.rhino">
-
- <component name="org.apache.tuscany.container.rhino.builder.JavaScriptContextFactoryBuilder">
- <tuscany:implementation.system class="org.apache.tuscany.container.rhino.builder.JavaScriptContextFactoryBuilder"/>
- </component>
-
- <component name="org.apache.tuscany.container.rhino.builder.JavaScriptTargetWireBuilder">
- <tuscany:implementation.system class="org.apache.tuscany.container.rhino.builder.JavaScriptTargetWireBuilder"/>
- </component>
-
- <component name="org.apache.tuscany.container.rhino.loader.JavaScriptImplementationLoader">
- <tuscany:implementation.system class="org.apache.tuscany.container.rhino.loader.JavaScriptImplementationLoader"/>
- </component>
-</moduleFragment>