summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/samples/feed-aggregator/README
blob: 8094bbf0668232ae0cd10f898ff1be2c96e69955 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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 <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