Merge r1000615 TUSCANY-3685: Add a test client that doesn't use JUnit and update the build.xml and README files

git-svn-id: https://svn.apache.org/repos/asf/tuscany/sca-java-1.x/trunk@1027086 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/samples/implementation-pojo-extension/README b/samples/implementation-pojo-extension/README
index 3b20177..9c11fa0 100644
--- a/samples/implementation-pojo-extension/README
+++ b/samples/implementation-pojo-extension/README
@@ -7,6 +7,28 @@
 general instructions about building and running samples. Take a look there 
 first. 
 
+If you just want to run it to see what happens, open a command prompt,
+navigate to this sample directory, and do
+
+ant run
+
+OR if you don't have ant, on Windows do
+
+java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-implementation-pojo-extension.jar;target\test-classes helloworld.HelloWorldTestClient
+
+and on *nix do
+
+java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-implementation-pojo-extension.jar:target/test-classes helloworld.HelloWorldTestClient
+
+This looks like a long command. The three things we add to the classpath are
+
+tuscany-sca-manifest.jar                 - all of the standard Tuscany SCA 
+                                           runtime and extension classes
+sample-implementation-pojo-extension.jar - the new POJO implementation
+                                           extension 
+target.test-classes                      - application code that uses the
+                                           POJO implementation  
+
 Sample Overview
 ---------------
 This sample contains a POJO implementation type as an example of how to create
@@ -26,6 +48,7 @@
       java/
         helloworld/
           HelloWorldTestCase.java - JUnit test case
+          HelloWorldTestClient.java - Test client with no JUnit dependency
       resources/
         helloworld.composite   - the SCA assembly used during unit testing
 
@@ -34,11 +57,22 @@
   
 Building The Sample Extension Using Ant
 -----------------------------------------
-With the binary distribution the sample extension can be built using Ant as 
-follows
+With the binary distribution the sample extension can be built and run
+using Ant as follows
 
 cd implementation-pojo-extension
 ant compile
+ant run
+
+You should see the following output from the run target.
+
+run:
+     [java] Initializing POJO
+     [java] Initializing POJO
+     [java] Executing POJO sayHello
+     [java] Executing POJO sayHello
+     [java] Destroying POJO
+     [java] Destroying POJO
 
 Building The Sample Using Maven 
 -------------------------------------------
diff --git a/samples/implementation-pojo-extension/build.xml b/samples/implementation-pojo-extension/build.xml
index 78bae79..9f4869c 100644
--- a/samples/implementation-pojo-extension/build.xml
+++ b/samples/implementation-pojo-extension/build.xml
@@ -17,10 +17,10 @@
  * under the License.    
 -->
 <project name="implementation-pojo-extension" default="compile">
-	<property name="test.jar"   value="sample-implementation-pojo-extension.jar" />
 	
     <target name="init">
         <mkdir dir="target/classes"/>
+        <mkdir dir="target/test-classes"/>
     </target>
 	
     <target name="compile" depends="init">
@@ -36,16 +36,38 @@
         <copy todir="target/classes">
             <fileset dir="src/main/resources"/>
         </copy>
-        <jar destfile="target/${test.jar}" basedir="target/classes">
-            <manifest>
-                <attribute name="Main-Class" value="${test.class}" /> 
-            </manifest>
-        </jar>    	
+        <javac srcdir="src/test/java"
+               destdir="target/test-classes"
+               excludes="**/*TestCase.java"
+               debug="on"
+               source="1.5"
+               target="1.5">
+            <classpath>
+                <pathelement location="target/classes"/>
+                <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
+            </classpath>
+        </javac> 
+        <copy todir="target/test-classes">
+            <fileset dir="src/test/resources"/>
+        </copy>
+        <jar destfile="target/sample-implementation-pojo-extension.jar" basedir="target/classes"/>
     </target>	
+
+    <target name="package" depends="compile"/>
+
+    <target name="run">
+        <java classname="helloworld.HelloWorldTestClient" fork="true">
+            <classpath>
+                <pathelement location="target/test-classes"/>
+                <pathelement location="target/sample-implementation-pojo-extension.jar"/>
+                <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
+            </classpath>
+            <jvmarg value="-ea"/>
+        </java>
+    </target>
 		
     <target name="clean">
-        <delete quiet="true" includeemptydirs="true">
-            <fileset dir="target"/>
-        </delete>
+        <delete dir="target" includeemptydirs="true"/>
     </target>
+
 </project>
diff --git a/samples/implementation-pojo-extension/src/test/java/helloworld/HelloWorldTestClient.java b/samples/implementation-pojo-extension/src/test/java/helloworld/HelloWorldTestClient.java
new file mode 100644
index 0000000..c157dad
--- /dev/null
+++ b/samples/implementation-pojo-extension/src/test/java/helloworld/HelloWorldTestClient.java
@@ -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 helloworld;

+

+import org.apache.tuscany.sca.host.embedded.SCADomain;

+

+/**

+ * Tests the POJO implementation extension.

+ */

+public class HelloWorldTestClient {

+    

+    public static void main(String[] args) throws Exception {

+

+        SCADomain scaDomain = SCADomain.newInstance("helloworld/helloworld.composite");

+

+        HelloWorld helloworld = scaDomain.getService(HelloWorld.class, "HelloWorldComponent");

+        assert "Hello petra".equals(helloworld.sayHello("petra"));

+

+        helloworld = scaDomain.getService(HelloWorld.class, "HelloWorldComponent2/HelloWorld2");

+        assert "Hello petra".equals(helloworld.sayHello("petra"));

+

+        scaDomain.close();

+    }

+}