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]

Reply via email to