Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java (original) +++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java Thu Jan 24 12:00:04 2008 @@ -19,25 +19,153 @@ package org.apache.tuscany.sca.implementation.widget.provider; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.OptimizableBinding; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.runtime.RuntimeComponent; + +import com.ibm.jvm.util.ByteArrayOutputStream; /** * Implements an invoker for resource component implementations. */ class WidgetImplementationInvoker implements Invoker { - private URL locationURL; + private RuntimeComponent component; + private String locationURL; - WidgetImplementationInvoker(URL locationURL) { + WidgetImplementationInvoker(RuntimeComponent component, String locationURL) { + this.component = component; this.locationURL = locationURL; } public Message invoke(Message msg) { - // Return the location URL - msg.setBody(locationURL); + + // Get the resource id from the request message + String id = (String)((Object[])msg.getBody())[0]; + try { + + if (id.endsWith(".js")) { + + // Generate Javascript header for use in the Widget + InputStream is = generateWidgetCode(); + msg.setBody(is); + + } else { + + // Return an input stream for a resource + URL url = new URL(locationURL +'/' + id); + InputStream is = url.openStream(); + msg.setBody(is); + } + } catch (MalformedURLException e) { + + // Report exception as a fault + msg.setFaultBody(e); + } catch (IOException e) { + + // Report exception as a fault + msg.setFaultBody(e); + } return msg; + } + + /** + */ + private InputStream generateWidgetCode() throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + PrintWriter pw = new PrintWriter(bos); + + pw.println(); + pw.println("/* Apache Tuscany SCA Widget header */"); + pw.println(); + + for(ComponentReference reference : component.getReferences()) { + for(Binding binding : reference.getBindings()) { + String bindingProxyName = WidgetProxyHelper.getJavaScriptProxyFile(binding.getClass().getName()); + if(bindingProxyName != null) { + generateJavaScriptBindingProxy(pw,bindingProxyName); + } + } + } + + generateJavaScriptReferenceFunction(pw); + + + pw.println(); + pw.println("/** End of Apache Tuscany SCA Widget */"); + pw.println(); + pw.flush(); + pw.close(); + + return new ByteArrayInputStream(bos.toByteArray()); + } + + /** + * Retrieve the binding proxy based on the bind name + * and embedded the javascript into this js + */ + private void generateJavaScriptBindingProxy(PrintWriter pw, String bindingProxyName) throws IOException { + + URL url = getClass().getClassLoader().getResource(bindingProxyName); //Thread.currentThread().getContextClassLoader().getResource(bindingProxyName); + InputStream is = url.openStream(); + int i; + while ((i = is.read()) != -1) { + pw.write(i); + } + pw.println(); + pw.println(); + } + + private void generateJavaScriptReferenceFunction (PrintWriter pw) throws IOException { + + pw.println("var referenceMap = new Object();"); + for(ComponentReference reference : component.getReferences()) { + String referenceName = reference.getName(); + Binding binding = reference.getBindings().get(0); + if (binding != null) { + + String proxyClient = WidgetProxyHelper.getJavaScriptProxyClient(binding.getClass().getName()); + if(proxyClient != null) { + + //FIXME Eventually the binding URI should be initialized from the SCA domain + // for now point to the target binding model directly, assuming that it's available + // in the same node + String targetURI = null; + if (binding instanceof OptimizableBinding) { + Binding targetBinding = ((OptimizableBinding)binding).getTargetBinding(); + if (targetBinding != null) { + targetURI = URI.create(targetBinding.getURI()).getPath(); + } + } + if (targetURI == null) { + targetURI = URI.create(binding.getURI()).getPath(); + if (!targetURI.startsWith("/")) { + targetURI = "/" + targetURI; + } + } + + if(proxyClient.equals("JSONRpcClient")) { + pw.println("referenceMap." + referenceName + " = new " + proxyClient + "(\"" + targetURI + "\").Service;"); + } else { + pw.println("referenceMap." + referenceName + " = new " + proxyClient + "(\"" + targetURI + "\");"); + } + } + } + } + + pw.println("function Reference(name) {"); + pw.println(" return referenceMap[name];"); + pw.println("}"); } }
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java (original) +++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java Thu Jan 24 12:00:04 2008 @@ -18,17 +18,12 @@ */ package org.apache.tuscany.sca.implementation.widget.provider; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.ComponentService; -import org.apache.tuscany.sca.host.http.ServletHost; import org.apache.tuscany.sca.implementation.widget.WidgetImplementation; -import org.apache.tuscany.sca.implementation.widget.WidgetComponentServlet; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.provider.ImplementationProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.osoa.sca.ServiceRuntimeException; /** @@ -37,21 +32,17 @@ class WidgetImplementationProvider implements ImplementationProvider { private RuntimeComponent component; private WidgetImplementation implementation; - private ServletHost servletHost; - private String servletMapping; /** * Constructs a new resource implementation provider. */ - WidgetImplementationProvider(RuntimeComponent component, WidgetImplementation implementation, ServletHost servletHost) { + WidgetImplementationProvider(RuntimeComponent component, WidgetImplementation implementation) { this.component = component; this.implementation = implementation; - - this.servletHost = servletHost; } public Invoker createInvoker(RuntimeComponentService service, Operation operation) { - WidgetImplementationInvoker invoker = new WidgetImplementationInvoker(implementation.getLocationURL()); + WidgetImplementationInvoker invoker = new WidgetImplementationInvoker(component, implementation.getLocationURL().toString()); return invoker; } @@ -60,32 +51,9 @@ } public void start() { - - // Determine the widget URI - String widgetURI = null; - for (ComponentService componentService: component.getServices()) { - if (componentService.getName().equals("Widget")) { - if (componentService.getBindings().size() != 0) { - widgetURI = componentService.getBindings().get(0).getURI(); - } - break; - } - } - if (widgetURI == null) { - throw new ServiceRuntimeException("Could not find Widget service"); - } - - // Register the widget's ComponentServlet under the same URI as the widget - String widgetArtifact = implementation.getLocation(); - widgetArtifact = widgetArtifact.substring(0, widgetArtifact.lastIndexOf('.')); - widgetArtifact = widgetArtifact.substring(widgetArtifact.lastIndexOf('/') + 1); - servletMapping = widgetURI + "/" + widgetArtifact + ".js"; - WidgetComponentServlet widgetComponentServlet = new WidgetComponentServlet(component, servletMapping); - servletHost.addServletMapping(servletMapping, widgetComponentServlet); } public void stop() { - servletHost.removeServletMapping(servletMapping); } } Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java (original) +++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java Thu Jan 24 12:00:04 2008 @@ -19,8 +19,6 @@ package org.apache.tuscany.sca.implementation.widget.provider; import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint; import org.apache.tuscany.sca.implementation.widget.WidgetImplementation; import org.apache.tuscany.sca.provider.ImplementationProvider; import org.apache.tuscany.sca.provider.ImplementationProviderFactory; @@ -31,18 +29,14 @@ */ public class WidgetImplementationProviderFactory implements ImplementationProviderFactory<WidgetImplementation> { - private ServletHost servletHost; - /** * Constructs a resource implementation. */ public WidgetImplementationProviderFactory(ExtensionPointRegistry extensionPoints) { - ServletHostExtensionPoint servletHosts = extensionPoints.getExtensionPoint(ServletHostExtensionPoint.class); - this.servletHost = servletHosts.getServletHosts().get(0); } public ImplementationProvider createImplementationProvider(RuntimeComponent component, WidgetImplementation implementation) { - return new WidgetImplementationProvider(component, implementation, servletHost); + return new WidgetImplementationProvider(component, implementation); } public Class<WidgetImplementation> getModelType() { Copied: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java (from r612321, incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java) URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java?p2=incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java&p1=incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java&r1=612321&r2=614967&rev=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java (original) +++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java Thu Jan 24 12:00:04 2008 @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.tuscany.sca.implementation.widget; +package org.apache.tuscany.sca.implementation.widget.provider; import java.util.HashMap; import java.util.Map; Added: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java?rev=614967&view=auto ============================================================================== --- incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java (added) +++ incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java Thu Jan 24 12:00:04 2008 @@ -0,0 +1,45 @@ +/* + * 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.sca.interfacedef.java; + +import java.lang.reflect.Method; + +import org.apache.tuscany.sca.interfacedef.Operation; + +/** + * Represents a Java operation. + * + * @version $Rev$ $Date$ + */ +public interface JavaOperation extends Operation { + + /** + * Returns the Java method defining the operation. + * @return the Java method + */ + Method getJavaMethod(); + + /** + * Sets the Java method defining the operation. + * @param method the Java method + */ + void setJavaMethod(Method method); + +} Propchange: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java (original) +++ incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java Thu Jan 24 12:00:04 2008 @@ -39,9 +39,9 @@ import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.interfacedef.OverloadedOperationException; import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; import org.apache.tuscany.sca.interfacedef.java.JavaInterface; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; +import org.apache.tuscany.sca.interfacedef.java.JavaOperation; import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor; import org.apache.tuscany.sca.interfacedef.util.XMLType; import org.osoa.sca.annotations.Conversational; @@ -181,12 +181,14 @@ DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(IDL_INPUT, Object[].class, paramDataTypes); - Operation operation = new OperationImpl(name); + JavaOperation operation = new JavaOperationImpl(); + operation.setName(name); operation.setInputType(inputType); operation.setOutputType(returnDataType); operation.setFaultTypes(faultDataTypes); operation.setConversationSequence(conversationSequence); operation.setNonBlocking(nonBlocking); + operation.setJavaMethod(method); operations.add(operation); } return operations; Added: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java?rev=614967&view=auto ============================================================================== --- incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java (added) +++ incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java Thu Jan 24 12:00:04 2008 @@ -0,0 +1,44 @@ +/* + * 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.sca.interfacedef.java.impl; + +import java.lang.reflect.Method; + +import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; +import org.apache.tuscany.sca.interfacedef.java.JavaOperation; + +/** + * Represents a Java operation. + * + * @version $Rev$ $Date$ + */ +public class JavaOperationImpl extends OperationImpl implements JavaOperation { + + private Method method; + + public Method getJavaMethod() { + return method; + } + + public void setJavaMethod(Method method) { + this.method = method; + } + +} Propchange: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java (original) +++ incubator/tuscany/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java Thu Jan 24 12:00:04 2008 @@ -61,7 +61,7 @@ protected void setUp() throws Exception { super.setUp(); - Operation operation = new OperationImpl("foo"); + Operation operation = newOperation("foo"); List<DataType> types = new ArrayList<DataType>(); DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(Object[].class, types); operation.setInputType(inputType); @@ -73,7 +73,7 @@ inputType = new DataTypeImpl<List<DataType>>(Object[].class, types); DataType type = new DataTypeImpl<Class>(String.class, Object.class); types.add(type); - operation = new OperationImpl("foo"); + operation = newOperation("foo"); operation.setInputType(inputType); operations.add(operation); @@ -83,7 +83,7 @@ types.add(type); types.add(type2); inputType = new DataTypeImpl<List<DataType>>(Object[].class, types); - operation = new OperationImpl("foo"); + operation = newOperation("foo"); operation.setInputType(inputType); operations.add(operation); @@ -91,7 +91,7 @@ type = new DataTypeImpl<Class>(Integer.class, Object.class); types.add(type); inputType = new DataTypeImpl<List<DataType>>(Object[].class, types); - operation = new OperationImpl("foo"); + operation = newOperation("foo"); operation.setInputType(inputType); operations.add(operation); @@ -99,7 +99,7 @@ type = new DataTypeImpl<Class>(Integer.TYPE, Object.class); types.add(type); inputType = new DataTypeImpl<List<DataType>>(Object[].class, types); - operation = new OperationImpl("foo"); + operation = newOperation("foo"); operation.setInputType(inputType); operations.add(operation); @@ -111,5 +111,11 @@ void foo(String foo); void foo(int b); + } + + private static Operation newOperation(String name) { + Operation operation = new OperationImpl(); + operation.setName(name); + return operation; } } Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java (original) +++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java Thu Jan 24 12:00:04 2008 @@ -51,29 +51,8 @@ * @param name */ public OperationImpl() { - this(null); - } - - /** - * @param name - */ - public OperationImpl(String name) { - this(name, null, null, null); - } - - /** - * @param name - * @param inputType - * @param outputType - * @param faultTypes - */ - public OperationImpl(String name, DataType<List<DataType>> inputType, DataType outputType, List<DataType> faultTypes) { - super(); - this.name = name; - this.inputType = inputType != null ? inputType : new DataTypeImpl<List<DataType>>("idl:input", Object[].class, - new ArrayList<DataType>()); - this.outputType = outputType; - this.faultTypes = faultTypes != null ? faultTypes : new ArrayList<DataType>(); + inputType = new DataTypeImpl<List<DataType>>("idl:input", Object[].class, new ArrayList<DataType>()); + faultTypes = new ArrayList<DataType>(); } public String getName() { Modified: incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java (original) +++ incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java Thu Jan 24 12:00:04 2008 @@ -50,12 +50,12 @@ public void testBasic() throws Exception { InterfaceContract source = new MockContract("FooContract"); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); source.getInterface().getOperations().addAll(sourceOperations.values()); InterfaceContract target = new MockContract("FooContract"); - Operation opSource2 = new OperationImpl("op1"); + Operation opSource2 = newOperation("op1"); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opSource2); target.getInterface().getOperations().addAll(targetOperations.values()); @@ -64,12 +64,12 @@ public void testBasicIncompatibleOperationNames() throws Exception { InterfaceContract source = new MockContract("FooContract"); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); source.getInterface().getOperations().addAll(sourceOperations.values()); InterfaceContract target = new MockContract("FooContract"); - Operation opSource2 = new OperationImpl("op2"); + Operation opSource2 = newOperation("op2"); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op2", opSource2); target.getInterface().getOperations().addAll(targetOperations.values()); @@ -86,7 +86,7 @@ List<DataType> sourceInputTypes = new ArrayList<DataType>(); sourceInputTypes.add(new DataTypeImpl<Type>(Object.class, Object.class)); DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(String.class, sourceInputTypes); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); opSource1.setInputType(inputType); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); @@ -97,7 +97,7 @@ targetInputTypes.add(new DataTypeImpl<Type>(Object.class, Object.class)); DataType<List<DataType>> targetInputType = new DataTypeImpl<List<DataType>>(String.class, targetInputTypes); - Operation opTarget = new OperationImpl("op1"); + Operation opTarget = newOperation("op1"); opTarget.setInputType(targetInputType); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opTarget); @@ -110,7 +110,7 @@ List<DataType> sourceInputTypes = new ArrayList<DataType>(); sourceInputTypes.add(new DataTypeImpl<Type>(Integer.class, Integer.class)); DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(String.class, sourceInputTypes); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); opSource1.setInputType(inputType); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); @@ -121,7 +121,7 @@ targetInputTypes.add(new DataTypeImpl<Type>(String.class, String.class)); DataType<List<DataType>> targetInputType = new DataTypeImpl<List<DataType>>(String.class, targetInputTypes); - Operation opTarget = new OperationImpl("op1"); + Operation opTarget = newOperation("op1"); opTarget.setInputType(targetInputType); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opTarget); @@ -144,7 +144,7 @@ // Object.class)); // DataType<List<DataType>> inputType = new // DataTypeImpl<List<DataType>>(String.class, sourceInputTypes); - // Operation opSource1 = new OperationImpl("op1", inputType, null, null, + // Operation opSource1 = newOperationImpl("op1", inputType, null, null, // false, null); // Map<String, Operation> sourceOperations = new HashMap<String, // Operation>(); @@ -158,7 +158,7 @@ // DataType<List<DataType>> targetInputType = // new DataTypeImpl<List<DataType>>(String.class, targetInputTypes); // - // Operation opTarget = new OperationImpl("op1", targetInputType, null, + // Operation opTarget = newOperationImpl("op1", targetInputType, null, // null, false, null); // Map<String, Operation> targetOperations = new HashMap<String, // Operation>(); @@ -170,7 +170,7 @@ public void testOutputTypes() throws Exception { InterfaceContract source = new MockContract("FooContract"); DataType sourceOutputType = new DataTypeImpl<Type>(String.class, String.class); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); opSource1.setOutputType(sourceOutputType); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); @@ -178,7 +178,7 @@ InterfaceContract target = new MockContract("FooContract"); DataType targetOutputType = new DataTypeImpl<Type>(String.class, String.class); - Operation opTarget = new OperationImpl("op1"); + Operation opTarget = newOperation("op1"); opTarget.setOutputType(targetOutputType); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opTarget); @@ -193,7 +193,7 @@ // InterfaceContract source = new MockContract("FooContract"); // DataType sourceOutputType = new DataTypeImpl<Type>(Object.class, // Object.class); - // Operation opSource1 = new OperationImpl("op1", null, + // Operation opSource1 = newOperationImpl("op1", null, // sourceOutputType, null, false, null); // Map<String, Operation> sourceOperations = new HashMap<String, // Operation>(); @@ -203,7 +203,7 @@ // InterfaceContract target = new MockContract("FooContract"); // DataType targetOutputType = new DataTypeImpl<Type>(String.class, // String.class); - // Operation opTarget = new OperationImpl("op1", null, targetOutputType, + // Operation opTarget = newOperationImpl("op1", null, targetOutputType, // null, false, null); // Map<String, Operation> targetOperations = new HashMap<String, // Operation>(); @@ -215,7 +215,7 @@ public void testIncompatibleOutputTypes() throws Exception { InterfaceContract source = new MockContract("FooContract"); DataType sourceOutputType = new DataTypeImpl<Type>(String.class, String.class); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); opSource1.setOutputType(sourceOutputType); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); @@ -223,7 +223,7 @@ InterfaceContract target = new MockContract("FooContract"); DataType targetOutputType = new DataTypeImpl<Type>(Integer.class, Integer.class); - Operation opTarget = new OperationImpl("op1"); + Operation opTarget = newOperation("op1"); opTarget.setOutputType(targetOutputType); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opTarget); @@ -241,7 +241,7 @@ DataType sourceFaultType = new DataTypeImpl<Type>(String.class, String.class); List<DataType> sourceFaultTypes = new ArrayList<DataType>(); sourceFaultTypes.add(0, sourceFaultType); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); opSource1.setFaultTypes(sourceFaultTypes); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); @@ -252,7 +252,7 @@ List<DataType> targetFaultTypes = new ArrayList<DataType>(); targetFaultTypes.add(0, targetFaultType); - Operation opTarget = new OperationImpl("op1"); + Operation opTarget = newOperation("op1"); opTarget.setFaultTypes(targetFaultTypes); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opTarget); @@ -265,14 +265,14 @@ DataType sourceFaultType = new DataTypeImpl<Type>(String.class, String.class); List<DataType> sourceFaultTypes = new ArrayList<DataType>(); sourceFaultTypes.add(0, sourceFaultType); - Operation opSource1 = new OperationImpl("op1"); + Operation opSource1 = newOperation("op1"); opSource1.setFaultTypes(sourceFaultTypes); Map<String, Operation> sourceOperations = new HashMap<String, Operation>(); sourceOperations.put("op1", opSource1); source.getInterface().getOperations().addAll(sourceOperations.values()); InterfaceContract target = new MockContract("FooContract"); - Operation opTarget = new OperationImpl("op1"); + Operation opTarget = newOperation("op1"); Map<String, Operation> targetOperations = new HashMap<String, Operation>(); targetOperations.put("op1", opTarget); target.getInterface().getOperations().addAll(targetOperations.values()); @@ -291,7 +291,7 @@ // Exception.class); // List<DataType> sourceFaultTypes = new ArrayList<DataType>(); // sourceFaultTypes.add(0, sourceFaultType); - // Operation opSource1 = new OperationImpl("op1", null, null, + // Operation opSource1 = newOperationImpl("op1", null, null, // sourceFaultTypes, false, null); // Map<String, Operation> sourceOperations = new HashMap<String, // Operation>(); @@ -304,7 +304,7 @@ // List<DataType> targetFaultTypes = new ArrayList<DataType>(); // targetFaultTypes.add(0, targetFaultType); // - // Operation opTarget = new OperationImpl("op1", null, null, + // Operation opTarget = newOperationImpl("op1", null, null, // targetFaultTypes, false, null); // Map<String, Operation> targetOperations = new HashMap<String, // Operation>(); @@ -326,7 +326,7 @@ // List<DataType> sourceFaultTypes = new ArrayList<DataType>(); // sourceFaultTypes.add(0, sourceFaultType); // sourceFaultTypes.add(1, sourceFaultType2); - // Operation opSource1 = new OperationImpl("op1", null, null, + // Operation opSource1 = newOperationImpl("op1", null, null, // sourceFaultTypes, false, null); // Map<String, Operation> sourceOperations = new HashMap<String, // Operation>(); @@ -339,7 +339,7 @@ // List<DataType> targetFaultTypes = new ArrayList<DataType>(); // targetFaultTypes.add(0, targetFaultType); // - // Operation opTarget = new OperationImpl("op1", null, null, + // Operation opTarget = newOperationImpl("op1", null, null, // targetFaultTypes, false, null); // Map<String, Operation> targetOperations = new HashMap<String, // Operation>(); @@ -362,4 +362,9 @@ } } + private static Operation newOperation(String name) { + Operation operation = new OperationImpl(); + operation.setName(name); + return operation; + } } Modified: incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java?rev=614967&r1=614966&r2=614967&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java (original) +++ incubator/tuscany/java/sca/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java Thu Jan 24 12:00:04 2008 @@ -42,11 +42,11 @@ contract = new MockInterfaceContract(); Interface i1 = new MockInterface(); contract.setInterface(i1); - Operation op1 = new OperationImpl("op1"); + Operation op1 = newOperation("op1"); i1.getOperations().add(op1); Interface i2 = new MockInterface(); contract.setCallbackInterface(i2); - Operation callbackOp1 = new OperationImpl("callbackOp1"); + Operation callbackOp1 = newOperation("callbackOp1"); i2.getOperations().add(callbackOp1); } @@ -69,4 +69,9 @@ private static class MockInterface extends InterfaceImpl implements Interface { } + private static Operation newOperation(String name) { + Operation operation = new OperationImpl(); + operation.setName(name); + return operation; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
