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 browser. 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 - utility 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 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