summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-04-11 10:20:16 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-04-11 10:20:16 +0000
commite83ed0e0dbd38e4fde383ca2897fb746d542cfc2 (patch)
treec6e0905162a45fba8095ea974e351247efd154b3 /sca-java-2.x
parenta6c13e185445b76346028325db1616c9f9687d19 (diff)
Add a version of the helloworld sample that has an Ant build
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1091009 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/README43
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/build.xml23
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.properties28
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.xml366
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/pom.xml79
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/Helloworld.java28
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/HelloworldImpl.java27
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/META-INF/sca-contribution.xml25
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/helloworld.composite29
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/HelloworldTestCase.java48
-rw-r--r--sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/Main.java44
11 files changed, 740 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/README b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/README
new file mode 100644
index 0000000000..fc306caa34
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/README
@@ -0,0 +1,43 @@
+Tuscany - Getting Started - Helloworld Sample
+---------------------------------------------
+
+This sample demonstrates a simple helloworld style SCA application and how to run that with Tuscany.
+
+See the README in the top-level samples folder for general information on the Tuscany samples.
+
+This project creates an SCA contribution with a deployable composite named helloworld.composite.
+The composite defines an SCA component, HelloworldComponent, which provides a Helloworld service,
+the component is implemented by a Java class.
+
+You can use the contribution by starting the composite in the Tuscany Shell. To do that run the
+following command in the helloworld folder:
+
+ mvn tuscany:run
+
+Alternatively, the Tuscany Shell can be started with the scripts in the Tuscany binary distribution
+bin folder. To do that run the following command at the root of a Tuscany binary distribution:
+
+ bin\tuscany.bat samples\getting-started\helloworld
+
+Once the Shell has been started with one of those methods you can use Shell commands to explore
+the SCA domain, for example, use the "installed" command to get the status of installed contributions,
+"services" to see the available component services, and you may test calling the helloworld service by
+using the "invoke" command:
+
+ invoke HelloworldComponent sayHello yourName
+
+---
+
+This sample was created by the Tuscany contribution-jar Maven archetype. You can use that archetype to
+create your own SCA contribution projects by running the following Maven command:
+
+ mvn archetype:generate -DarchetypeCatalog=http://tuscany.apache.org
+
+then at the prompt select 1 to choose the contribution-jar archetype and then answer the questions.
+This project used the following answers:
+
+ Define value for property 'groupId': : org.apache.tuscany.sca.samples
+ Define value for property 'artifactId': : helloworld-contribution
+ Define value for property 'version': 1.0-SNAPSHOT: 2.0-SNAPSHOT
+ Define value for property 'package': org.apache.tuscany.sca.samples: sample
+
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/build.xml b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/build.xml
new file mode 100644
index 0000000000..c9ec57da8c
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/build.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
+<!-- ====================================================================== -->
+
+<project name="helloworld" default="package" basedir=".">
+
+ <!-- ====================================================================== -->
+ <!-- Import maven-build.xml into the current project -->
+ <!-- ====================================================================== -->
+
+ <import file="maven-build.xml"/>
+
+ <!-- ====================================================================== -->
+ <!-- Help target -->
+ <!-- ====================================================================== -->
+
+ <target name="help">
+ <echo message="Please run: $ant -projecthelp"/>
+ </target>
+
+</project>
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.properties b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.properties
new file mode 100644
index 0000000000..ed8ceeb73b
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.properties
@@ -0,0 +1,28 @@
+#Generated by Maven Ant Plugin - DO NOT EDIT THIS FILE!
+#Sun Apr 10 08:39:39 BST 2011
+maven.settings.offline=true
+maven.build.finalName=helloworld-ant-2.0-SNAPSHOT
+maven.build.resourceDir.1=.
+maven.build.resourceDir.0=src/main/resources
+maven.build.testOutputDir=${maven.build.dir}/test-classes
+maven.build.testResourceDir.0=src/test/resources
+maven.reporting.outputDirectory=${maven.build.dir}/site
+project.build.sourceEncoding=UTF-8
+distMgmtSnapshotsUrl=https\://repository.apache.org/content/repositories/snapshots
+maven.build.srcDir.0=src/main/java
+project.build.directory=${maven.build.dir}
+dojo.version=1.5.0
+maven.test.reports=${maven.build.dir}/test-reports
+maven.build.dir=target
+tuscany.version=2.0-SNAPSHOT
+project.build.outputDirectory=${maven.build.outputDir}
+project.reporting.outputEncoding=UTF-8
+organization.logo=http\://www.apache.org/images/asf_logo_wide.gif
+maven.build.testDir.0=src/test/java
+maven.settings.interactiveMode=true
+tools.jar=C\:\\Java\\jdk1.6.0_21\\jre/../lib/tools.jar
+notice.dir=.
+sourceReleaseAssemblyDescriptor=source-release
+maven.repo.local=${user.home}/.m2/repository
+distMgmtSnapshotsName=Apache Development Snapshot Repository
+maven.build.outputDir=${maven.build.dir}/classes
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.xml b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.xml
new file mode 100644
index 0000000000..167adeb465
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/maven-build.xml
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
+<!-- ====================================================================== -->
+
+<!-- ====================================================================== -->
+<!-- ===================== - DO NOT EDIT THIS FILE! - ===================== -->
+<!-- ====================================================================== -->
+<!-- -->
+<!-- Any modifications will be overwritten. -->
+<!-- -->
+<!-- Generated by Maven Ant Plugin on 4/10/11 8:39 AM -->
+<!-- See: http://maven.apache.org/plugins/maven-ant-plugin/ -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<project name="helloworld-ant-from-maven" default="package" basedir=".">
+
+ <!-- ====================================================================== -->
+ <!-- Build environment properties -->
+ <!-- ====================================================================== -->
+
+ <property file="${user.home}/.m2/maven.properties"/>
+ <property file="maven-build.properties"/>
+
+ <property name="maven.build.finalName" value="helloworld-ant-2.0-SNAPSHOT"/>
+ <property name="maven.build.dir" value="target"/>
+ <property name="maven.build.outputDir" value="${maven.build.dir}/classes"/>
+ <property name="maven.build.srcDir.0" value="src/main/java"/>
+ <property name="maven.build.resourceDir.0" value="src/main/resources"/>
+ <property name="maven.build.resourceDir.1" value="."/>
+ <property name="maven.build.testOutputDir" value="${maven.build.dir}/test-classes"/>
+ <property name="maven.build.testDir.0" value="src/test/java"/>
+ <property name="maven.build.testResourceDir.0" value="src/test/resources"/>
+ <property name="maven.test.reports" value="${maven.build.dir}/test-reports"/>
+ <property name="maven.reporting.outputDirectory" value="${maven.build.dir}/site"/>
+
+ <property name="maven.repo.local" value="${user.home}/.m2/repository"/>
+ <property name="maven.settings.offline" value="true"/>
+ <property name="maven.settings.interactiveMode" value="true"/>
+
+ <!-- ====================================================================== -->
+ <!-- Defining classpaths -->
+ <!-- ====================================================================== -->
+
+ <path id="build.classpath">
+ <pathelement location="${maven.repo.local}/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"/>
+ </path>
+ <path id="build.test.classpath">
+ <pathelement location="${maven.repo.local}/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"/>
+ <pathelement location="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar"/>
+ <pathelement location="${maven.repo.local}/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"/>
+ <pathelement location="${maven.repo.local}/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"/>
+ <pathelement location="${maven.repo.local}/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"/>
+ <pathelement location="${maven.repo.local}/cglib/cglib/2.2/cglib-2.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm/3.1/asm-3.1.jar"/>
+ </path>
+
+ <!-- ====================================================================== -->
+ <!-- Cleaning up target -->
+ <!-- ====================================================================== -->
+
+ <target name="clean" description="Clean the output directory">
+ <delete dir="${maven.build.dir}"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile" depends="get-deps" description="Compile the code">
+ <mkdir dir="${maven.build.outputDir}"/>
+ <javac destdir="${maven.build.outputDir}"
+ encoding="UTF-8"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.6"
+ verbose="false"
+ fork="true"
+ memoryMaximumSize="512m"
+ memoryInitialSize="1024m"
+ source="1.6">
+ <src>
+ <pathelement location="${maven.build.srcDir.0}"/>
+ </src>
+ <classpath refid="build.classpath"/>
+ </javac>
+ <copy todir="${maven.build.outputDir}">
+ <fileset dir="${maven.build.resourceDir.0}"/>
+ </copy>
+ <copy todir="${maven.build.outputDir}">
+ <fileset dir="${maven.build.resourceDir.1}">
+ <include name="LICENSE"/>
+ <include name="NOTICE"/>
+ <include name="README"/>
+ <include name="META-INF/**/*"/>
+ <include name="OSGI-INF/**/*"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Test-compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile-tests"
+ depends="compile"
+ description="Compile the test code"
+ unless="maven.test.skip">
+ <mkdir dir="${maven.build.testOutputDir}"/>
+ <javac destdir="${maven.build.testOutputDir}"
+ encoding="UTF-8"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.6"
+ verbose="false"
+ fork="true"
+ memoryMaximumSize="512m"
+ memoryInitialSize="1024m"
+ source="1.6">
+ <src>
+ <pathelement location="${maven.build.testDir.0}"/>
+ </src>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ </classpath>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Run all tests -->
+ <!-- ====================================================================== -->
+
+ <target name="test"
+ depends="compile-tests, junit-missing"
+ unless="junit.skipped"
+ description="Run the test cases">
+ <mkdir dir="${maven.test.reports}"/>
+ <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
+ <sysproperty key="basedir" value="."/>
+ <formatter type="xml"/>
+ <formatter type="plain" usefile="false"/>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ <pathelement location="${maven.build.testOutputDir}"/>
+ </classpath>
+ <batchtest todir="${maven.test.reports}" unless="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/*TestCase.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ <batchtest todir="${maven.test.reports}" if="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/${test}.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="test-junit-present">
+ <available classname="junit.framework.Test" property="junit.present"/>
+ </target>
+
+ <target name="test-junit-status"
+ depends="test-junit-present">
+ <condition property="junit.missing">
+ <and>
+ <isfalse value="${junit.present}"/>
+ <isfalse value="${maven.test.skip}"/>
+ </and>
+ </condition>
+ <condition property="junit.skipped">
+ <or>
+ <isfalse value="${junit.present}"/>
+ <istrue value="${maven.test.skip}"/>
+ </or>
+ </condition>
+ </target>
+
+ <target name="junit-missing"
+ depends="test-junit-status"
+ if="junit.missing">
+ <echo>=================================== WARNING ===================================</echo>
+ <echo> JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.</echo>
+ <echo>===============================================================================</echo>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Javadoc target -->
+ <!-- ====================================================================== -->
+
+ <target name="javadoc" description="Generates the Javadoc of the application">
+ <javadoc sourcepath="${maven.build.srcDir.0}"
+ packagenames="*"
+ destdir="${maven.reporting.outputDirectory}/apidocs"
+ access="protected"
+ old="false"
+ verbose="false"
+ version="true"
+ use="true"
+ author="true"
+ splitindex="false"
+ nodeprecated="false"
+ nodeprecatedlist="false"
+ notree="false"
+ noindex="false"
+ nohelp="false"
+ nonavbar="false"
+ serialwarn="false"
+ charset="ISO-8859-1"
+ linksource="false"
+ breakiterator="false"
+ maxmemory="1024m">
+ <group title="Extension Developer&apos;s SPIs (Work in Progress)"/>
+ <tag name="tuscany.spi.extension.inheritfrom"
+ scope="t"
+ description="Provides part of the Tuscany SPI for Extension Developers by specialization of this class/interface"/>
+ <tag name="tuscany.spi.extension.asclient"
+ scope="t"
+ description="Provides part of the Tuscany SPI for Extension Developers by calling methods on this interface/class."/>
+ <tag name="tuscany.spi.extension"
+ scope="a"
+ description="Elements of the Tuscany SPI for Extension developers are provided."/>
+ </javadoc>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Package target -->
+ <!-- ====================================================================== -->
+
+ <target name="package" depends="compile,test" description="Package the application">
+ <jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar"
+ compress="true"
+ index="false"
+ basedir="${maven.build.outputDir}"
+ excludes="**/package.html">
+ <manifest>
+ <attribute name="Main-Class"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- A dummy target for the package named after the type it creates -->
+ <!-- ====================================================================== -->
+
+ <target name="jar" depends="package" description="Builds the jar for the application"/>
+
+ <!-- ====================================================================== -->
+ <!-- Download dependencies target -->
+ <!-- ====================================================================== -->
+
+ <target name="test-offline">
+ <condition property="maven.mode.offline">
+ <equals arg1="${maven.settings.offline}" arg2="true"/>
+ </condition>
+ </target>
+
+ <target name="get-deps"
+ depends="test-offline"
+ description="Download all dependencies"
+ unless="maven.mode.offline">
+ <mkdir dir="${maven.repo.local}"/>
+ <mkdir dir="${maven.repo.local}/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"
+ dest="${maven.repo.local}/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"
+ dest="${maven.repo.local}/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"
+ dest="${maven.repo.local}/org/apache/tuscany/sca/tuscany-sca-api/2.0-SNAPSHOT/tuscany-sca-api-2.0-SNAPSHOT.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/junit/junit/4.8.1"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/junit/junit/4.8.1/junit-4.8.1.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/junit/junit/4.8.1/junit-4.8.1.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/junit/junit/4.8.1/junit-4.8.1.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.1/junit-4.8.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"
+ dest="${maven.repo.local}/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"
+ dest="${maven.repo.local}/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"
+ dest="${maven.repo.local}/org/apache/tuscany/sca/tuscany-base-runtime/2.0-SNAPSHOT/tuscany-base-runtime-2.0-SNAPSHOT.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/org/apache/ws/commons/schema/XmlSchema/1.4.3"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"
+ dest="${maven.repo.local}/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"
+ dest="${maven.repo.local}/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"
+ dest="${maven.repo.local}/org/apache/ws/commons/schema/XmlSchema/1.4.3/XmlSchema-1.4.3.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/wsdl4j/wsdl4j/1.6.2"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"
+ dest="${maven.repo.local}/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"
+ dest="${maven.repo.local}/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"
+ dest="${maven.repo.local}/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/cglib/cglib/2.2"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/cglib/cglib/2.2/cglib-2.2.jar"
+ dest="${maven.repo.local}/cglib/cglib/2.2/cglib-2.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/cglib/cglib/2.2/cglib-2.2.jar"
+ dest="${maven.repo.local}/cglib/cglib/2.2/cglib-2.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/cglib/cglib/2.2/cglib-2.2.jar"
+ dest="${maven.repo.local}/cglib/cglib/2.2/cglib-2.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/asm/asm/3.1"/>
+ <get src="http://svn.apache.org/repos/asf/tuscany/maven/asm/asm/3.1/asm-3.1.jar"
+ dest="${maven.repo.local}/asm/asm/3.1/asm-3.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.apache.org/snapshots/asm/asm/3.1/asm-3.1.jar"
+ dest="${maven.repo.local}/asm/asm/3.1/asm-3.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/asm/asm/3.1/asm-3.1.jar"
+ dest="${maven.repo.local}/asm/asm/3.1/asm-3.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ </target>
+
+</project>
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/pom.xml b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/pom.xml
new file mode 100644
index 0000000000..24bcd2b110
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/pom.xml
@@ -0,0 +1,79 @@
+<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.tuscany.sca.samples</groupId>
+ <artifactId>tuscany-samples</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <artifactId>helloworld-ant</artifactId>
+ <version>2.0-SNAPSHOT</version>
+
+ <name>Apache Tuscany SCA Samples Helloworld Using Ant build</name>
+
+ <properties>
+ <tuscany.version>${project.version}</tuscany.version>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-sca-api</artifactId>
+ <version>${tuscany.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime</artifactId>
+ <version>${tuscany.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+
+ <plugins>
+
+ <!-- to support running the composite with mvn tuscany:run -->
+ <plugin>
+ <groupId>org.apache.tuscany.maven.plugins</groupId>
+ <artifactId>maven-tuscany-plugin</artifactId>
+ <version>${tuscany.version}</version>
+ </plugin>
+ </plugins>
+
+ </build>
+
+</project>
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/Helloworld.java b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/Helloworld.java
new file mode 100644
index 0000000000..f4e8c50448
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/Helloworld.java
@@ -0,0 +1,28 @@
+/*
+ * 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 sample;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface Helloworld {
+
+ String sayHello(String name);
+
+}
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/HelloworldImpl.java
new file mode 100644
index 0000000000..089b1a4290
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/java/sample/HelloworldImpl.java
@@ -0,0 +1,27 @@
+/*
+ * 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 sample;
+
+public class HelloworldImpl implements Helloworld {
+
+ public String sayHello(String name) {
+ return "Hello " + name;
+ }
+
+}
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/META-INF/sca-contribution.xml
new file mode 100644
index 0000000000..95c32fb5bf
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/META-INF/sca-contribution.xml
@@ -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:sample="http://sample">
+
+ <deployable composite="sample:helloworld-contribution" />
+
+</contribution>
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/helloworld.composite b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/helloworld.composite
new file mode 100644
index 0000000000..e0206cd6e8
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/main/resources/helloworld.composite
@@ -0,0 +1,29 @@
+<?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"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ targetNamespace="http://sample"
+ name="helloworld-contribution">
+
+ <component name="HelloworldComponent">
+ <implementation.java class="sample.HelloworldImpl"/>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/HelloworldTestCase.java
new file mode 100644
index 0000000000..be27aa68ef
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/HelloworldTestCase.java
@@ -0,0 +1,48 @@
+/*
+ * 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 sample;
+
+import org.junit.Assert;
+
+import org.apache.tuscany.sca.Node;
+import org.apache.tuscany.sca.TuscanyRuntime;
+import org.junit.Test;
+import org.oasisopen.sca.NoSuchServiceException;
+
+public class HelloworldTestCase {
+
+ @Test
+ public void testSayHello() throws NoSuchServiceException {
+
+ // Run the SCA composite in a Tuscany runtime
+ Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes");
+ try {
+
+ // Get the Helloworld service proxy
+ Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent");
+
+ // test that it works as expected
+ Assert.assertEquals("Hello Amelia", helloworld.sayHello("Amelia"));
+
+ } finally {
+ // Stop the Tuscany runtime Node
+ node.stop();
+ }
+ }
+}
diff --git a/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/Main.java b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/Main.java
new file mode 100644
index 0000000000..fe9fedbd45
--- /dev/null
+++ b/sca-java-2.x/trunk/samples/getting-started/helloworld-ant/src/test/java/sample/Main.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package sample;
+
+import org.apache.tuscany.sca.Node;
+import org.apache.tuscany.sca.TuscanyRuntime;
+import org.oasisopen.sca.NoSuchServiceException;
+
+public class Main {
+
+ public static void main(String[] args) throws NoSuchServiceException {
+
+ // Run the SCA composite in a Tuscany runtime
+ Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes");
+ try {
+
+ // Get the Helloworld service proxy
+ Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent");
+
+ // Call the sayHello method
+ System.out.println(helloworld.sayHello(args.length>0 ? args[0]: "World"));
+
+ } finally {
+ // Stop the Tuscany runtime Node
+ node.stop();
+ }
+ }
+}