eed639ccf7
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@722428 13f79535-47bb-0310-9956-ffa450edef68
110 lines
4.3 KiB
Text
110 lines
4.3 KiB
Text
Feed Aggregator Sample
|
|
======================================
|
|
This sample demonstrates using the Feed binding to aggregate ATOM and RSS
|
|
feeds and publish a new aggregated feed.
|
|
|
|
The README in the samples directory (the directory above this) provides
|
|
general instructions about building and running samples. Take a look there
|
|
first.
|
|
|
|
If you run the sample using ant, 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-feed-aggregator.jar launch.LaunchFeedServer
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-feed-aggregator.jar launch.LaunchFeedServer
|
|
|
|
You should see the following output on the screen.
|
|
|
|
run:
|
|
[java] Added Servlet mapping: http://localhost:8083/rssAggregator
|
|
[java] Added Servlet mapping: http://localhost:8083/atomAggregator/*
|
|
[java] Sample Feed server started (press enter to shutdown)
|
|
|
|
[java] To read the aggregated feeds, point your Web browser to the following addresses:
|
|
[java] http://localhost:8083/atomAggregator
|
|
[java] http://localhost:8083/atomAggregator/atomsvc (for the Atom service document)
|
|
[java] http://localhost:8083/rssAggregator
|
|
|
|
As this point the aggregated Feeds are exposed by a web server started
|
|
automatically by the SCA runtime. You can later stop the server by pressing enter.
|
|
|
|
Now that the server is started you can point your Web browser to each URL of the
|
|
aggregated feeds to see the information in your broswer. These URLs are:
|
|
|
|
http://localhost:8083/atomAggregator
|
|
http://localhost:8083/atomAggregator/atomsvc
|
|
http://localhost:8083/rssAggregator
|
|
|
|
** Please note that if your browser is not configured correctly to receive
|
|
feed information, you will be prompted to open each file that contains the feed
|
|
information in xml.
|
|
|
|
Sample Overview
|
|
---------------
|
|
The sample provides a single component exposing a Web resource.
|
|
|
|
web-resource/
|
|
src/
|
|
main/
|
|
java/
|
|
feed/
|
|
AggregatorImpl.java - implementation of the Feed
|
|
aggregator component
|
|
Sort.java - utilty interface
|
|
SortImpl.java - implementation of the Sort component
|
|
launch
|
|
LaunchFeedServer.java - starts the SCA Runtime and
|
|
publishes the aggregated feeds
|
|
resources/
|
|
FeedAggregator.composite - the SCA assembly for this sample
|
|
feed-aggregator.png - a pictorial representation of the
|
|
sample .composite file
|
|
build.xml - the Ant build file
|
|
pom.xml - the Maven build file
|
|
|
|
|
|
Details of how this sample works
|
|
--------------------------------
|
|
1. AggregatorImpl is used to implement the two main components here (RSSAggregator & AtomAggregator).
|
|
2. AggregatorImpl directly implements the Tuscany Atom Collection interface. It is a component
|
|
that provides an Atom feed to respond (see tuscany/modules/binding-atom-abdera)
|
|
3. The AggregatorImpl component is not explicitly configured using nested <service> element nor its
|
|
implementation class is annotated with @Service annotation. Instead, the Tuscany Atom Collection interface
|
|
defines its services using @Remotable annotation.
|
|
|
|
Building And Running The Sample Using Ant
|
|
-----------------------------------------
|
|
With the binary distribution the sample can be built and run using Ant using the
|
|
following commands
|
|
|
|
cd feed-aggregator
|
|
ant compile
|
|
ant run
|
|
|
|
You should see the following output from the run target.
|
|
|
|
run:
|
|
[java] Added Servlet mapping: http://localhost:8083/rssAggregator
|
|
[java] Added Servlet mapping: http://localhost:8083/atomAggregator/*
|
|
[java] Sample Feed server started (press enter to shutdown)
|
|
|
|
[java] To read the aggregated feeds, point your Web browser to the following addresses:
|
|
[java] http://localhost:8083/atomAggregator
|
|
[java] http://localhost:8083/atomAggregator/atomsvc (for the Atom service document)
|
|
[java] http://localhost:8083/rssAggregator
|
|
|
|
|
|
Building The Sample Using Maven
|
|
-------------------------------------------
|
|
With either the binary or source distributions the sample can be built using
|
|
Maven as follows.
|
|
|
|
cd feed-aggregator
|
|
mvn
|
|
|