The Apache Tuscany SCA Samples
==============================
Welcome to the Apache Tuscany SCA Java runtime. You can find more general
documentation about the runtime at:
http://tuscany.apache.org/documentation-2x/
Here we give a short overview of what you can find in the samples directory.
More detail on the individual sample contributions can be found at:
http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html
There are several samples subdirectories in the distribution;
getting-started
===============
This is a good place to start if you've not tried Tuscany SCA Java before. This
directory contains a number of simple "SCA Contributions" that can be run using
the Tuscany SCA runtime. An SCA Contribution is the way that SCA composite
applications are packaged so they can be run. For general information on SCA
see http://tuscany.apache.org/documentation-2x/sca-introduction.html
learning-more
=============
This directory contains many more SCA Contributions that you can try with
the Tuscany SCA Java runtime. Some demonstrate particular features of the
runtime, or example, the contributions under the async directory demonstrate
the asynchronous programming model that the runtime supports.
SCA is extensible. You can plug in extensions to support many different types
of technology. The Tuscany SCA Java runtime comes with lots of extensions
and the majority of contributions here demonstrate these extensions. They are
organized under directories following the name of the extension, for example,
contributions that demonstrate the web services binding in operation can
be found in the binding-ws directory. When you want to use the web service
binding with an SCA service a reference it appears in the composite XML in
the following way:
Hence it should be easy to map between extensions, as they appear in
composite files and other samples that demonstrate various features of the
extension.
The contributions here can be run with using the approach that you find
most convenient from the running-tuscany directory.
running-tuscany
===============
The Tuscany SCA Java runtime can be used directly from the command line. It can
also be embedded in other programs. As such there are many different ways that
you can start the Tuscany SCA runtime and deploy contributions to it. Each
directory here describes a different way of running Tuscany. In most cases these
different approaches can be used to run any of the contributions from the
getting-started or learning-more directories.
applications
============
The contributions here demonstrate more fully formed applications when
compared to the contributions found the getting-started or learning-more
directories.
extending-tuscany
=================
Once you're familiar with Tuscany and SCA you're likely to find that to
implement you're application you need particular bindings, implementation
types, policies or databindings. The examples in this directory show you
how to extend the Tuscany runtime to include the technologies you need to use.
Running samples
---------------
Running a samples contribution involves 3 basic steps
1) build the contribution
Using ant, maven or eclipse (see below)
2) launch the contribution
Using one of the approaches described in the running-tuscany directory
3) send a test message to the a component service
When you want to exercise an SCA composite application you have to send a
message to a component service. There are several ways of doing this depending
on how the sample contribution has been configured. For example, you could
send a SOAP message using the Web Services explorer in Eclipse, you could
use a separate client program that uses the SCA client API, the sample
contribution itself may even include initialization code that sends a test
message when the contribution is started. The documentation for each sample
describes what to do to send a test message.
Building the sample contributions using Ant
--------------------------------------------
Most sample contributions are provided with a build.xml file. When you see one
you can build it using Ant.
These build.xml files are designed to work with the Tuscany SCA Java binary
distribution and build a classpath that, by various means, refers to the
jars that are shipped in the modules directory. For them to work properly
they should be run from the directory in which you find the build.xml file.
cd
ant
The result of this process will be the built contribution (a jar file) in the
target subdirectory of the sample contribution directory.
Once the sample is built you have the option of running the sample in whatever
way best suits you.
Building SCA Samples Using Maven
--------------------------------
All sample contributions are provided with a pom.xml Maven build file. The
Maven build process will work from both source and binary distributions.
cd
mvn
This will take a little while to complete. Experience with Maven tells us that
sometimes there are problems downloading the dependencies that Apache Tuscany
SCA requires. If Maven reports that it cannot download required dependencies
try running the Maven build again.
When using Maven the samples are unit tested using JUnit test cases and so you
will sometimes see test output during the build process.
The result of this process will be the built contribution (a jar file) in the
target subdirectory of the sample contribution directory.
Once the sample is built you have the option of running the sample in whatever
way best suits you.
Building Samples In An IDE
---------------------------
The easiest way to use the samples in an IDE is to use Maven to generate all
of the IDE project files for you automatically. You don't have to do this
though and can use a series of manual steps in order to import the Tuscany
samples into an IDE.
Both approaches to importing SCA contribution projects into Eclipse are
documented at:
http://tuscany.apache.org/import-existing-tuscany-sca-projects-into-eclipse.html