diff options
Diffstat (limited to 'branches/sca-java-integration/sca/extensions/script/container.bsf/src')
30 files changed, 0 insertions, 1961 deletions
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java deleted file mode 100644 index f79325170a..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java +++ /dev/null @@ -1,135 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import static org.objectweb.asm.Opcodes.ACC_ABSTRACT;
-import static org.objectweb.asm.Opcodes.ACC_INTERFACE;
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.V1_5;
-
-import java.util.Arrays;
-
-import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.TargetResolutionException;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.extension.AtomicComponentExtension;
-import org.apache.tuscany.spi.extension.ExecutionMonitor;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.services.work.WorkScheduler;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.WireObjectFactory;
-import org.apache.tuscany.spi.wire.WireService;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.Type;
-
-/**
- * A component implementation for script languages.
- */
-public class ScriptComponent extends AtomicComponentExtension {
-
- private ScriptInstanceFactory factory;
-
- public ScriptComponent(String name,
- CompositeComponent parent,
- WireService wireService,
- WorkContext workContext,
- WorkScheduler workScheduler,
- ExecutionMonitor monitor,
- int initLevel,
- ScriptInstanceFactory factory,
- Scope scope) {
- super(name, parent, wireService, workContext, workScheduler, monitor, initLevel);
- this.factory = factory;
- this.scope = scope;
- setPassByReferenceMethods(Arrays.asList(new String[]{}));
- }
-
- public Object createInstance() throws ObjectCreationException {
- return factory.getInstance();
- }
-
- public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) {
- return new ScriptTargetInvoker(operation.getName(), this);
- }
-
- @SuppressWarnings({"unchecked"})
- protected void onReferenceWire(OutboundWire wire) {
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- if (clazz == null) {
- clazz = createInterfaceClass(wire.getServiceContract());
- }
- factory.addContextObjectFactory(wire.getReferenceName(), clazz, new WireObjectFactory(clazz, wire, wireService));
- }
-
- public Object getTargetInstance() throws TargetResolutionException {
- return scopeContainer.getInstance(this);
- }
-
- /**
- * Create an Java interface class for the WSDL ServiceContract
- * TODO: this should probably be moved to wsdl idl module
- */
- private Class createInterfaceClass(ServiceContract serviceContract) {
- ClassWriter cw = new ClassWriter(false);
-
- // Generate the interface
- String interfaceName = serviceContract.getInterfaceName();
- cw.visit(V1_5,
- ACC_PUBLIC + ACC_ABSTRACT + ACC_INTERFACE,
- interfaceName,
- null,
- "java/lang/Object",
- new String[0]);
-
- // Generate methods from the WSDL operations
- for (Object o : serviceContract.getOperations().values()) {
- Operation operation = (Operation)o;
- String inputType = Type.getDescriptor(Object.class);
- String outputType = Type.getDescriptor(Object.class);
- cw.visitMethod(ACC_PUBLIC + ACC_ABSTRACT,
- operation.getName(),
- "(" + inputType + ")" + outputType,
- null,
- null).visitEnd();
- }
-
- // Generate the bytecodes
- cw.visitEnd();
- byte[] bytes = cw.toByteArray();
-
- Class interfaceClass = new GeneratedClassLoader().defineClass(bytes);
-
- return interfaceClass;
- }
-
- private class GeneratedClassLoader extends ClassLoader {
- public Class defineClass(byte[] byteArray) {
- try {
- return defineClass(null, byteArray, 0, byteArray.length);
- } catch (Throwable e) {
- return null;
- }
- }
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java deleted file mode 100644 index fee815680f..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java +++ /dev/null @@ -1,97 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import org.apache.tuscany.spi.builder.BuilderConfigException;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-/**
- * Extension point for creating {@link ScriptComponent}s from an assembly configuration
- *
- * @version $Rev$ $Date$
- */
-public class ScriptComponentBuilder extends ComponentBuilderExtension<ScriptImplementation> {
-
- public ScriptComponentBuilder() {
- }
-
- protected Class<ScriptImplementation> getImplementationType() {
- return ScriptImplementation.class;
- }
-
- public Component build(CompositeComponent parent, ComponentDefinition<ScriptImplementation> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderConfigException {
-
- ScriptImplementation implementation = componentDefinition.getImplementation();
-
- for (ServiceDefinition service : implementation.getComponentType().getServices().values()) {
- // if its not a Java interface assume WSDL and want XML databinding
- ServiceContract contract = service.getServiceContract();
- if (!(contract instanceof JavaServiceContract)) {
- service.getServiceContract().setDataBinding("org.mozilla.javascript.xmlimpl.XML");
- }
- }
-
- ScriptInstanceFactory instanceFactory = createInstanceFactory(componentDefinition, implementation);
-
- String name = componentDefinition.getName();
- Scope scope = getScope(deploymentContext, implementation.getComponentType());
-
- return new ScriptComponent(name, parent, wireService, workContext, workScheduler, null, 0, instanceFactory, scope);
- }
-
- private ScriptInstanceFactory createInstanceFactory(ComponentDefinition<ScriptImplementation> componentDefinition, ScriptImplementation implementation) {
-
- String className = implementation.getClassName();
- String scriptSource = implementation.getScriptSource();
- String scriptName = implementation.getScriptName();
- ClassLoader cl = implementation.getClassLoader();
-
- ScriptInstanceFactory instanceFactory = new ScriptInstanceFactory(scriptName, className, scriptSource, cl);
-
- // add the properties for the component
- for (PropertyValue propertyValue : componentDefinition.getPropertyValues().values()) {
- instanceFactory.addContextObjectFactory(propertyValue.getName(), propertyValue.getValueFactory());
- }
-
- return instanceFactory;
- }
-
- protected Scope getScope(DeploymentContext deploymentContext, ScriptComponentType componentType) {
- ScopeContainer scopeContainer;
- Scope scope = componentType.getImplementationScope();
- if (Scope.COMPOSITE == scope) {
- scopeContainer = deploymentContext.getCompositeScope();
- } else {
- scopeContainer = scopeRegistry.getScopeContainer(scope);
- }
- return scopeContainer.getScope();
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java deleted file mode 100644 index 70ec3e88c7..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java +++ /dev/null @@ -1,47 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.ComponentType;
-import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-/**
- * A componentType for script components TODO: need lifecycle methods
- * init/destroy
- */
-public class ScriptComponentType extends ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> {
-
- public ScriptComponentType() {
- this.implementationScope = Scope.COMPOSITE;
- }
-
- @Override
- public Property getProperty(String name) {
- Property p = super.getProperty(name);
- if (p == null) {
- p = new Property<Object>(name, new QName("http://www.w3.org/2001/XMLSchema", "any"), null);
- }
- return p;
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentTypeLoader.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentTypeLoader.java deleted file mode 100644 index 5c3e420b29..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentTypeLoader.java +++ /dev/null @@ -1,76 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.net.URL;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.ComponentTypeLoaderExtension;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.MissingSideFileException;
-import org.apache.tuscany.spi.model.ComponentType;
-
-/**
- * ComponentType loader for script components
- */
-public class ScriptComponentTypeLoader extends ComponentTypeLoaderExtension<ScriptImplementation> {
-
- public ScriptComponentTypeLoader() {
- }
-
- @Override
- protected Class<ScriptImplementation> getImplementationClass() {
- return ScriptImplementation.class;
- }
-
- public void load(CompositeComponent parent,
- ScriptImplementation implementation,
- DeploymentContext deploymentContext) throws LoaderException {
- String sideFile = getSideFileName(implementation.getResourceName());
- URL resource = implementation.getClassLoader().getResource(sideFile);
- ScriptComponentType componentType;
- if (resource == null) {
- throw new MissingSideFileException("Component type side file not found", sideFile);
- // TODO: or else implement introspection
- } else {
- componentType = loadFromSidefile(parent, resource, deploymentContext);
- }
- implementation.setComponentType(componentType);
- }
-
- @SuppressWarnings("unchecked")
- protected ScriptComponentType loadFromSidefile(CompositeComponent parent,
- URL url,
- DeploymentContext deploymentContext)
- throws LoaderException {
- ScriptComponentType scriptComponentType = new ScriptComponentType();
- return (ScriptComponentType) loaderRegistry
- .load(parent, scriptComponentType, url, ComponentType.class, deploymentContext);
- }
-
- protected String getSideFileName(String resourceName) {
- int lastDot = resourceName.lastIndexOf('.');
- if (lastDot != -1) {
- resourceName = resourceName.substring(0, lastDot);
- }
- return resourceName + ".componentType";
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementation.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementation.java deleted file mode 100644 index 8b54944cf4..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementation.java +++ /dev/null @@ -1,74 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import org.apache.tuscany.spi.model.AtomicImplementation;
-
-/**
- * Model object for a script implementation.
- */
-public class ScriptImplementation extends AtomicImplementation<ScriptComponentType> {
-
- private String resourceName;
- private String className;
- private String scriptSource;
- private String scriptName;
- private ClassLoader classLoader;
-
- public String getResourceName() {
- return resourceName;
- }
-
- public void setResourceName(String resourceName) {
- this.resourceName = resourceName;
- }
-
- public String getClassName() {
- return className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
- public String getScriptSource() {
- return scriptSource;
- }
-
- public void setScriptSource(String scriptSource) {
- this.scriptSource = scriptSource;
- }
-
- public String getScriptName() {
- return scriptName;
- }
-
- public void setScriptName(String scriptName) {
- this.scriptName = scriptName;
- }
-
- public ClassLoader getClassLoader() {
- return classLoader;
- }
-
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationJavaScriptLoader.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationJavaScriptLoader.java deleted file mode 100644 index 1e48309dc6..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationJavaScriptLoader.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.script; - -import static org.osoa.sca.Constants.SCA_NS; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.osoa.sca.annotations.Constructor; - -public class ScriptImplementationJavaScriptLoader extends ScriptImplementationLoader { - - private static final QName IMPLEMENTATION_JS = new QName(SCA_NS, "implementation.js"); - - @Constructor({"registry"}) - public ScriptImplementationJavaScriptLoader(@Autowire LoaderRegistry registry) { - super(registry); - } - - public QName getXMLType() { - return IMPLEMENTATION_JS; - } - -} diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationLoader.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationLoader.java deleted file mode 100644 index 2751011443..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationLoader.java +++ /dev/null @@ -1,120 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import static org.osoa.sca.Constants.SCA_NS;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.LoaderExtension;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.LoaderUtil;
-import org.apache.tuscany.spi.loader.MissingResourceException;
-import org.apache.tuscany.spi.model.ModelObject;
-import org.osoa.sca.annotations.Constructor;
-
-/**
- * Loader for handling implementation.script elements.
- * <p/>
- * <implementation.script script="path/foo.py" class="myclass">
- *
- * @version $Rev$ $Date$
- */
-public class ScriptImplementationLoader extends LoaderExtension<ScriptImplementation> {
-
- private static final QName IMPLEMENTATION_SCRIPT = new QName(SCA_NS, "implementation.script");
-
- @Constructor({"registry"})
- public ScriptImplementationLoader(@Autowire LoaderRegistry registry) {
- super(registry);
- }
-
- public QName getXMLType() {
- return IMPLEMENTATION_SCRIPT;
- }
-
- public ScriptImplementation load(CompositeComponent parent, ModelObject mo, XMLStreamReader reader,
- DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
- String scriptName = reader.getAttributeValue(null, "script");
- if (scriptName == null) {
- throw new MissingResourceException("implementation element has no 'script' attribute");
- }
-
- String className = reader.getAttributeValue(null, "class");
-
- LoaderUtil.skipToEndElement(reader);
-
- ClassLoader cl = deploymentContext.getClassLoader();
- String scriptSource = loadSource(cl, scriptName);
-
- ScriptImplementation implementation = new ScriptImplementation();
- implementation.setResourceName(scriptName);
- implementation.setScriptSource(scriptSource);
- implementation.setClassName(className);
- implementation.setScriptName(scriptName);
- implementation.setClassLoader(cl);
-
- registry.loadComponentType(parent, implementation, deploymentContext);
-
- return implementation;
- }
-
- protected String loadSource(ClassLoader cl, String resource) throws LoaderException {
- URL url = cl.getResource(resource);
- if (url == null) {
- throw new MissingResourceException(resource);
- }
- InputStream is;
- try {
- is = url.openStream();
- } catch (IOException e) {
- throw new MissingResourceException(resource, e);
- }
- try {
- Reader reader = new InputStreamReader(is, "UTF-8");
- char[] buffer = new char[1024];
- StringBuilder source = new StringBuilder();
- int count;
- while ((count = reader.read(buffer)) > 0) {
- source.append(buffer, 0, count);
- }
- return source.toString();
- } catch (IOException e) {
- throw new LoaderException(resource, e);
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationPythonLoader.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationPythonLoader.java deleted file mode 100644 index 9836794e3a..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationPythonLoader.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.script; - -import static org.osoa.sca.Constants.SCA_NS; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.loader.LoaderException; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.apache.tuscany.spi.loader.LoaderUtil; -import org.apache.tuscany.spi.loader.MissingResourceException; -import org.apache.tuscany.spi.model.ModelObject; -import org.osoa.sca.annotations.Constructor; - -public class ScriptImplementationPythonLoader extends ScriptImplementationLoader { - - private static final QName IMPLEMENTATION_PYTHON = new QName(SCA_NS, "implementation.python"); - - @Constructor({"registry"}) - public ScriptImplementationPythonLoader(@Autowire LoaderRegistry registry) { - super(registry); - } - - public QName getXMLType() { - return IMPLEMENTATION_PYTHON; - } - - @Override - public ScriptImplementation load(CompositeComponent parent, ModelObject mo, XMLStreamReader reader, - DeploymentContext deploymentContext) throws XMLStreamException, LoaderException { - String scriptName = reader.getAttributeValue(null, "module"); - if (scriptName == null) { - throw new MissingResourceException("implementation element has no 'module' attribute"); - } - - String className = reader.getAttributeValue(null, "class"); - - LoaderUtil.skipToEndElement(reader); - - ClassLoader cl = deploymentContext.getClassLoader(); - String scriptSource = loadSource(cl, scriptName); - - ScriptImplementation implementation = new ScriptImplementation(); - implementation.setResourceName(scriptName); - implementation.setScriptSource(scriptSource); - implementation.setClassName(className); - implementation.setScriptName(scriptName); - implementation.setClassLoader(cl); - - registry.loadComponentType(parent, implementation, deploymentContext); - - return implementation; - } - -} diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationRubyLoader.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationRubyLoader.java deleted file mode 100644 index 42dab55246..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptImplementationRubyLoader.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.script; - -import static org.osoa.sca.Constants.SCA_NS; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.osoa.sca.annotations.Constructor; - -public class ScriptImplementationRubyLoader extends ScriptImplementationLoader { - - private static final QName IMPLEMENTATION_RUBY = new QName(SCA_NS, "implementation.ruby"); - - @Constructor({"registry"}) - public ScriptImplementationRubyLoader(@Autowire LoaderRegistry registry) { - super(registry); - } - - public QName getXMLType() { - return IMPLEMENTATION_RUBY; - } - -} diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstance.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstance.java deleted file mode 100644 index 988d2a96c2..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstance.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.script; - -import java.lang.reflect.InvocationTargetException; - -import org.apache.bsf.BSFEngine; -import org.apache.bsf.BSFException; - -/** - * An invokable instance of a script - * - * Basically just a wrapper around a BSF engine with an optional script class object. - */ -public class ScriptInstance { - - protected BSFEngine bsfEngine; - protected Object clazz; - - public ScriptInstance(BSFEngine bsfEngine, Object clazz) { - this.bsfEngine = bsfEngine; - this.clazz = clazz; - } - - public Object invokeTarget(String operationName, Object[] args) throws InvocationTargetException { - try { - return bsfEngine.call(clazz, operationName, args); - } catch (BSFException e) { - throw new InvocationTargetException(e.getTargetException() != null ? e.getTargetException() : e); - } catch (Exception e) { - throw new InvocationTargetException(e); - } - } -} - diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java deleted file mode 100644 index 201af2265a..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java +++ /dev/null @@ -1,151 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.ObjectFactory;
-
-import org.apache.bsf.BSFEngine;
-import org.apache.bsf.BSFException;
-import org.apache.bsf.BSFManager;
-
-/**
- * ScriptFactory creates ScriptInstances for a script
- */
-public class ScriptInstanceFactory implements ObjectFactory<ScriptInstance> {
- protected String resourceName;
- protected ClassLoader classLoader;
- private String className;
- private String scriptSource;
- private Map<String, ObjectFactory> contextObjects;
- private Map<String, Class> contextTypes;
-
- public ScriptInstanceFactory(String resourceName, String className, String scriptSource, ClassLoader classLoader) {
- this.resourceName = resourceName;
- this.classLoader = classLoader;
- this.className = className;
- this.scriptSource = scriptSource;
- this.contextObjects = new HashMap<String, ObjectFactory>();
- this.contextTypes = new HashMap<String, Class>();
- }
-
- /**
- * Create a new invokeable instance of the script <p/> objects to add to
- * scope of the script instance
- *
- * @return a RhinoScriptInstance
- */
- // public ScriptInstanceImpl createInstance(List<Class<?>> serviceBindings,
- // Map<String, Object> context) {
- public ScriptInstance getInstance() throws ObjectCreationException {
- try {
-
- // TODO: this uses a new manager and recompiles the scrip each time,
- // may be able to optimize
- // but need to be careful about instance scoping
-
- BSFManager bsfManager = new BSFManager();
- bsfManager.setClassLoader(BSFManager.class.getClassLoader());
-
- // TODO: hack to get Ruby working with the standalone launcher
- Thread.currentThread().setContextClassLoader(BSFManager.class.getClassLoader());
-
- // register any context objects (SCA properties and references)
- for (Map.Entry<String, ObjectFactory> entry : contextObjects.entrySet()) {
- Object value = entry.getValue().getInstance();
- Class type = contextTypes.get(entry.getKey());
- if (type == null) {
- type = value.getClass();
- }
- bsfManager.declareBean(entry.getKey(), value, type);
- }
-
- String scriptLanguage = BSFManager.getLangFromFilename(resourceName);
- BSFEngine bsfEngine = bsfManager.loadScriptingEngine(scriptLanguage);
- bsfEngine.exec(resourceName, 0, 0, scriptSource);
-
- // register any context objects (SCA properties and references)
- for (Map.Entry<String, ObjectFactory> entry : contextObjects.entrySet()) {
- Object value = entry.getValue().getInstance();
- Class type = contextTypes.get(entry.getKey());
- if (type == null) {
- type = value.getClass();
- }
- // TODO: Hack to bypass bug in BSF javascript engine
- if (!("javascript".equals(scriptLanguage)) || (value instanceof Number) || (value instanceof String) || (value instanceof Boolean)) {
- bsfManager.declareBean(entry.getKey(), value, type);
- }
- }
-
- // if there's a className then get the class object
- Object clazz = null;
- if (className != null) {
- // special case for Ruby which requires a .new call
- if ("ruby".equals(scriptLanguage)) {
- clazz = bsfEngine.eval(null, 1, 1, className + ".new");
- } else {
- clazz = bsfEngine.call(null, className, null);
- }
- }
-
- return new ScriptInstance(bsfEngine, clazz);
-
- } catch (BSFException e) {
- if (e.getTargetException() != null) {
- throw new ObjectCreationException(e.getTargetException());
- }
- throw new ObjectCreationException(e.getTargetException());
- }
- }
-
- public String getResourceName() {
- return resourceName;
- }
-
- public ClassLoader getClassLoader() {
- return classLoader;
- }
-
- protected Map<String, Class> getResponseClasses(List<Class> services) {
- Map<String, Class> responseClasses = new HashMap<String, Class>();
- if (services != null) {
- for (Class s : services) {
- for (Method m : s.getMethods()) {
- responseClasses.put(m.getName(), m.getReturnType());
- }
- }
- }
- return responseClasses;
- }
-
- public void addContextObjectFactory(String name, ObjectFactory<?> factory) {
- contextObjects.put(name, factory);
- }
-
- public void addContextObjectFactory(String name, Class type, ObjectFactory<?> factory) {
- contextObjects.put(name, factory);
- contextTypes.put(name, type);
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptTargetInvoker.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptTargetInvoker.java deleted file mode 100644 index 21b84bb83b..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptTargetInvoker.java +++ /dev/null @@ -1,56 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.tuscany.spi.component.TargetException;
-import org.apache.tuscany.spi.extension.TargetInvokerExtension;
-
-/**
- * TargetInvoker implementation that calls a function on a ScriptInstanceImpl
- *
- * @version $Rev$ $Dev$
- */
-public class ScriptTargetInvoker extends TargetInvokerExtension {
-
- protected ScriptComponent component;
- protected String functionName;
-
- public ScriptTargetInvoker(String functionName, ScriptComponent component) {
- super(null, null, null);
- this.functionName = functionName;
- this.component = component;
- }
-
- public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException {
- ScriptInstance target;
- try {
- target = (ScriptInstance) component.getTargetInstance();
- } catch (TargetException e) {
- throw new InvocationTargetException(e);
- }
- try {
- return target.invokeTarget(functionName, (Object[]) payload);
- } catch (Exception e) {
- throw new InvocationTargetException(e);
- }
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/default.scdl b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/default.scdl deleted file mode 100644 index 149fa2696c..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/default.scdl +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
--->
-<!--
- JavaScript configuration for the launcher environment.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
-
- name="org.apache.tuscany.container.script.ScriptImplementation">
-
- <component name="script.implementationLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptImplementationLoader"/>
- </component>
-
- <component name="script.componentTypeLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptComponentTypeLoader"/>
- </component>
-
- <component name="script.componentBuilder">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptComponentBuilder"/>
- </component>
-
-</composite>
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/extension.composite b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/extension.composite deleted file mode 100644 index 1795216154..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/extension.composite +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 peaxis2ssions and limitations
- * under the License.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="org.apache.tuscany.extension.bsf">
- <include name="org.apache.tuscany.extensions.bsf.include" scdlLocation="script.system.scdl" />
-</composite>
\ No newline at end of file diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/script.system.scdl b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/script.system.scdl deleted file mode 100644 index f08d7d0fc0..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/resources/META-INF/sca/script.system.scdl +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
--->
-<!--
- JavaScript configuration for the launcher environment.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
-
- name="org.apache.tuscany.container.script.ScriptImplementation">
-
- <component name="script.implementationLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptImplementationLoader"/>
- </component>
-
- <component name="script.implementationRubyLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptImplementationRubyLoader"/>
- </component>
-
- <component name="script.implementationPythonLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptImplementationPythonLoader"/>
- </component>
-
- <component name="script.implementationJavaScriptLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptImplementationJavaScriptLoader"/>
- </component>
-
- <component name="script.componentTypeLoader">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptComponentTypeLoader"/>
- </component>
-
- <component name="script.componentBuilder">
- <system:implementation.system class="org.apache.tuscany.container.script.ScriptComponentBuilder"/>
- </component>
-
-</composite>
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentBuilderTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentBuilderTestCase.java deleted file mode 100644 index c8f3240272..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentBuilderTestCase.java +++ /dev/null @@ -1,117 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import junit.framework.TestCase;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import org.easymock.IAnswer;
-
-public class ScriptComponentBuilderTestCase extends TestCase {
-
- public void testGetImplementationType() {
- ScriptComponentBuilder builder = new ScriptComponentBuilder();
- assertEquals(ScriptImplementation.class, builder.getImplementationType());
- }
-
- @SuppressWarnings("unchecked")
- public void testBuild() throws Exception {
- ScriptComponentBuilder builder = new ScriptComponentBuilder();
- DeploymentContext deploymentContext = createMock(DeploymentContext.class);
- final ScopeContainer scopeContainer = createMock(ScopeContainer.class);
- expect(scopeContainer.getScope()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return Scope.COMPOSITE;
- }
- });
- expect(deploymentContext.getCompositeScope()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return scopeContainer;
- }
- });
- replay(deploymentContext);
- ComponentDefinition<ScriptImplementation> impl =
- new ComponentDefinition<ScriptImplementation>(new ScriptImplementation());
- ScriptComponentType componentType = new ScriptComponentType();
- ServiceDefinition service = new ServiceDefinition();
- ServiceContract serviceContract = new JavaServiceContract();
- service.setServiceContract(serviceContract);
- componentType.add(service);
- impl.getImplementation().setComponentType(componentType);
-
- PropertyValue<String> pv = new PropertyValue<String>("foo", "", "");
- ObjectFactory<String> pvFactory = (ObjectFactory<String>) createMock(ObjectFactory.class);
- expect(pvFactory.getInstance()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return null;
- }
- });
- replay(pvFactory);
- pv.setValueFactory(pvFactory);
- impl.add(pv);
-
- Component component = builder.build(null, impl, deploymentContext);
- assertNotNull(component);
- }
-
- @SuppressWarnings("unchecked")
- public void testBuildCompositeScope() throws Exception {
- ScriptComponentBuilder builder = new ScriptComponentBuilder();
- DeploymentContext deploymentContext = createMock(DeploymentContext.class);
- final ScopeContainer scopeContainer = createMock(ScopeContainer.class);
- expect(scopeContainer.getScope()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return Scope.COMPOSITE;
- }
- });
- expect(deploymentContext.getCompositeScope()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return scopeContainer;
- }
- });
- replay(deploymentContext);
- ComponentDefinition<ScriptImplementation> impl =
- new ComponentDefinition<ScriptImplementation>(new ScriptImplementation());
- ScriptComponentType componentType = new ScriptComponentType();
- ServiceDefinition service = new ServiceDefinition();
- ServiceContract serviceContract = new JavaServiceContract();
- service.setServiceContract(serviceContract);
- componentType.add(service);
- impl.getImplementation().setComponentType(componentType);
- Component component = builder.build(null, impl, deploymentContext);
- assertNotNull(component);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java deleted file mode 100644 index 00bde59069..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java +++ /dev/null @@ -1,88 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
-
-import java.lang.reflect.Type;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.easymock.EasyMock;
-
-public class ScriptComponentTestCase extends TestCase {
-
- private ScopeContainer container;
-
- @SuppressWarnings("unchecked")
- public void testCreateTargetInvoker() {
- ScriptComponent component = new ScriptComponent("foo", null, null, null, null,null,0,null, container.getScope());
- Operation<Type> operation = new Operation<Type>("hashCode", null, null, null, false, null, NO_CONVERSATION);
- operation.setServiceContract(new Contract<Type>(List.class));
- TargetInvoker invoker = component.createTargetInvoker("hashCode", operation, null);
- assertNotNull(invoker);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- container = EasyMock.createMock(ScopeContainer.class);
- EasyMock.expect(container.getScope()).andReturn(Scope.COMPOSITE);
- EasyMock.replay(container);
- }
-
- private class Contract<T> extends ServiceContract<T> {
-
- public Contract(Class interfaceClass) {
- super(interfaceClass);
- }
- }
-
-// TODO commented out the following test since it doesn't test refernences.
-// TODO have a reference injeciton test in ScriptInstanceFactory that tests an actual invocation
-//
-// @SuppressWarnings("unchecked")
-// public void testCreateInstanceWithRef() throws IOException {
-// WireService wireService = createMock(WireService.class);
-// expect(wireService.createProxy(isA(Wire.class))).andStubAnswer(new IAnswer() {
-// public Object answer() throws Throwable {
-// return Scope.MODULE;
-// }
-// });
-//
-// ScriptComponent pc = new ScriptComponent(null, createBSFEasy(), new HashMap(), null, null,
-// scopeContainer, wireService, null, null);
-// OutboundWire wire = EasyMock.createMock(OutboundWire.class);
-// EasyMock.expect(wire.getReferenceName()).andReturn("foo").atLeastOnce();
-// EasyMock.replay(wire);
-// pc.addOutboundWire(wire);
-// Object o = pc.createInstance();
-// assertNotNull(o);
-// assertTrue(o instanceof ScriptInstance);
-// }
-//
-
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTypeLoaderTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTypeLoaderTestCase.java deleted file mode 100644 index 60893ec5f5..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTypeLoaderTestCase.java +++ /dev/null @@ -1,113 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.xml.stream.XMLStreamException;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.MissingSideFileException;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
-
-public class ScriptComponentTypeLoaderTestCase extends TestCase {
-
- public void testGetSideFileName() {
- ScriptComponentTypeLoader loader = new ScriptComponentTypeLoader();
- assertEquals("BSFEasyTestCase.componentType", loader.getSideFileName("BSFEasyTestCase.mock"));
- }
-
- public void testGetSideFileNameNoDot() {
- ScriptComponentTypeLoader loader = new ScriptComponentTypeLoader();
- assertEquals("BSFEasyTestCase.componentType", loader.getSideFileName("BSFEasyTestCase"));
- }
-
- @SuppressWarnings("unchecked")
- public void testLoad() throws MalformedURLException, LoaderException, XMLStreamException {
- CompositeComponent parent = EasyMock.createNiceMock(CompositeComponent.class);
- DeploymentContext context = EasyMock.createNiceMock(DeploymentContext.class);
- LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
- registry.load(EasyMock.eq(parent),
- EasyMock.isA(ScriptComponentType.class),
- EasyMock.isA(URL.class),
- EasyMock.isA(Class.class),
- EasyMock.eq(context));
- EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return EasyMock.getCurrentArguments()[1];
- }
- });
- EasyMock.replay(registry);
-
- ScriptImplementation implementation = new ScriptImplementation();
- implementation.setResourceName("org/apache/tuscany/container/script/helper/foo.componentType");
- implementation.setClassLoader(getClass().getClassLoader());
- ScriptComponentTypeLoader loader = new ScriptComponentTypeLoader();
- loader.setLoaderRegistry(registry);
- loader.load(parent, implementation, context);
- assertNotNull(implementation.getComponentType());
- }
-
- @SuppressWarnings("unchecked")
- public void testLoadMissingSideFile() throws MalformedURLException, LoaderException, XMLStreamException {
- CompositeComponent parent = EasyMock.createNiceMock(CompositeComponent.class);
- DeploymentContext context = EasyMock.createNiceMock(DeploymentContext.class);
- LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
- registry.load(EasyMock.eq(parent),
- EasyMock.isA(ScriptComponentType.class),
- EasyMock.isA(URL.class),
- EasyMock.isA(Class.class),
- EasyMock.eq(context));
- EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return EasyMock.getCurrentArguments()[1];
- }
- });
- EasyMock.replay(registry);
-
- ScriptImplementation implementation = new ScriptImplementation();
- implementation.setResourceName("notthere");
- implementation.setClassLoader(getClass().getClassLoader());
- ScriptComponentTypeLoader loader = new ScriptComponentTypeLoader();
- loader.setLoaderRegistry(registry);
- try {
- loader.load(parent, implementation, context);
- fail();
- } catch (MissingSideFileException e) {
- //expected
- }
- }
-
- public void testGetImplementationClass() {
- ScriptComponentTypeLoader loader = new ScriptComponentTypeLoader();
- assertEquals(ScriptImplementation.class, loader.getImplementationClass());
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTypeTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTypeTestCase.java deleted file mode 100644 index 7809c63d99..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptComponentTypeTestCase.java +++ /dev/null @@ -1,32 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-
-public class ScriptComponentTypeTestCase extends TestCase {
-
- public void testLifecycleScope() {
- ScriptComponentType ct = new ScriptComponentType();
- assertEquals(Scope.COMPOSITE, ct.getImplementationScope());
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationLoaderLoadingTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationLoaderLoadingTestCase.java deleted file mode 100644 index f30c1dca65..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationLoaderLoadingTestCase.java +++ /dev/null @@ -1,78 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.MissingResourceException;
-import org.apache.tuscany.spi.model.ModelObject;
-
-import junit.framework.TestCase;
-import static org.easymock.classextension.EasyMock.createMock;
-
-/**
- *
- */
-public class ScriptImplementationLoaderLoadingTestCase extends TestCase {
-
- private LoaderRegistry registry;
-
- private ScriptImplementationLoader loader;
-
- public void testLoadSource() throws LoaderException {
- String script =
- loader.loadSource(getClass().getClassLoader(), "org/apache/tuscany/container/script/helper/foo.mock");
- assertTrue(script.startsWith("hello"));
- }
-
- public void testLoadSourceMissingResource() throws LoaderException {
- try {
- loader.loadSource(getClass().getClassLoader(), "doesnt.exist");
- fail();
- } catch (MissingResourceException e) {
- // expected
- }
- }
-
- public void testGetXMLType() throws LoaderException {
- assertEquals("http://foo", loader.getXMLType().getNamespaceURI());
- assertEquals("bar", loader.getXMLType().getLocalPart());
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- registry = createMock(LoaderRegistry.class);
- loader = new ScriptImplementationLoader(registry) {
- public QName getXMLType() {
- return new QName("http://foo", "bar");
- }
-
- public ScriptImplementation load(CompositeComponent arg0, ModelObject arg1, XMLStreamReader arg2,
- DeploymentContext arg3) throws XMLStreamException, LoaderException {
- return null;
- }
- };
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationLoaderTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationLoaderTestCase.java deleted file mode 100644 index 62a5ee3110..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationLoaderTestCase.java +++ /dev/null @@ -1,133 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import static org.easymock.EasyMock.expect;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
-import static org.osoa.sca.Constants.SCA_NS;
-
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.MissingResourceException;
-
-/**
- *
- */
-public class ScriptImplementationLoaderTestCase extends TestCase {
- private CompositeComponent parent;
-
- private XMLStreamReader reader;
-
- private DeploymentContext deploymentContext;
-
- private ClassLoader classLoader;
-
- private LoaderRegistry registry;
-
- private ScriptImplementationLoader loader;
-
- public void testLoadNoScriptAttribute() throws LoaderException, XMLStreamException {
- expect(reader.getAttributeValue(null, "script")).andReturn(null);
- replay(reader);
- replay(deploymentContext);
-
- try {
- loader.load(parent, null, reader, deploymentContext);
- fail();
- } catch (MissingResourceException e) {
- // ok
- }
- verify(reader);
- verify(deploymentContext);
- }
-
- public void testLoad() throws LoaderException, XMLStreamException {
- expect(reader.getAttributeValue(null, "script")).andReturn("foo.mock");
- expect(reader.getAttributeValue(null, "class")).andReturn(null);
- expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
- expect(deploymentContext.getClassLoader()).andReturn(classLoader);
-
- replay(reader);
- replay(deploymentContext);
-
- ScriptImplementationLoader mockLoader = new ScriptImplementationLoader(registry) {
- protected String loadSource(ClassLoader cl, String resource) throws LoaderException {
- assertSame(classLoader, cl);
- assertEquals("foo.mock", resource);
- return "bar";
- }
- };
- mockLoader.load(parent, null, reader, deploymentContext);
- verify(reader);
- verify(deploymentContext);
- }
-
- public void testLoadNoScriptPresent() throws LoaderException, XMLStreamException {
- expect(reader.getAttributeValue(null, "script")).andReturn("foo.py");
- expect(reader.getAttributeValue(null, "class")).andReturn(null);
- expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
- expect(deploymentContext.getClassLoader()).andReturn(classLoader);
-
- replay(reader);
- replay(deploymentContext);
-
- ScriptImplementationLoader mockLoader = new ScriptImplementationLoader(registry) {
- protected String loadSource(ClassLoader cl, String resource) throws LoaderException {
- assertSame(classLoader, cl);
- assertEquals("foo.py", resource);
- throw new MissingResourceException(resource);
- }
- };
- try {
- mockLoader.load(parent, null, reader, deploymentContext);
- fail();
- } catch (MissingResourceException e) {
- assertEquals("Missing resource", e.getMessage());
- assertEquals("foo.py", e.getIdentifier());
- }
- verify(reader);
- verify(deploymentContext);
- }
-
- public void testGetXMLType() throws LoaderException {
- assertEquals(SCA_NS, loader.getXMLType().getNamespaceURI());
- assertEquals("implementation.script", loader.getXMLType().getLocalPart());
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- registry = createMock(LoaderRegistry.class);
- loader = new ScriptImplementationLoader(registry);
-
- parent = createMock(CompositeComponent.class);
- reader = createMock(XMLStreamReader.class);
- deploymentContext = createMock(DeploymentContext.class);
- classLoader = createMock(ClassLoader.class);
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationTestCase.java deleted file mode 100644 index 11a99b5854..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptImplementationTestCase.java +++ /dev/null @@ -1,35 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import junit.framework.TestCase;
-
-public class ScriptImplementationTestCase extends TestCase {
-
- public void testGetResourceName() {
- ScriptImplementation impl = new ScriptImplementation();
- impl.setResourceName("foo");
- assertEquals("foo", impl.getResourceName());
- }
-
- public void setUp() throws Exception {
- super.setUp();
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInstanceFactoryTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInstanceFactoryTestCase.java deleted file mode 100644 index 40645e8dc8..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInstanceFactoryTestCase.java +++ /dev/null @@ -1,106 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-import java.util.Map;
-
-import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.ObjectFactory;
-
-import junit.framework.TestCase;
-import org.apache.bsf.BSFManager;
-import org.apache.tuscany.container.script.mock.MockBSFEngine;
-
-public class ScriptInstanceFactoryTestCase extends TestCase {
-
- public void testCreateInstance() throws InvocationTargetException {
- BSFManager.registerScriptingEngine("mock", MockBSFEngine.class.getName(), new String[]{"mock"});
- ScriptInstanceFactory factory =
- new ScriptInstanceFactory("foo.mock", "bar", "baz", getClass().getClassLoader());
- factory.addContextObjectFactory("foo", String.class, new SingletonObjectFactory("bar"));
- ScriptInstance instance = (ScriptInstance) factory.getInstance();
- assertNotNull(instance);
- assertNotNull(instance.bsfEngine);
- }
-
- public void testCreateInstanceNoClass() throws InvocationTargetException {
- BSFManager.registerScriptingEngine("mock", MockBSFEngine.class.getName(), new String[]{"mock"});
- ScriptInstanceFactory factory =
- new ScriptInstanceFactory("foo.mock", null, "baz", getClass().getClassLoader());
- factory.addContextObjectFactory("foo", String.class, new SingletonObjectFactory("bar"));
- ScriptInstance instance = (ScriptInstance) factory.getInstance();
- assertNotNull(instance);
- assertNotNull(instance.bsfEngine);
- }
-
- public void testCreateInstanceRuby() throws InvocationTargetException {
- BSFManager.registerScriptingEngine("ruby", MockBSFEngine.class.getName(), new String[]{"mock"});
- ScriptInstanceFactory factory =
- new ScriptInstanceFactory("foo.mock", "bar", "baz", getClass().getClassLoader());
- factory.addContextObjectFactory("foo", String.class, new SingletonObjectFactory("bar"));
- ScriptInstance instance = (ScriptInstance) factory.getInstance();
- assertNotNull(instance);
- assertNotNull(instance.bsfEngine);
- }
-
- public void testBadCreateInstance() throws InvocationTargetException {
- ScriptInstanceFactory factory =
- new ScriptInstanceFactory("foo", "bar", "baz", getClass().getClassLoader());
- try {
- factory.getInstance();
- fail();
- } catch (ObjectCreationException e) {
- // expected
- }
- }
-
- public void testGetters() throws InvocationTargetException {
- ScriptInstanceFactory factory =
- new ScriptInstanceFactory("foo", "bar", "baz", getClass().getClassLoader());
- assertEquals(getClass().getClassLoader(), factory.getClassLoader());
- }
-
-
- public void testGetResponseClasses() {
- ScriptInstanceFactory factory =
- new ScriptInstanceFactory("foo.mock", "bar", "baz", getClass().getClassLoader());
- Map<String, Class> classes = factory.getResponseClasses(Arrays.asList(new Class[]{Runnable.class}));
- assertEquals(1, classes.size());
- assertEquals("run", classes.keySet().iterator().next());
- assertEquals(void.class, classes.get("run"));
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- private class SingletonObjectFactory implements ObjectFactory<Object> {
- private Object instance;
-
- public SingletonObjectFactory(Object instance) {
- this.instance = instance;
- }
-
- public Object getInstance() throws ObjectCreationException {
- return instance;
- }
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInstanceTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInstanceTestCase.java deleted file mode 100644 index 0cf7d80723..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInstanceTestCase.java +++ /dev/null @@ -1,46 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.lang.reflect.InvocationTargetException;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.container.script.mock.MockBSFEngine;
-
-public class ScriptInstanceTestCase extends TestCase {
- private ScriptInstance instance;
-
- public void testInvokeTarget() throws InvocationTargetException {
- assertEquals("hello:", instance.invokeTarget("hello", null));
- }
-
- public void testInvokeTargetException() throws InvocationTargetException {
- try {
- instance.invokeTarget("bang", null);
- fail();
- } catch (InvocationTargetException e) {
- // expected
- }
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- this.instance = new ScriptInstance(new MockBSFEngine(), null);
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInvokerTestCase.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInvokerTestCase.java deleted file mode 100644 index 5597d37e60..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/ScriptInvokerTestCase.java +++ /dev/null @@ -1,78 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.script;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-import junit.framework.TestCase;
-import org.easymock.IAnswer;
-import org.easymock.classextension.EasyMock;
-
-public class ScriptInvokerTestCase extends TestCase {
-
- @SuppressWarnings("unchecked")
- public void testInvokeTarget() throws Exception {
- ScriptInstance instance = EasyMock.createMock(ScriptInstance.class);
- instance.invokeTarget(EasyMock.eq("operation"), (Object[]) EasyMock.notNull());
- EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- assertEquals(2, EasyMock.getCurrentArguments().length);
- assertEquals("operation", EasyMock.getCurrentArguments()[0]);
- return "hello";
- }
- });
-
- EasyMock.replay(instance);
- ScriptComponent component = EasyMock.createMock(ScriptComponent.class);
- EasyMock.expect(component.getTargetInstance()).andReturn(instance);
- EasyMock.replay(component);
- ScriptTargetInvoker invoker = new ScriptTargetInvoker("operation", component);
- assertEquals("hello", invoker.invokeTarget(new Object[]{"petra"}, TargetInvoker.NONE));
- EasyMock.verify(instance);
- EasyMock.verify(component);
- }
-
- @SuppressWarnings("unchecked")
- public void testInvokeTargetException() throws Exception {
- ScriptInstance instance = EasyMock.createMock(ScriptInstance.class);
- instance.invokeTarget(EasyMock.eq("operation"), (Object[]) EasyMock.notNull());
- EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- throw new RuntimeException();
- }
- });
-
- EasyMock.replay(instance);
- ScriptComponent component = EasyMock.createMock(ScriptComponent.class);
- EasyMock.expect(component.getTargetInstance()).andReturn(instance);
- EasyMock.replay(component);
- ScriptTargetInvoker invoker = new ScriptTargetInvoker("operation", component);
- try {
- invoker.invokeTarget(new Object[]{"petra"}, TargetInvoker.NONE);
- fail();
- } catch (InvocationTargetException e) {
- // expected
- }
- EasyMock.verify(instance);
- EasyMock.verify(component);
- }
-
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java deleted file mode 100644 index 2bf1c21478..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.apache.tuscany.container.script.mock;
-
-import org.apache.bsf.BSFDeclaredBean;
-import org.apache.bsf.BSFException;
-import org.apache.bsf.util.BSFEngineImpl;
-
-public class MockBSFEngine extends BSFEngineImpl {
-
- public Object call(Object object, String name, Object[] args) throws BSFException {
- if ("bang".equals(name)) {
- throw new RuntimeException(name);
- }
-
- String resp = name + ":";
- if (args != null) {
- for (Object o : args) {
- resp += " " + String.valueOf(o);
- }
- }
- return resp;
- }
-
- public Object eval(String source, int lineNo, int columnNo, Object expr) throws BSFException {
- // not used for the mock tests
- return null;
- }
-
- public void declareBean(BSFDeclaredBean bean) throws BSFException {
- }
-}
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/foo.componentType b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/foo.componentType deleted file mode 100644 index 9c37e1cb3e..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/foo.componentType +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-
- <service name="HelloWorldService">
- <interface.java interface="not.used"/>
- </service>
-
-</componentType>
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/foo.mock b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/foo.mock deleted file mode 100644 index b6fc4c620b..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/foo.mock +++ /dev/null @@ -1 +0,0 @@ -hello
\ No newline at end of file diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/helper/foo.componentType b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/helper/foo.componentType deleted file mode 100644 index 9c37e1cb3e..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/helper/foo.componentType +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-
- <service name="HelloWorldService">
- <interface.java interface="not.used"/>
- </service>
-
-</componentType>
diff --git a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/helper/foo.mock b/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/helper/foo.mock deleted file mode 100644 index b6fc4c620b..0000000000 --- a/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/resources/org/apache/tuscany/container/script/helper/foo.mock +++ /dev/null @@ -1 +0,0 @@ -hello
\ No newline at end of file |