You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/03/24 02:02:39 UTC

svn commit: r926891 - in /tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo: ./ src/ src/main/ src/main/java/ src/main/java/helloworld/ src/main/java/services/ src/main/java/services/bcircle/ src/main/resources/ src/main/resources/META-INF/ src/main...

Author: rfeng
Date: Wed Mar 24 01:02:38 2010
New Revision: 926891

URL: http://svn.apache.org/viewvc?rev=926891&view=rev
Log:
Port the sdo sample to 2.x

Added:
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/README
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/helloworld-ws-sdo.png   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java   (with props)
    tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java   (with props)

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar 24 01:02:38 2010
@@ -0,0 +1,21 @@
+target
+work
+dojo
+*.iws
+*.ipr
+*.iml
+derby.log
+maven.log
+maven-eclipse.xml
+build.xml
+build-dependency.xml
+velocity.log*
+junit*.properties
+pom.properties
+surefire*.properties
+.project
+.classpath
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/README
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/README?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/README (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/README Wed Mar 24 01:02:38 2010
@@ -0,0 +1,214 @@
+Hello World Web Service References using SDO Sample
+===================================================
+This sample demonstrates an SCA reference that uses a web service binding which works with SDO.  
+
+The README in the samples directory (the directory above this) provides 
+general instructions about building and running samples. Take a look there 
+first. 
+
+To run this sample
+------------------
+This sample is dependent on helloworld-ws-service. Open a command prompt to start
+the service. If you are running ant do the following:
+
+cd helloworld-ws-service
+ant run
+
+if you don't have ant, issue one of the following commands for windows or *nix:
+
+java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-service.jar helloworld.HelloWorldServer
+
+and on *nix do
+
+java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-service.jar helloworld.HelloWorldServer
+
+You should see the following output:
+
+Buildfile: build.xml
+
+run-server:
+     [java] log4j:WARN No appenders could be found for logger (org.apache.axiom.
+om.util.StAXUtils).
+     [java] log4j:WARN Please initialize the log4j system properly.
+     [java] Aug 24, 2007 11:17:33 AM org.apache.catalina.core.StandardEngine sta
+rt
+     [java] INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
+     [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.ContextConfig d
+efaultWebConfig
+     [java] INFO: No default web.xml
+     [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory
+ register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.
+xsd
+     [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory
+ register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
+aglibrary_1_1.dtd
+     [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory
+ register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
+aglibrary_1_2.dtd
+     [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory
+ register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
+aglibrary_2_0.xsd
+     [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory
+ register
+     [java] WARNING: Could not get url for /javax/servlet/resources/j2ee_web_ser
+vices_1_1.xsd
+     [java] Aug 24, 2007 11:17:34 AM org.apache.coyote.http11.Http11Protocol ini
+t
+     [java] INFO: Initializing Coyote HTTP/1.1 on http-8085
+     [java] Aug 24, 2007 11:17:34 AM org.apache.coyote.http11.Http11Protocol sta
+rt
+     [java] INFO: Starting Coyote HTTP/1.1 on http-8085
+     [java] Aug 24, 2007 11:17:34 AM org.apache.tuscany.sca.http.tomcat.TomcatSe
+rver addServletMapping
+     [java] INFO: Added Servlet mapping: http://localhost:8085/HelloWorldService
+
+     [java] HelloWorld server started (press enter to shutdown)
+
+The server is now ready.
+
+
+Now, open another command window to run the client.  
+
+cd helloworld-ws-sdo
+ant run
+
+OR if you don't have ant, on Windows do
+
+java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-sdo.jar helloworld.HelloWorldClient
+
+and on *nix do
+
+java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-sdo.jar helloworl.HelloWorldClient
+
+You should be able to see the following result:
+
+Buildfile: build.xml
+
+run:
+     [java] log4j:WARN No appenders could be found for logger (org.apache.axiom.
+om.util.StAXUtils).
+     [java] log4j:WARN Please initialize the log4j system properly.
+     [java] Injected helloWorldService
+     [java] Called getGreetings
+     [java] Hello David Haney
+
+BUILD SUCCESSFUL
+Total time: 9 seconds
+
+
+Sample Overview
+---------------
+The sample provides a single component that is wired to a reference with a 
+web service binding. The binding refers to WSDL that identifies the service
+exposed by the helloworld-ws-service sample. 
+
+helloworld-ws-sdo/
+  src/
+    main/
+      java/
+        helloworld/
+          HelloWorldService.java          - interface description for 
+                                            HelloWorldServiceComponent
+          HelloWorldServiceComponent.java - component implementation
+          HelloWorldClient.java           - starts the SCA Runtime and 
+                                            deploys the helloworldwsclient
+                                            .composite. It then calls the 
+                                            HelloWorldServiceComponent
+      resources/
+        wsdl
+          helloworld.wsdl                 - the service description that the 
+                                            SCA reference uses to bind to service. 
+      
+    test/
+      java/
+        helloworld/
+          HelloWorldClientTestCase.java   - JUnit test case
+        helloworld-ws-sdo.png             - a pictorial representation of the 
+                                            sample .composite file
+  build.xml                               - the Ant build file
+  pom.xml                                 - the Maven build file        
+
+Building And Running The Sample Using Ant
+-----------------------------------------
+You can build and run the sample with the binary distribution using Ant. 
+Make sure that you have started helloworld-ws-service which this sample is dependent on
+in a separate command window. You can either follow the instruction at the begining of this 
+sample file or if you want to build and run the service, follow the README under helloworld-ws-service.
+
+Now, let's build and run helloworld-ws-sdo sample:
+
+cd helloworld-ws-sdo                                             
+ant 
+ant run 
+
+You should see the following output from the run target.
+
+run:
+     [java] log4j:WARN No appenders could be found for logger (org.apache.axiom.
+om.util.StAXUtils).
+     [java] log4j:WARN Please initialize the log4j system properly.
+     [java] Injected helloWorldService
+     [java] Called getGreetings
+     [java] Hello World
+
+Building And Running The Sample Using Maven 
+-------------------------------------------
+You can build and run the sample with either the binary or source distributions using Maven. Please note that you do not need to start helloworld-ws-service in this case since Maven does this for you.
+
+cd helloworld-ws-sdo
+mvn
+
+You should see the following output from the test phase.
+
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running helloworld.HelloWorldClientTestCase
+log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX
+Utils).
+log4j:WARN Please initialize the log4j system properly.
+log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX
+Utils).
+log4j:WARN Please initialize the log4j system properly.
+Aug 23, 2007 2:27:32 PM org.apache.catalina.core.StandardEngine start
+INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
+Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.ContextConfig defaultWebConf
+ig
+INFO: No default web.xml
+Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register
+WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
+Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register
+WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_
+1.dtd
+Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register
+WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_
+2.dtd
+Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register
+WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_
+0.xsd
+Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register
+WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xs
+d
+Aug 23, 2007 2:27:32 PM org.apache.coyote.http11.Http11Protocol init
+INFO: Initializing Coyote HTTP/1.1 on http-8085
+Aug 23, 2007 2:27:32 PM org.apache.coyote.http11.Http11Protocol start
+INFO: Starting Coyote HTTP/1.1 on http-8085
+Aug 23, 2007 2:27:32 PM org.apache.tuscany.sca.http.tomcat.TomcatServer addServl
+etMapping
+INFO: Added Servlet mapping: http://localhost:8085/HelloWorldService
+Injected helloWorldService
+Called getGreetings
+Aug 23, 2007 2:27:34 PM org.apache.coyote.http11.Http11Protocol destroy
+INFO: Stopping Coyote HTTP/1.1 on http-8085
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.502 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+
+
+This shows that the Junit test cases have run successfully. 

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml Wed Mar 24 01:02:38 2010
@@ -0,0 +1,101 @@
+<!--
+ * 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.    
+-->
+<project name="helloworld-ws-sdo" default="compile" basedir=".">
+    <property file="${user.home}/tuscany/build.properties" />
+    <property file="${user.home}/build.properties" />
+
+    <property name="server.class" value="helloworld.HelloWorldServer" />    
+    <property name="client.class" value="helloworld.HelloWorldClient" />
+    <property name="test.jar"   value="sample-helloworld-ws-sdo.jar" />
+
+    <property name="tuscany.sca.manifest.location" value="../../lib/tuscany-sca-manifest.jar"/>
+
+    <target name="init">
+        <mkdir dir="target/classes"/>
+        <mkdir dir="target/sdo-source"/>
+    </target>
+        
+    <path id="project.classpath">
+        <pathelement path="target/classes"/>
+        <pathelement path="target/sdo-source"/>
+        <pathelement location="${tuscany.sca.manifest.location}"/>
+    </path>
+        
+    <target name="generate-sdo" depends="init">
+        <java classname="org.apache.tuscany.sdo.generate.XSD2JavaGenerator" fork="true">
+            <arg value="-targetDirectory"/>
+            <arg value="target/sdo-source"/>
+            <arg value="-javaPackage"/>
+            <arg value="helloworld"/>
+            <arg value="-prefix"/>
+            <arg value="Helloworld"/>
+            <arg value="-noNotification"/>
+            <arg value="-noContainment"/>
+            <arg value="-noUnsettable"/>
+            <arg value="src/main/resources/wsdl/helloworld.wsdl"/>
+
+            <classpath refid="project.classpath"/>
+        </java>
+    </target>
+
+    <target name="compile" depends="init, generate-sdo">
+        <javac destdir="target/classes"
+               debug="on"
+               source="1.5"
+               target="1.5">
+            <src location="src/main/java"/>
+            <src location="target/sdo-source"/>
+            <classpath refid="project.classpath"/>
+        </javac> 
+        <copy todir="target/classes">
+            <fileset dir="src/main/resources"/>
+            <fileset dir="target/sdo-source"/>
+        </copy>
+        <jar destfile="target/${test.jar}" basedir="target/classes">
+            <manifest>
+                <attribute name="Main-Class" value="${test.class}" /> 
+            </manifest>
+        </jar>    	
+    </target>	
+	
+    <target name="run-classes">
+        <java classname="${client.class}" fork="true">
+        <classpath refid="project.classpath"/>        </java>
+    </target>
+
+    <target name="run-server">
+        <java classname="${server.class}" fork="true">
+            <classpath path="target/${test.jar}"/>
+            <classpath refid="project.classpath"/>
+        </java>    	
+    </target>
+
+    <target name="run">
+        <java classname="${client.class}" fork="true">
+            <classpath path="target/${test.jar}"/>
+            <classpath refid="project.classpath"/>
+        </java>    	
+    </target>
+		
+    <target name="clean">
+        <delete quiet="true" includeemptydirs="true">
+            <fileset dir="target"/>
+        </delete>
+    </target>
+</project>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/build.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/helloworld-ws-sdo.png
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/helloworld-ws-sdo.png?rev=926891&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/helloworld-ws-sdo.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml Wed Mar 24 01:02:38 2010
@@ -0,0 +1,8 @@
+<project default="copy-resources">
+  <target name="init"/>
+  <target name="copy-resources" depends="init">
+    <copy todir="target/classes/META-INF" filtering="true">
+      <fileset dir="." includes="LICENSE|NOTICE" excludes="**/*.java"/>
+    </copy>
+  </target>
+</project>
\ No newline at end of file

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/maven-eclipse.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml Wed Mar 24 01:02:38 2010
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-sca</artifactId>
+        <version>2.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+    <artifactId>sample-helloworld-ws-sdo</artifactId>
+    <name>Apache Tuscany SCA Sample HelloWorld Web Service SDO</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-api</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-impl</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sdo</groupId>
+            <artifactId>tuscany-sdo-lib</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sdo</groupId>
+            <artifactId>tuscany-sdo-impl</artifactId>
+            <version>1.1.1</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>backport-util-concurrent</groupId>
+                    <artifactId>backport-util-concurrent</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>backport-util-concurrent</groupId>
+            <artifactId>backport-util-concurrent</artifactId>
+            <version>3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-databinding-sdo</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-jetty</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.5</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>1.0</version>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-test-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/sdo-source</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.tuscany.sdo</groupId>
+                <artifactId>tuscany-sdo-plugin</artifactId>
+                <version>1.1.1</version>
+                <executions>
+                    <execution>
+                        <id>generate-helloworld-sdo</id>
+                        <phase>generate-sources</phase>
+                        <configuration>
+                            <schemaFile>${basedir}/src/main/resources/wsdl/helloworld.wsdl</schemaFile>
+                            <javaPackage>helloworld</javaPackage>
+                            <prefix>Helloworld</prefix>
+                            <noNotification>true</noNotification>
+                            <noContainer>true</noContainer>
+                            <noUnsettable>true</noUnsettable>
+                        </configuration>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                    </execution>
+                   <execution>
+                        <id>generate-helloworld-sdo1</id>
+                        <phase>generate-sources</phase>
+                        <configuration>
+                            <schemaFile>${basedir}/src/main/resources/test.xsd</schemaFile>
+                            <javaPackage>model.sdo</javaPackage>
+                            <prefix>Entity</prefix>
+                            <noNotification>true</noNotification>
+                            <noContainer>true</noContainer>
+                            <noUnsettable>true</noUnsettable>
+                        </configuration>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,51 @@
+/*
+ * 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 helloworld;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+/**
+ * This client program shows how to create an SCA runtime, start it, locate the
+ * HelloWorld service and invoke it.
+ */
+public class HelloWorldClient {
+
+    public final static void main(String[] args) throws Exception {
+
+        NodeFactory factory = NodeFactory.newInstance();
+        String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldClient.class);
+        Node node =
+            factory.createNode("helloworldwsclient.composite", new Contribution("helloworld", contribution)).start();
+
+        HelloWorldService helloWorldService = node.getService(HelloWorldService.class, "HelloWorldServiceComponent");
+
+        Name name = HelloworldFactory.INSTANCE.createName();
+
+        name.setFirst("David");
+        name.setLast("Haney");
+
+        String value = helloWorldService.getGreetings(name);
+        System.out.println(value);
+
+        node.stop();
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,33 @@
+/*
+ * 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 helloworld;
+
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * This class implements the HelloWorld service.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldImpl implements HelloWorldService {
+
+    public String getGreetings(Name name) {
+        return "Hello " + name.getFirst() + " " + name.getLast();
+    }
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,51 @@
+/*
+ * 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 helloworld;
+
+import java.io.IOException;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+/**
+ * This server program shows how to create an SCA runtime, and start it which
+ * activates the helloworld Web service endpoint.
+ */
+public class HelloWorldServer {
+
+    public static void main(String[] args) {
+
+        NodeFactory factory = NodeFactory.newInstance();
+        String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldServer.class);
+        Node node = factory.createNode("helloworldws.composite", new Contribution("helloworld", contribution)).start();
+
+        try {
+            System.out.println("HelloWorld server started (press enter to shutdown)");
+            System.in.read();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        node.stop();
+        System.out.println("HelloWorld server stopped");
+    }
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,34 @@
+/*
+ * 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 helloworld;
+
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The interface for the helloworld service
+ */
+@Remotable
+public interface HelloWorldService {
+    @RequestWrapper(className="helloworld.getGreetings")
+    @ResponseWrapper(className="helloworld.getGreetingsResponse")
+    public String getGreetings(Name name);
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,42 @@
+/*
+ * 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 helloworld;
+
+/**
+ * The HelloWorld service implementation
+ */
+public class HelloWorldServiceComponent implements HelloWorldService {
+   
+    HelloWorldService helloWorldService;
+
+    public String getGreetings(Name name) {
+        System.out.println("Called getGreetings");
+        return helloWorldService.getGreetings(name);
+    }
+
+    public HelloWorldService getHelloWorldService() {
+        System.out.println("Got Injected helloWorldService");
+        return helloWorldService;
+    }
+
+    public void setHelloWorldService(HelloWorldService helloWorldService) {
+        System.out.println("Injected helloWorldService");        
+        this.helloWorldService = helloWorldService;
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,59 @@
+/*
+ * 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 services.bcircle;
+
+import model.sdo.EntityFactory;
+import model.sdo.Laboratory;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+public class BioTestCase {
+
+    /**
+     * @param args
+     */
+    public static void main(String[] args) {
+        BiochemicalCircle biochemicalCircl = new BiochemicalCircleImpl();
+        Laboratory lab2 = biochemicalCircl.getLaboratory("Lab2"); //This invocation without use SCA works ok.
+
+        NodeFactory factory = NodeFactory.newInstance();
+        String contribution = ContributionLocationHelper.getContributionLocation(BioTestCase.class);
+        Node node =
+            factory.createNode("resources/clinicalLaboratory.composite", new Contribution("clinical", contribution))
+                .start();
+
+        BiochemicalCircle biochemicalCircle = node.getService(BiochemicalCircle.class, "BiochemicalCircleComponent");
+
+        Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
+        lab.setName("lab2");
+        biochemicalCircle.setLaboratory(lab); // this invocation works ok too
+
+        lab = biochemicalCircle.getLaboratory("Lab2"); // here I have an exception posted below.
+
+        //here I wait a moment before close scaDomain
+        System.out.println(lab.getName());
+
+        node.stop();
+
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,29 @@
+/*
+ * 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 services.bcircle;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface BiochemicalCircle {
+    void setLaboratory(model.sdo.Laboratory lab);
+
+    model.sdo.Laboratory getLaboratory(String name);
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,40 @@
+/*
+ * 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 services.bcircle;
+import model.sdo.EntityFactory;
+import model.sdo.Laboratory;
+
+import org.oasisopen.sca.annotation.Service;
+
+
+@Service(BiochemicalCircle.class)
+public class BiochemicalCircleImpl implements BiochemicalCircle{
+   public Laboratory getLaboratory(String name) {
+
+      Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
+      lab.setName("Main Laboratory");
+      return lab;
+   }
+
+   public void setLaboratory(Laboratory lab) {
+      //sad method
+      System.out.println(lab.getName());
+   }
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml Wed Mar 24 01:02:38 2010
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+  xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+  
+  <tuscany:sdo.types namespace="http://helloworld" location="wsdl/helloworld.wsdl"/>
+  
+</contribution>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite Wed Mar 24 01:02:38 2010
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    * 
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    * 
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.    
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" targetNamespace="http://helloworld"
+    xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/1.1" xmlns:hw="http://helloworld"
+    name="helloworldws">
+    
+    <component name="HelloWorldServiceComponent">
+        <implementation.java class="helloworld.HelloWorldImpl" />
+            <service name="HelloWorldService">
+            <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+            <binding.ws uri="http://localhost:8085/HelloWorldService" />
+        </service>
+    </component>
+</composite>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldws.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite Wed Mar 24 01:02:38 2010
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    * 
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    * 
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.    
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" targetNamespace="http://helloworld"
+    xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/1.1" xmlns:hw="http://helloworld"
+    name="helloworldwsclient">
+
+    <component name="HelloWorldServiceComponent">
+        <implementation.java class="helloworld.HelloWorldServiceComponent" />
+        <reference name="helloWorldService">
+            <interface.java interface="helloworld.HelloWorldService" />
+            <binding.ws wsdlElement="http://helloworld#wsdl.port(HelloWorldService/HelloWorldSoapPort)" />
+        </reference>
+    </component>
+
+ 
+
+</composite>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties Wed Mar 24 01:02:38 2010
@@ -0,0 +1,30 @@
+# 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.    
+#
+#  $Rev$ $Date$
+#
+
+# Custom logging configuration for Tuscany samples
+# By default, only INFO level logging is enabled and ALL messages get sent to the console
+# For more messages from the runtime, uncomment specific settings at the end of this file
+handlers = java.util.logging.ConsoleHandler
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+.level=INFO
+
+# Uncomment the next setting to get all Tuscany messages (this will be a lot)
+#org.apache.tuscany.level=FINEST

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/logging.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite Wed Mar 24 01:02:38 2010
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<sca:composite xmlns:federation="http://eclipse.org/SCAExample1/src/resources/federation"
+    xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="clinicalLaboratory"
+    targetNamespace="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory">
+
+    <sca:component name="BiochemicalCircleComponent">
+        <sca:implementation.java class="services.bcircle.BiochemicalCircleImpl" />
+        <sca:service name="BiochemicalCircle">
+            <sca:interface.java interface="services.bcircle.BiochemicalCircle" />
+            <sca:binding.ws uri="http://localhost:8080/SCA1/MyServiceComponent" />
+        </sca:service>
+    </sca:component>
+    <!--
+    <sca:service name="BiochemicalCircle" promote="BiochemicalCircleComponent/BiochemicalCircle" />
+     -->
+</sca:composite>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd Wed Mar 24 01:02:38 2010
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory"
+    xmlns:tns="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory"
+    elementFormDefault="qualified">
+    <complexType name="Practice">
+        <sequence>
+            <element name="name" type="string" />
+        </sequence>
+    </complexType>
+    <complexType name="Laboratory">
+        <sequence>
+            <element name="name" type="string" />
+            <element name="practices" type="tns:Practice" maxOccurs="unbounded" />
+        </sequence>
+    </complexType>
+</schema>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/test.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl Wed Mar 24 01:02:38 2010
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    * 
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    * 
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.    
+-->
+<wsdl:definitions targetNamespace="http://helloworld" xmlns:tns="http://helloworld"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="helloworld">
+
+    <wsdl:types>
+        <schema elementFormDefault="qualified" targetNamespace="http://helloworld"
+            xmlns="http://www.w3.org/2001/XMLSchema">
+
+            <element name="getGreetings">
+                <complexType>
+                    <sequence>
+                        <element name="name" type="tns:Name" />
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="getGreetingsResponse">
+                <complexType>
+                    <sequence>
+                        <element name="getGreetingsReturn" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+
+            <complexType name="Name">
+                <sequence>
+                    <element name="first" type="xsd:string" />
+                    <element name="last" type="xsd:string" />
+                </sequence>
+            </complexType>
+
+        </schema>
+    </wsdl:types>
+
+    <wsdl:message name="getGreetingsRequest">
+        <wsdl:part element="tns:getGreetings" name="parameters" />
+    </wsdl:message>
+
+    <wsdl:message name="getGreetingsResponse">
+        <wsdl:part element="tns:getGreetingsResponse" name="parameters" />
+    </wsdl:message>
+
+    <wsdl:portType name="HelloWorld">
+        <wsdl:operation name="getGreetings">
+            <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest" />
+            <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse" />
+        </wsdl:operation>
+    </wsdl:portType>
+
+    <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
+        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="getGreetings">
+            <wsdlsoap:operation soapAction="" />
+            <wsdl:input name="getGreetingsRequest">
+                <wsdlsoap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output name="getGreetingsResponse">
+                <wsdlsoap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+    <wsdl:service name="HelloWorldService">
+        <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort">
+            <wsdlsoap:address location="http://localhost:8085/HelloWorldService" />
+        </wsdl:port>
+    </wsdl:service>
+
+</wsdl:definitions>

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,85 @@
+/*
+ * 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 helloworld;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test case for helloworld web service client 
+ */
+public class HelloWorldClientTestCase {
+
+    private HelloWorldService helloWorldService;
+    private static Node node;
+
+    private TestCaseRunner server;
+
+    @Before
+    public void startClient() throws Exception {
+        try {
+
+            NodeFactory factory = NodeFactory.newInstance();
+            String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldClient.class);
+            node =
+                factory.createNode("helloworldwsclient.composite", new Contribution("helloworld", contribution))
+                    .start();
+
+            helloWorldService = node.getService(HelloWorldService.class, "HelloWorldServiceComponent");
+
+            server = new TestCaseRunner(HelloWorldTestServer.class);
+            server.before();
+
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void testWSClient() throws Exception {
+        Name name = HelloworldFactory.INSTANCE.createName();
+        name.setFirst("John");
+        name.setLast("Smith");
+        String msg = helloWorldService.getGreetings(name);
+        Assert.assertEquals("Hello John Smith", msg);
+    }
+
+    @After
+    public void stopClient() throws Exception {
+        server.after();
+        node.stop();
+    }
+
+    public static void main(String[] args) throws Exception {
+        HelloWorldClientTestCase test = new HelloWorldClientTestCase();
+        test.startClient();
+        test.testWSClient();
+
+        System.in.read();
+    }
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,67 @@
+/*
+ * 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 helloworld;
+
+import java.io.IOException;
+import java.net.Socket;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Starts up the SCA runtime which starts listening for service requests
+ */
+public class HelloWorldTestServer {
+
+    private Node node;
+
+    @Before
+    public void startServer() throws Exception {
+        try {
+
+            NodeFactory factory = NodeFactory.newInstance();
+            String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldService.class);
+            node = factory.createNode("helloworldws.composite", new Contribution("helloworld", contribution)).start();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void testPing() throws IOException {
+        new Socket("127.0.0.1", 8085);
+    }
+
+    @After
+    public void stopServer() throws Exception {
+        node.stop();
+    }
+
+    public static void main(String[] args) throws Exception {
+
+        HelloWorldTestServer test = new HelloWorldTestServer();
+        test.startServer();
+    }
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java?rev=926891&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java Wed Mar 24 01:02:38 2010
@@ -0,0 +1,329 @@
+/*
+ * 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 helloworld;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * A helper class that can be used to run an SCA JUnit test case. The test case will run in an isolated class loader.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TestCaseRunner {
+
+    private ClassLoader classLoader;
+    private Class<?> testSuiteClass;
+    private Object testSuite;
+    private Class<?> testResultClass;
+    private Class<?> testCaseClass;
+    private Object testCase;
+
+    private Class<?> beforeAnnotation;
+    private Class<?> beforeClassAnnotation;
+    private Class<?> afterAnnotation;
+    private Class<?> afterClassAnnotation;
+    private Class<?> junit4AdapterClass;
+    private Class<?> junit3TestCaseClass;
+
+    /**
+     * Constructs a new TestCase runner.
+     *
+     * @param testClass
+     */
+    public TestCaseRunner(Class<?> testClass, String... isolatedClasses) {
+        try {
+            ClassLoader tccl = setupClassLoader(testClass, isolatedClasses);
+
+            try {
+                // Thread.currentThread().setContextClassLoader(classLoader);
+                // Allow privileged access to set class loader. Requires RuntimePermission
+                // setContextClassLoader in security policy.
+                final ClassLoader finalClassLoader = classLoader;
+                AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                    public Object run() {
+                        Thread.currentThread().setContextClassLoader(finalClassLoader);
+                        return null;
+                    }
+                });
+
+                testCaseClass = Class.forName(testClass.getName(), true, classLoader);
+                testCase = testCaseClass.newInstance();
+                ClassLoader testClassLoader = testCaseClass.getClassLoader();
+
+                junit3TestCaseClass = Class.forName("junit.framework.TestCase", true, testClassLoader);
+
+                testSuiteClass = Class.forName("junit.framework.TestSuite", true, testClassLoader);
+                Constructor<?> testSuiteConstructor = testSuiteClass.getConstructor(Class.class);
+                testSuite = testSuiteConstructor.newInstance(testCaseClass);
+
+                testResultClass = Class.forName("junit.framework.TestResult", true, testClassLoader);
+
+                try {
+                    beforeAnnotation = Class.forName("org.junit.Before", true, testClassLoader);
+                    afterAnnotation = Class.forName("org.junit.After", true, testClassLoader);
+                    beforeClassAnnotation = Class.forName("org.junit.BeforeClass", true, testClassLoader);
+                    afterClassAnnotation = Class.forName("org.junit.AfterClass", true, testClassLoader);
+                    junit4AdapterClass = Class.forName("junit.framework.JUnit4TestAdapter", true, testClassLoader);
+                } catch (Exception e) {
+                    // Unexpected
+                    throw new AssertionError(e);
+                }
+            } catch (Throwable e) {
+                e.printStackTrace();
+            } finally {
+                // Thread.currentThread().setContextClassLoader(tccl);
+                // Allow privileged access to set class loader. Requires RuntimePermission
+                // setContextClassLoader in security policy.
+                final ClassLoader finaltccl = tccl;
+                AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                    public Object run() {
+                        Thread.currentThread().setContextClassLoader(finaltccl);
+                        return null;
+                    }
+                });
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private ClassLoader setupClassLoader(Class<?> testClass, String... isolatedClasses) {
+        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+        classLoader = testClass.getClassLoader();
+        if (classLoader instanceof URLClassLoader) {
+            URL[] urls = ((URLClassLoader)classLoader).getURLs();
+            classLoader = new ClassLoaderImpl(urls, classLoader, isolatedClasses);
+        } else if (classLoader == tccl || classLoader.getParent() == tccl) {
+            classLoader = new URLClassLoader(new URL[0], classLoader);
+        } else {
+            classLoader = tccl;
+        }
+        return tccl;
+    }
+
+    /**
+     * Run the test case
+     */
+    public void run() {
+        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+        try {
+            // Thread.currentThread().setContextClassLoader(classLoader);
+            // Allow privileged access to set class loader. Requires RuntimePermission
+            // setContextClassLoader in security policy.
+            final ClassLoader finalClassLoader = classLoader;
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(finalClassLoader);
+                    return null;
+                }
+            });
+
+            if (junit3TestCaseClass.isAssignableFrom(testCaseClass)) {
+                Object testResult = testResultClass.newInstance();
+                Method runMethod = testSuiteClass.getMethod("run", testResultClass);
+                runMethod.invoke(testSuite, testResult);
+            } else {
+                Object junit4Adapter = junit4AdapterClass.getConstructor(Class.class).newInstance(testCaseClass);
+                Object testResult = testResultClass.newInstance();
+                Method runMethod = junit4AdapterClass.getMethod("run", testResultClass);
+                runMethod.invoke(junit4Adapter, testResult);
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            // Thread.currentThread().setContextClassLoader(tccl);
+            // Allow privileged access to set class loader. Requires RuntimePermission
+            // setContextClassLoader in security policy.
+            final ClassLoader finaltccl = tccl;
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(finaltccl);
+                    return null;
+                }
+            });
+        }
+    }
+
+    /**
+     * Invoke the setUp method
+     */
+    public void setUp() {
+        execute("setUp");
+    }
+
+    /**
+     * Invoke the before methods
+     */
+    public void before() {
+        execute(beforeAnnotation);
+    }
+
+    /**
+     * Invoke the beforeClass methods
+     */
+    public void beforeClass() {
+        execute(beforeClassAnnotation);
+    }
+
+    /**
+     * Invoke the tearDown method
+     */
+    public void tearDown() {
+        execute("tearDown");
+    }
+
+    /**
+     * Invoke the after methods
+     */
+    public void after() {
+        execute(afterAnnotation);
+    }
+
+    /**
+     * Invoke the afterClass methods
+     */
+    public void afterClass() {
+        execute(afterClassAnnotation);
+    }
+
+    /**
+     * Invoke the specified test method.
+     */
+    public void run(String methodName) {
+        execute(methodName);
+    }
+
+    /**
+     * Invoke the methods annotated with the specified annotation.
+     */
+    private void execute(Class<?> annotationClass) {
+        if (annotationClass == null) {
+            throw new RuntimeException(new NoSuchMethodException());
+        }
+        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+        try {
+            // Thread.currentThread().setContextClassLoader(classLoader);
+            // Allow privileged access to set class loader. Requires RuntimePermission
+            // setContextClassLoader in security policy.
+            final ClassLoader finalClassLoader = classLoader;
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(finalClassLoader);
+                    return null;
+                }
+            });
+
+            for (Method method : testCaseClass.getDeclaredMethods()) {
+                for (Annotation annotation : method.getAnnotations()) {
+                    if (annotation.annotationType() == annotationClass) {
+                        method.invoke(testCase);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            // Thread.currentThread().setContextClassLoader(tccl);
+            // Allow privileged access to set class loader. Requires RuntimePermission
+            // setContextClassLoader in security policy.
+            final ClassLoader finaltccl = tccl;
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(finaltccl);
+                    return null;
+                }
+            });
+        }
+    }
+
+    /**
+     * Invoke the specified method
+     */
+    private void execute(String methodName) {
+        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+        try {
+            // Thread.currentThread().setContextClassLoader(classLoader);
+            // Allow privileged access to set class loader. Requires RuntimePermission
+            // setContextClassLoader in security policy.
+            final ClassLoader finalClassLoader = classLoader;
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(finalClassLoader);
+                    return null;
+                }
+            });
+            Method setUpMethod = testCaseClass.getDeclaredMethod(methodName);
+            setUpMethod.setAccessible(true);
+            setUpMethod.invoke(testCase);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            // Thread.currentThread().setContextClassLoader(tccl);
+            // Allow privileged access to set class loader. Requires RuntimePermission
+            // setContextClassLoader in security policy.
+            final ClassLoader finaltccl = tccl;
+            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                public Object run() {
+                    Thread.currentThread().setContextClassLoader(finaltccl);
+                    return null;
+                }
+            });
+        }
+    }
+
+    public static class ClassLoaderImpl extends URLClassLoader {
+        private Set<String> isolatedClasses = new HashSet<String>();
+
+        /**
+         * @param urls
+         * @param parent
+         */
+        public ClassLoaderImpl(URL[] urls, ClassLoader parent, String... sharedClasses) {
+            super(urls, parent);
+            this.isolatedClasses.addAll(Arrays.asList(sharedClasses));
+        }
+
+        @Override
+        protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
+            if (!isolatedClasses.contains(name)) {
+                return super.loadClass(name, resolve);
+            } else {
+                Class<?> cls = findLoadedClass(name);
+                if (cls == null) {
+                    cls = findClass(name);
+                }
+                if (resolve) {
+                    resolveClass(cls);
+                }
+                return cls;
+            }
+        }
+
+    }
+
+}

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date