diff options
Diffstat (limited to 'sca-java-2.x/contrib/samples')
11 files changed, 772 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/README b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/README new file mode 100644 index 0000000000..fc306caa34 --- /dev/null +++ b/sca-java-2.x/contrib/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/contrib/samples/getting-started/helloworld-ant/build.xml b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/build.xml new file mode 100644 index 0000000000..d4f0d44c32 --- /dev/null +++ b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/build.xml @@ -0,0 +1,41 @@ +<?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. +--> + +<!-- ====================================================================== --> +<!-- 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/contrib/samples/getting-started/helloworld-ant/maven-build.properties b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/maven-build.properties new file mode 100644 index 0000000000..ed8ceeb73b --- /dev/null +++ b/sca-java-2.x/contrib/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/contrib/samples/getting-started/helloworld-ant/maven-build.xml b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/maven-build.xml new file mode 100644 index 0000000000..167adeb465 --- /dev/null +++ b/sca-java-2.x/contrib/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'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/contrib/samples/getting-started/helloworld-ant/pom.xml b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/pom.xml new file mode 100644 index 0000000000..c3574087cd --- /dev/null +++ b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/pom.xml @@ -0,0 +1,93 @@ +<?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>
+
+ <!-- ASF repositories so sample can be built from SVN without building trunk-->
+ <repositories><repository>
+ <id>apache.snapshots</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://repository.apache.org/snapshots</url>
+ <releases><enabled>false</enabled></releases>
+ </repository></repositories>
+ <pluginRepositories><pluginRepository>
+ <id>apache.snapshots</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://repository.apache.org/snapshots</url>
+ <releases><enabled>false</enabled></releases>
+ </pluginRepository></pluginRepositories>
+
+ <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.sca</groupId>
+ <artifactId>tuscany-maven-plugin</artifactId>
+ <version>${tuscany.version}</version>
+ </plugin>
+ </plugins>
+
+ </build>
+
+</project>
diff --git a/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/src/main/java/sample/Helloworld.java b/sca-java-2.x/contrib/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/contrib/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/contrib/samples/getting-started/helloworld-ant/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/contrib/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/contrib/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/contrib/samples/getting-started/helloworld-ant/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/contrib/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/contrib/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/contrib/samples/getting-started/helloworld-ant/src/main/resources/helloworld.composite b/sca-java-2.x/contrib/samples/getting-started/helloworld-ant/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..e0206cd6e8 --- /dev/null +++ b/sca-java-2.x/contrib/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/contrib/samples/getting-started/helloworld-ant/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/contrib/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/contrib/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/contrib/samples/getting-started/helloworld-ant/src/test/java/sample/Main.java b/sca-java-2.x/contrib/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/contrib/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(); + } + } +} |