You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ri...@apache.org on 2006/08/11 03:59:41 UTC

svn commit: r430621 - in /incubator/tuscany/java: samples/sca/helloworldws/ samples/sca/helloworldwsclient/ samples/sca/helloworldwsclient/src/main/java/helloworld/ samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/ sca/bindings/binding.ax...

Author: rineholt
Date: Thu Aug 10 18:59:40 2006
New Revision: 430621

URL: http://svn.apache.org/viewvc?rev=430621&view=rev
Log:
TUSCANY-575
http://issues.apache.org/jira/browse/TUSCANY-575
fix service element to use child reference element instead of target attribute
mock can be a pain
feed java interface specified in service to service element (still a tad of a hack)

Added:
    incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
Modified:
    incubator/tuscany/java/samples/sca/helloworldws/setup.bat
    incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
    incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
    incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
    incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
    incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
    incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
    incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
    incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
    incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl

Modified: incubator/tuscany/java/samples/sca/helloworldws/setup.bat
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldws/setup.bat?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldws/setup.bat (original)
+++ incubator/tuscany/java/samples/sca/helloworldws/setup.bat Thu Aug 10 18:59:40 2006
@@ -11,3 +11,6 @@
 rem jar -xf  "%USERPROFILE%\.m2\repository\org\apache\tuscany\web\1.0-SNAPSHOT\web-1.0-SNAPSHOT-bin.zip"
 jar -xf  "%USERPROFILE%\.m2\repository\org\apache\tuscany\web\1.0-SNAPSHOT\web-1.0-SNAPSHOT-bin.zip"
 popd
+rem hack
+mkdir target\apache-tomcat-5.5.17\shared\extension
+copy target\apache-tomcat-5.5.17\shared\lib\axis2-1.0-SNAPSHOT.jar target\apache-tomcat-5.5.17\shared\extension 

Modified: incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat (original)
+++ incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat Thu Aug 10 18:59:40 2006
@@ -4,4 +4,21 @@
 pushd target\standalone
 jar -xf "%USERPROFILE%\.m2\repository\org\apache\tuscany\standalone\1.0-SNAPSHOT\standalone-1.0-SNAPSHOT-bin.zip" 
 popd
+move target\standalone\extension\axiom-api-1.0.jar target\standalone\boot
+move target\standalone\extension\axiom-impl-1.0.jar target\standalone\boot
+move target\standalone\extension\axis2-kernel-1.0.jar target\standalone\boot
+move target\standalone\extension\common-2.2.1-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\commons-codec-1.3.jar target\standalone\boot
+move target\standalone\extension\commons-httpclient-3.0.jar target\standalone\boot
+move target\standalone\extension\ecore-2.2.1-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\ecore-change-2.2.1-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\ecore-xmi-2.2.1-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\junit-3.8.1.jar target\standalone\boot
+move target\standalone\extension\neethi-1.0.1.jar target\standalone\boot
+move target\standalone\extension\sdo-api-1.0-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\tuscany-sdo-impl-1.0-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\XmlSchema-1.0.2.jar target\standalone\boot
+move target\standalone\extension\xsd-2.2.1-SNAPSHOT.jar target\standalone\boot
+move target\standalone\extension\wstx-asl-2.9.3.jar target\standalone\boot
+move target\standalone\extension\commons-logging-1.0.3.jar target\standalone\boot
 java %java_debug_set% -jar target\standalone\bin\launcher.jar  --classpath "%USERPROFILE%\.m2\repository\org\apache\tuscany\samples\sca\sample-helloworldwsclient\1.0-SNAPSHOT\sample-helloworldwsclient-1.0-SNAPSHOT.jar" %*

Modified: incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java (original)
+++ incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java Thu Aug 10 18:59:40 2006
@@ -59,7 +59,7 @@
         
         // Invoke the HelloWorld service
         CompositeContext compositeContext = CurrentCompositeContext.getContext();
-        HelloWorldService helloWorldService= compositeContext.locateService(HelloWorldService.class, "HelloWorldService");
+        HelloWorldService helloWorldService= compositeContext.locateService(HelloWorldService.class, "HelloWorldServiceComponent");
         String value = helloWorldService.getGreetings("World");
         
         System.out.println(value);

Modified: incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java (original)
+++ incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java Thu Aug 10 18:59:40 2006
@@ -16,9 +16,10 @@
  */
 package helloworld;
 
-/**
- * This is the business interface of the HelloWorld greetings service.
- */
+import org.osoa.sca.annotations.Service;
+
+
+@Service
 public interface HelloWorldService {
 
     public String getGreetings(String name);

Added: incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java?rev=430621&view=auto
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java (added)
+++ incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java Thu Aug 10 18:59:40 2006
@@ -0,0 +1,55 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package helloworld;
+
+import org.osoa.sca.CompositeContext;
+import org.osoa.sca.CurrentCompositeContext;
+import org.osoa.sca.annotations.Scope;
+
+
+
+//import org.osoa.sca.CurrentModuleContext;
+//import org.osoa.sca.ModuleContext;
+//
+//import org.apache.tuscany.core.client.TuscanyRuntime;
+//import org.apache.tuscany.common.monitor.MonitorFactory;
+//import org.apache.tuscany.common.monitor.impl.JavaLoggingMonitorFactory;
+
+/**
+ * This client program shows how to create an SCA runtime, start it,
+ * locate the HelloWorld service and invoke it.
+ */
+
+
+@Scope("MODULE")
+public class HelloWorldServiceComponent implements HelloWorldService {
+   
+    HelloWorldService helloWorldService;
+
+    public String getGreetings(String name) {
+        // TODO Auto-generated method stub
+        return helloWorldService.getGreetings(name);
+    }
+
+    public HelloWorldService getHelloWorldService() {
+        return helloWorldService;
+    }
+
+    public void setHelloWorldService(HelloWorldService helloWorldService) {
+        this.helloWorldService = helloWorldService;
+    }
+}

Modified: incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl (original)
+++ incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl Thu Aug 10 18:59:40 2006
@@ -18,10 +18,17 @@
            xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
            name="sampleHelloworld">
 
+    <component name="HelloWorldServiceComponent">
+      <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+      <references>
+	       <reference name="helloWorldService" target="HelloWorldService" />
+       </references>
+    </component>
+
     <reference name="HelloWorldService">
         <interface.java interface="helloworld.HelloWorldService"/>
         <binding.ws endpoint="http://helloworld#wsdl.endpoint(HelloWorldService/HelloWorldSoapPort)"
 			location="wsdl/helloworld.wsdl" />
     </reference>
 
-</composite>
\ No newline at end of file
+</composite>

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java Thu Aug 10 18:59:40 2006
@@ -32,8 +32,8 @@
                            BoundServiceDefinition<WebServiceBinding> serviceDefinition,
                            DeploymentContext deploymentContext) {
         WebServiceBinding wsBinding = serviceDefinition.getBinding();
-        // FIXME need to get interface for the service
-        Class<?> interfaze = null;
+        
+        Class<?> interfaze = serviceDefinition.getServiceContract().getInterfaceClass();
         //FIXME: Axis2Service needs an instance of ServletHost as parameter. How to get it?
         return new Axis2Service(
             serviceDefinition.getName(),

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java Thu Aug 10 18:59:40 2006
@@ -24,6 +24,7 @@
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
@@ -43,6 +44,7 @@
     private SDODataBinding dataBinding;
     private SOAPFactory soapFactory;
     private OperationClient operationClient;
+    
 
     public Axis2TargetInvoker(QName wsdlOperationName, Options options, SDODataBinding dataBinding,
                               SOAPFactory soapFactory,
@@ -68,8 +70,20 @@
             SOAPEnvelope env = soapFactory.getDefaultEnvelope();
 
             if (payload != null && payload.getClass().isArray() && ((Object[]) payload).length > 0) {
-                OMElement requestOM = dataBinding.toOMElement((Object[]) payload);
-                env.getBody().addChild(requestOM);
+//                OMElement requestOM = dataBinding.toOMElement((Object[]) payload);
+//                env.getBody().addChild(requestOM);
+//TODO HACK 
+                OMFactory fac = env.getOMFactory();
+                OMElement opE = fac.createOMElement("getGreetings" ,"http://helloworld", "helloworld");
+                //            <helloworld:name>World</helloworld:name>
+
+                OMElement parmE = fac.createOMElement("name" ,"http://helloworld", "helloworld");
+                opE.addChild(parmE);
+                parmE.addChild(fac.createOMText(((Object[])payload)[0] + ""));
+                env.getBody().addChild((opE));
+//TODO HACK     
+                
+               
             }
 
             MessageContext requestMC = new MessageContext();

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java Thu Aug 10 18:59:40 2006
@@ -40,6 +40,7 @@
 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.services.wsdl.WSDLDefinitionRegistry;
 import org.osoa.sca.annotations.Scope;
 import org.xml.sax.InputSource;
@@ -78,12 +79,14 @@
         String uri = null;
         endpointAttribute = reader.getAttributeValue(null, "endpoint");
         wsdlLocation = reader.getAttributeValue(null, "location");
+        LoaderUtil.skipToEndElement(reader);
         try {
             return createBinding(uri, endpointAttribute, deploymentContext);
         } catch (Exception e) {
 
             throw new LoaderException(e);
         }
+        
     }
 
     @SuppressWarnings("unchecked")

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java Thu Aug 10 18:59:40 2006
@@ -40,6 +40,8 @@
 import org.apache.tuscany.spi.model.ServiceDefinition;
 import org.apache.tuscany.spi.annotation.Autowire;
 
+import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
+
 /**
  * Loads a service definition from an XML-based assembly file
  *
@@ -47,6 +49,7 @@
  */
 public class ServiceLoader extends LoaderExtension<ServiceDefinition> {
     private static final QName SERVICE = new QName(XML_NAMESPACE_1_0, "service");
+    private static final QName REFERENCE = new QName(XML_NAMESPACE_1_0, "reference");
 
     @Constructor({"registry"})
     public ServiceLoader(@Autowire LoaderRegistry registry) {
@@ -64,18 +67,25 @@
         throws XMLStreamException, LoaderException {
         assert SERVICE.equals(reader.getName());
         String name = reader.getAttributeValue(null, "name");
-        String target = reader.getAttributeValue(null, "target");
+        String target = null ;
         Binding binding = null;
         ServiceContract serviceContract = null;
         while (true) {
             int i = reader.next();
             switch (i) {
                 case START_ELEMENT:
-                    ModelObject o = registry.load(parent, reader, deploymentContext);
-                    if (o instanceof ServiceContract) {
-                        serviceContract = (ServiceContract) o;
-                    } else if (o instanceof Binding) {
-                        binding = (Binding) o;
+                    
+                    //there is a reference already using this qname which doesn't seem appropriate.
+                    if(REFERENCE.equals(reader.getName())){
+                        target= reader.getElementText();
+                    }else{
+
+                        ModelObject o = registry.load(parent, reader, deploymentContext);
+                        if (o instanceof ServiceContract) {
+                            serviceContract = (ServiceContract) o;
+                        } else if (o instanceof Binding) {
+                            binding = (Binding) o;
+                        }
                     }
                     break;
                 case END_ELEMENT:

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java Thu Aug 10 18:59:40 2006
@@ -40,6 +40,7 @@
  */
 public class ServiceLoaderTestCase extends MockObjectTestCase {
     private static final QName SERVICE = new QName(XML_NAMESPACE_1_0, "service");
+    private static final QName REFERENCE = new QName(XML_NAMESPACE_1_0, "reference");
 
     private ServiceLoader loader;
     private DeploymentContext deploymentContext;
@@ -48,12 +49,12 @@
 
     public void testWithNoInterface() throws LoaderException, XMLStreamException {
         String name = "serviceDefinition";
-        String target = "target";
+//        String target = "target";
         mockReader.expects(once()).method("getName").will(returnValue(SERVICE));
         // todo figure out how to check ordering
-        mockReader.expects(atLeastOnce()).method("getAttributeValue")
+        mockReader.expects(once()).method("getAttributeValue")
                 .with(ANYTHING, ANYTHING)
-                .will(onConsecutiveCalls(returnValue(name), returnValue(target)));
+                .will(returnValue(name));
         mockReader.expects(once()).method("next").will(returnValue(END_ELEMENT));
         ServiceDefinition serviceDefinition = loader.load(null, (XMLStreamReader) mockReader.proxy(), null);
         assertNotNull(serviceDefinition);
@@ -65,15 +66,21 @@
         String target = "target";
         ServiceContract sc = new ServiceContract() {
         };
-        mockReader.expects(once()).method("getName").will(returnValue(SERVICE));
+        mockReader.expects(atLeastOnce()).method("getName")
+          .will(onConsecutiveCalls(returnValue(SERVICE),returnValue(SERVICE)
+                  ,returnValue(REFERENCE)));
         // todo figure out how to check ordering
-        mockReader.expects(atLeastOnce()).method("getAttributeValue")
+        mockReader.expects(once()).method("getAttributeValue")
                 .with(ANYTHING, ANYTHING)
-                .will(onConsecutiveCalls(returnValue(name), returnValue(target)));
+                .will((returnValue(name)));
         mockReader.expects(atLeastOnce()).method("next")
-            .will(onConsecutiveCalls(returnValue(START_ELEMENT), returnValue(END_ELEMENT)));
+            .will(onConsecutiveCalls(returnValue(START_ELEMENT), returnValue(START_ELEMENT), returnValue(END_ELEMENT)));
         mockRegistry.expects(once()).method("load").with(eq(null), eq(mockReader.proxy()), eq(deploymentContext))
             .will(returnValue(sc));
+        mockReader.expects(once()).method("getElementText").withNoArguments()
+        
+        .will((returnValue(target)));
+        
         ServiceDefinition serviceDefinition =
             loader.load(null, (XMLStreamReader) mockReader.proxy(), deploymentContext);
         assertNotNull(serviceDefinition);

Modified: incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl (original)
+++ incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl Thu Aug 10 18:59:40 2006
@@ -17,9 +17,10 @@
 <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
            xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
            name="boot1">
-    <service name="service" target="component">
+    <service name="service" >
         <interface.java interface="org.apache.tuscany.core.mock.component.BasicInterface"/>
         <system:binding.system/>
+        <reference>component</reference>
     </service>
 
     <component name="component">

Modified: incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl (original)
+++ incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl Thu Aug 10 18:59:40 2006
@@ -23,9 +23,10 @@
            name="boot2">
 
     <!-- expose Deployer API as a service -->
-    <service name="deployer" target="deployerImpl">
+    <service name="deployer" >
         <interface.java interface="org.apache.tuscany.spi.deployer.Deployer"/>
         <system:binding.system/>
+        <reference>deployerImpl</reference>
     </service>
 
     <!-- Component that provides the Deployer service -->



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org


Re: svn commit: r430621 - in /incubator/tuscany/java: samples/sca/helloworldws/ samples/sca/helloworldwsclient/ samples/sca/helloworldwsclient/src/main/java/helloworld/ samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/ sca/bindings/binding.ax

Posted by Raymond Feng <en...@gmail.com>.
Hi, Rick.

With your check-in, I'm seeing the EchoBinding test case is failing with the 
following exception:

org.apache.tuscany.spi.loader.InvalidReferenceException: No target for 
service  [ClientService]
 at org.apache.tuscany.core.loader.ServiceLoader.load(ServiceLoader.java)
 at org.apache.tuscany.core.loader.ServiceLoader.load(ServiceLoader.java:1)
 at 
org.apache.tuscany.core.loader.LoaderRegistryImpl.load(LoaderRegistryImpl.java:90)
 at 
org.apache.tuscany.core.implementation.composite.CompositeLoader.load(CompositeLoader.java:75)
 at 
org.apache.tuscany.core.implementation.composite.CompositeLoader.load(CompositeLoader.java:50)
 at 
org.apache.tuscany.core.loader.LoaderRegistryImpl.load(LoaderRegistryImpl.java:90)
 at 
org.apache.tuscany.core.loader.LoaderRegistryImpl.load(LoaderRegistryImpl.java:107)
 at 
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile(CompositeComponentTypeLoader.java:46)
 at 
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load(CompositeComponentTypeLoader.java:38)
 at 
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load(CompositeComponentTypeLoader.java:20)
 at 
org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(LoaderRegistryImpl.java:157)
 at 
org.apache.tuscany.core.deployer.DeployerImpl.load(DeployerImpl.java:111)
 at 
org.apache.tuscany.core.deployer.DeployerImpl.deploy(DeployerImpl.java:90)
 at 
org.apache.tuscany.core.launcher.Launcher.bootApplication(Launcher.java:171)
 at org.apache.tuscany.test.SCATestCase.setUp(SCATestCase.java:63)
 at echo.BootstrapTestCase.setUp(BootstrapTestCase.java:23)
 at junit.framework.TestCase.runBare(TestCase.java:125)
 at junit.framework.TestResult$1.protect(TestResult.java:106)
 at junit.framework.TestResult.runProtected(TestResult.java:124)
 at junit.framework.TestResult.run(TestResult.java:109)
 at junit.framework.TestCase.run(TestCase.java:118)
 at 
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
 at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

I adjusted the scdl file per SCA 0.95 spec:

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="echo.sample">
<service name="ClientService">
<interface.java class="echo.Client"/>
<binding.echo/>
<reference>Client</reference>
</service>
<component name="Client">
<implementation.java class="echo.ClientImpl"/>
<reference name="echoReference">EchoReference</reference>
</component>
<reference name="EchoReference">
<interface.java interface="echo.Echo"/>
<binding.echo/>
</reference>
</composite>

Now the ServiceLoader.java is problematic because it assumes it'll get 
"reference" before the "binding" which is not case per SCA 0.95 spec:

<service name="xs:NCName" multiplicity="0..1 or 1..1 or 0..n or 1..n"?>*
<interface/>
<binding uri="xs:anyURI"?/>*
<reference>wire-target-URI</reference>+
</service>

<component name="xs:NCName">*
<implementation/>
<property name="xs:NCName" source="sca:Property"?>*
property-value
</property>
<reference name="xs:NCName"/>*
wire-target-URI
</reference>
</component>

The ComponentLoader.java cannot handle the reference element either since 
the SCA spec 0.95 also use the element content instead of "target" 
attribute.

I attached a patch to fix the problem but some of the SCDLs and test cases 
need to be adjusted to conform to the SCA 0.95 spec.

Thanks,
Raymond

----- Original Message ----- 
From: <ri...@apache.org>
To: <tu...@ws.apache.org>
Sent: Thursday, August 10, 2006 6:59 PM
Subject: svn commit: r430621 - in /incubator/tuscany/java: 
samples/sca/helloworldws/ samples/sca/helloworldwsclient/ 
samples/sca/helloworldwsclient/src/main/java/helloworld/ 
samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/ 
sca/bindings/binding.ax...


> Author: rineholt
> Date: Thu Aug 10 18:59:40 2006
> New Revision: 430621
>
> URL: http://svn.apache.org/viewvc?rev=430621&view=rev
> Log:
> TUSCANY-575
> http://issues.apache.org/jira/browse/TUSCANY-575
> fix service element to use child reference element instead of target 
> attribute
> mock can be a pain
> feed java interface specified in service to service element (still a tad 
> of a hack)
>
> Added:
> 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
> Modified:
>    incubator/tuscany/java/samples/sca/helloworldws/setup.bat
>    incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
> 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
> 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
> 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
> 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
> 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
> 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
> 
> incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
> 
> incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
> 
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
> 
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
>
> Modified: incubator/tuscany/java/samples/sca/helloworldws/setup.bat
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldws/setup.bat?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> --- incubator/tuscany/java/samples/sca/helloworldws/setup.bat (original)
> +++ incubator/tuscany/java/samples/sca/helloworldws/setup.bat Thu Aug 10 
> 18:59:40 2006
> @@ -11,3 +11,6 @@
> rem jar -xf 
> "%USERPROFILE%\.m2\repository\org\apache\tuscany\web\1.0-SNAPSHOT\web-1.0-SNAPSHOT-bin.zip"
> jar -xf 
> "%USERPROFILE%\.m2\repository\org\apache\tuscany\web\1.0-SNAPSHOT\web-1.0-SNAPSHOT-bin.zip"
> popd
> +rem hack
> +mkdir target\apache-tomcat-5.5.17\shared\extension
> +copy target\apache-tomcat-5.5.17\shared\lib\axis2-1.0-SNAPSHOT.jar 
> target\apache-tomcat-5.5.17\shared\extension
>
> Modified: incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> --- incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat 
> (original)
> +++ incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat Thu Aug 
> 10 18:59:40 2006
> @@ -4,4 +4,21 @@
> pushd target\standalone
> jar -xf 
> "%USERPROFILE%\.m2\repository\org\apache\tuscany\standalone\1.0-SNAPSHOT\standalone-1.0-SNAPSHOT-bin.zip"
> popd
> +move target\standalone\extension\axiom-api-1.0.jar target\standalone\boot
> +move target\standalone\extension\axiom-impl-1.0.jar 
> target\standalone\boot
> +move target\standalone\extension\axis2-kernel-1.0.jar 
> target\standalone\boot
> +move target\standalone\extension\common-2.2.1-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\commons-codec-1.3.jar 
> target\standalone\boot
> +move target\standalone\extension\commons-httpclient-3.0.jar 
> target\standalone\boot
> +move target\standalone\extension\ecore-2.2.1-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\ecore-change-2.2.1-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\ecore-xmi-2.2.1-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\junit-3.8.1.jar target\standalone\boot
> +move target\standalone\extension\neethi-1.0.1.jar target\standalone\boot
> +move target\standalone\extension\sdo-api-1.0-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\tuscany-sdo-impl-1.0-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\XmlSchema-1.0.2.jar 
> target\standalone\boot
> +move target\standalone\extension\xsd-2.2.1-SNAPSHOT.jar 
> target\standalone\boot
> +move target\standalone\extension\wstx-asl-2.9.3.jar 
> target\standalone\boot
> +move target\standalone\extension\commons-logging-1.0.3.jar 
> target\standalone\boot
> java %java_debug_set% -jar target\standalone\bin\launcher.jar  --classpath 
> "%USERPROFILE%\.m2\repository\org\apache\tuscany\samples\sca\sample-helloworldwsclient\1.0-SNAPSHOT\sample-helloworldwsclient-1.0-SNAPSHOT.jar" 
> %*
>
> Modified: 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java 
> (original)
> +++ 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java 
> Thu Aug 10 18:59:40 2006
> @@ -59,7 +59,7 @@
>
>         // Invoke the HelloWorld service
>         CompositeContext compositeContext = 
> CurrentCompositeContext.getContext();
> -        HelloWorldService helloWorldService= 
> compositeContext.locateService(HelloWorldService.class, 
> "HelloWorldService");
> +        HelloWorldService helloWorldService= 
> compositeContext.locateService(HelloWorldService.class, 
> "HelloWorldServiceComponent");
>         String value = helloWorldService.getGreetings("World");
>
>         System.out.println(value);
>
> Modified: 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java 
> (original)
> +++ 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java 
> Thu Aug 10 18:59:40 2006
> @@ -16,9 +16,10 @@
>  */
> package helloworld;
>
> -/**
> - * This is the business interface of the HelloWorld greetings service.
> - */
> +import org.osoa.sca.annotations.Service;
> +
> +
> +@Service
> public interface HelloWorldService {
>
>     public String getGreetings(String name);
>
> Added: 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java?rev=430621&view=auto
> ==============================================================================
> ---  
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java 
> (added)
> +++ 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java 
> Thu Aug 10 18:59:40 2006
> @@ -0,0 +1,55 @@
> +/**
> + *
> + *  Copyright 2005 The Apache Software Foundation or its licensors, as 
> applicable.
> + *
> + *  Licensed under the Apache License, Version 2.0 (the "License");
> + *  you may not use this file except in compliance with the License.
> + *  You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + *  Unless required by applicable law or agreed to in writing, software
> + *  distributed under the License is distributed on an "AS IS" BASIS,
> + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
> implied.
> + *  See the License for the specific language governing permissions and
> + *  limitations under the License.
> + */
> +package helloworld;
> +
> +import org.osoa.sca.CompositeContext;
> +import org.osoa.sca.CurrentCompositeContext;
> +import org.osoa.sca.annotations.Scope;
> +
> +
> +
> +//import org.osoa.sca.CurrentModuleContext;
> +//import org.osoa.sca.ModuleContext;
> +//
> +//import org.apache.tuscany.core.client.TuscanyRuntime;
> +//import org.apache.tuscany.common.monitor.MonitorFactory;
> +//import 
> org.apache.tuscany.common.monitor.impl.JavaLoggingMonitorFactory;
> +
> +/**
> + * This client program shows how to create an SCA runtime, start it,
> + * locate the HelloWorld service and invoke it.
> + */
> +
> +
> +@Scope("MODULE")
> +public class HelloWorldServiceComponent implements HelloWorldService {
> +
> +    HelloWorldService helloWorldService;
> +
> +    public String getGreetings(String name) {
> +        // TODO Auto-generated method stub
> +        return helloWorldService.getGreetings(name);
> +    }
> +
> +    public HelloWorldService getHelloWorldService() {
> +        return helloWorldService;
> +    }
> +
> +    public void setHelloWorldService(HelloWorldService helloWorldService) 
> {
> +        this.helloWorldService = helloWorldService;
> +    }
> +}
>
> Modified: 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl 
> (original)
> +++ 
> incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl 
> Thu Aug 10 18:59:40 2006
> @@ -18,10 +18,17 @@
> 
> xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
>            name="sampleHelloworld">
>
> +    <component name="HelloWorldServiceComponent">
> +      <implementation.java 
> class="helloworld.HelloWorldServiceComponent"/>
> +      <references>
> +        <reference name="helloWorldService" target="HelloWorldService" />
> +       </references>
> +    </component>
> +
>     <reference name="HelloWorldService">
>         <interface.java interface="helloworld.HelloWorldService"/>
>         <binding.ws 
> endpoint="http://helloworld#wsdl.endpoint(HelloWorldService/HelloWorldSoapPort)"
>  location="wsdl/helloworld.wsdl" />
>     </reference>
>
> -</composite>
> \ No newline at end of file
> +</composite>
>
> Modified: 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java 
> (original)
> +++ 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java 
> Thu Aug 10 18:59:40 2006
> @@ -32,8 +32,8 @@
>                            BoundServiceDefinition<WebServiceBinding> 
> serviceDefinition,
>                            DeploymentContext deploymentContext) {
>         WebServiceBinding wsBinding = serviceDefinition.getBinding();
> -        // FIXME need to get interface for the service
> -        Class<?> interfaze = null;
> +
> +        Class<?> interfaze = 
> serviceDefinition.getServiceContract().getInterfaceClass();
>         //FIXME: Axis2Service needs an instance of ServletHost as 
> parameter. How to get it?
>         return new Axis2Service(
>             serviceDefinition.getName(),
>
> Modified: 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java 
> (original)
> +++ 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java 
> Thu Aug 10 18:59:40 2006
> @@ -24,6 +24,7 @@
> import org.apache.tuscany.spi.wire.TargetInvoker;
>
> import org.apache.axiom.om.OMElement;
> +import org.apache.axiom.om.OMFactory;
> import org.apache.axiom.soap.SOAPEnvelope;
> import org.apache.axiom.soap.SOAPFactory;
> import org.apache.axis2.AxisFault;
> @@ -43,6 +44,7 @@
>     private SDODataBinding dataBinding;
>     private SOAPFactory soapFactory;
>     private OperationClient operationClient;
> +
>
>     public Axis2TargetInvoker(QName wsdlOperationName, Options options, 
> SDODataBinding dataBinding,
>                               SOAPFactory soapFactory,
> @@ -68,8 +70,20 @@
>             SOAPEnvelope env = soapFactory.getDefaultEnvelope();
>
>             if (payload != null && payload.getClass().isArray() && 
> ((Object[]) payload).length > 0) {
> -                OMElement requestOM = dataBinding.toOMElement((Object[]) 
> payload);
> -                env.getBody().addChild(requestOM);
> +//                OMElement requestOM = 
> dataBinding.toOMElement((Object[]) payload);
> +//                env.getBody().addChild(requestOM);
> +//TODO HACK
> +                OMFactory fac = env.getOMFactory();
> +                OMElement opE = fac.createOMElement("getGreetings" 
> ,"http://helloworld", "helloworld");
> +                //            <helloworld:name>World</helloworld:name>
> +
> +                OMElement parmE = fac.createOMElement("name" 
> ,"http://helloworld", "helloworld");
> +                opE.addChild(parmE);
> +                parmE.addChild(fac.createOMText(((Object[])payload)[0] + 
> ""));
> +                env.getBody().addChild((opE));
> +//TODO HACK
> +
> +
>             }
>
>             MessageContext requestMC = new MessageContext();
>
> Modified: 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java 
> (original)
> +++ 
> incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java 
> Thu Aug 10 18:59:40 2006
> @@ -40,6 +40,7 @@
> 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.services.wsdl.WSDLDefinitionRegistry;
> import org.osoa.sca.annotations.Scope;
> import org.xml.sax.InputSource;
> @@ -78,12 +79,14 @@
>         String uri = null;
>         endpointAttribute = reader.getAttributeValue(null, "endpoint");
>         wsdlLocation = reader.getAttributeValue(null, "location");
> +        LoaderUtil.skipToEndElement(reader);
>         try {
>             return createBinding(uri, endpointAttribute, 
> deploymentContext);
>         } catch (Exception e) {
>
>             throw new LoaderException(e);
>         }
> +
>     }
>
>     @SuppressWarnings("unchecked")
>
> Modified: 
> incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java 
> (original)
> +++ 
> incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java 
> Thu Aug 10 18:59:40 2006
> @@ -40,6 +40,8 @@
> import org.apache.tuscany.spi.model.ServiceDefinition;
> import org.apache.tuscany.spi.annotation.Autowire;
>
> +import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
> +
> /**
>  * Loads a service definition from an XML-based assembly file
>  *
> @@ -47,6 +49,7 @@
>  */
> public class ServiceLoader extends LoaderExtension<ServiceDefinition> {
>     private static final QName SERVICE = new QName(XML_NAMESPACE_1_0, 
> "service");
> +    private static final QName REFERENCE = new QName(XML_NAMESPACE_1_0, 
> "reference");
>
>     @Constructor({"registry"})
>     public ServiceLoader(@Autowire LoaderRegistry registry) {
> @@ -64,18 +67,25 @@
>         throws XMLStreamException, LoaderException {
>         assert SERVICE.equals(reader.getName());
>         String name = reader.getAttributeValue(null, "name");
> -        String target = reader.getAttributeValue(null, "target");
> +        String target = null ;
>         Binding binding = null;
>         ServiceContract serviceContract = null;
>         while (true) {
>             int i = reader.next();
>             switch (i) {
>                 case START_ELEMENT:
> -                    ModelObject o = registry.load(parent, reader, 
> deploymentContext);
> -                    if (o instanceof ServiceContract) {
> -                        serviceContract = (ServiceContract) o;
> -                    } else if (o instanceof Binding) {
> -                        binding = (Binding) o;
> +
> +                    //there is a reference already using this qname which 
> doesn't seem appropriate.
> +                    if(REFERENCE.equals(reader.getName())){
> +                        target= reader.getElementText();
> +                    }else{
> +
> +                        ModelObject o = registry.load(parent, reader, 
> deploymentContext);
> +                        if (o instanceof ServiceContract) {
> +                            serviceContract = (ServiceContract) o;
> +                        } else if (o instanceof Binding) {
> +                            binding = (Binding) o;
> +                        }
>                     }
>                     break;
>                 case END_ELEMENT:
>
> Modified: 
> incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java 
> (original)
> +++ 
> incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java 
> Thu Aug 10 18:59:40 2006
> @@ -40,6 +40,7 @@
>  */
> public class ServiceLoaderTestCase extends MockObjectTestCase {
>     private static final QName SERVICE = new QName(XML_NAMESPACE_1_0, 
> "service");
> +    private static final QName REFERENCE = new QName(XML_NAMESPACE_1_0, 
> "reference");
>
>     private ServiceLoader loader;
>     private DeploymentContext deploymentContext;
> @@ -48,12 +49,12 @@
>
>     public void testWithNoInterface() throws LoaderException, 
> XMLStreamException {
>         String name = "serviceDefinition";
> -        String target = "target";
> +//        String target = "target";
> 
> mockReader.expects(once()).method("getName").will(returnValue(SERVICE));
>         // todo figure out how to check ordering
> -        mockReader.expects(atLeastOnce()).method("getAttributeValue")
> +        mockReader.expects(once()).method("getAttributeValue")
>                 .with(ANYTHING, ANYTHING)
> -                .will(onConsecutiveCalls(returnValue(name), 
> returnValue(target)));
> +                .will(returnValue(name));
> 
> mockReader.expects(once()).method("next").will(returnValue(END_ELEMENT));
>         ServiceDefinition serviceDefinition = loader.load(null, 
> (XMLStreamReader) mockReader.proxy(), null);
>         assertNotNull(serviceDefinition);
> @@ -65,15 +66,21 @@
>         String target = "target";
>         ServiceContract sc = new ServiceContract() {
>         };
> - 
> mockReader.expects(once()).method("getName").will(returnValue(SERVICE));
> +        mockReader.expects(atLeastOnce()).method("getName")
> + 
> .will(onConsecutiveCalls(returnValue(SERVICE),returnValue(SERVICE)
> +                  ,returnValue(REFERENCE)));
>         // todo figure out how to check ordering
> -        mockReader.expects(atLeastOnce()).method("getAttributeValue")
> +        mockReader.expects(once()).method("getAttributeValue")
>                 .with(ANYTHING, ANYTHING)
> -                .will(onConsecutiveCalls(returnValue(name), 
> returnValue(target)));
> +                .will((returnValue(name)));
>         mockReader.expects(atLeastOnce()).method("next")
> -            .will(onConsecutiveCalls(returnValue(START_ELEMENT), 
> returnValue(END_ELEMENT)));
> +            .will(onConsecutiveCalls(returnValue(START_ELEMENT), 
> returnValue(START_ELEMENT), returnValue(END_ELEMENT)));
>         mockRegistry.expects(once()).method("load").with(eq(null), 
> eq(mockReader.proxy()), eq(deploymentContext))
>             .will(returnValue(sc));
> + 
> mockReader.expects(once()).method("getElementText").withNoArguments()
> +
> +        .will((returnValue(target)));
> +
>         ServiceDefinition serviceDefinition =
>             loader.load(null, (XMLStreamReader) mockReader.proxy(), 
> deploymentContext);
>         assertNotNull(serviceDefinition);
>
> Modified: 
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl 
> (original)
> +++ 
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl 
> Thu Aug 10 18:59:40 2006
> @@ -17,9 +17,10 @@
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> 
> xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
>            name="boot1">
> -    <service name="service" target="component">
> +    <service name="service" >
>         <interface.java 
> interface="org.apache.tuscany.core.mock.component.BasicInterface"/>
>         <system:binding.system/>
> +        <reference>component</reference>
>     </service>
>
>     <component name="component">
>
> Modified: 
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
> URL: 
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl?rev=430621&r1=430620&r2=430621&view=diff
> ==============================================================================
> ---  
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl 
> (original)
> +++ 
> incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl 
> Thu Aug 10 18:59:40 2006
> @@ -23,9 +23,10 @@
>            name="boot2">
>
>     <!-- expose Deployer API as a service -->
> -    <service name="deployer" target="deployerImpl">
> +    <service name="deployer" >
>         <interface.java 
> interface="org.apache.tuscany.spi.deployer.Deployer"/>
>         <system:binding.system/>
> +        <reference>deployerImpl</reference>
>     </service>
>
>     <!-- Component that provides the Deployer service -->
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
>