summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/2.0-Beta1/samples/learning-more/distributed-osgi/dosgi-dynamic-calculator-operations/README
blob: 9cd41b0fe57f7c9a9df5c0c2438a0f60d5d71d45 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
Distributed OSGi Calculator Sample
==================================
This sample implements a distributed calculator using Distributed OSGi (RFC 119) over SCA.

The README in the <distribution-unpack-dir>/samples directory provides 
general instructions about building and running samples. (where
distribution-unpack-dir is the directory in which you unpacked the tuscany
binary distribution archive). Take a look there first (noting at you read it that this sample
is not a new style sample). 

On Windows, run
java -jar ..\..\modules\osgi-3.5.0-v20090520.jar -configuration ..\..\features\configuration -clean -console -Dorg.osgi.sca.domain.registry=tribes:default

On *Unix, run
java -jar ../../modules/osgi-3.5.0-v20090520.jar -configuration ../../features/configuration -clean -console -Dorg.osgi.sca.domain.registry=tribes:default

You should see the osgi console:

osgi>

You can run "ss" command under the osgi> to see the status of the bundles.
osgi> ss

Then you can install and start the calculator.dosgi bundle:

osgi> install file:./target/sample-dosgi-dynamic-calculator-operations.jar
Bundle id is 198

osgi> start 198
Nov 4, 2009 5:16:51 PM calculator.dosgi.operations.impl.OperationsActivator star
t
INFO: Starting calculator.dosgi.dynamic.operations_1.0.0 [198]
Nov 4, 2009 5:16:51 PM calculator.dosgi.operations.impl.OperationsActivator star
t
INFO: Registering calculator.dosgi.operations.AddService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: urn:osgi.service.d3cadb93-e9b9-4486-87eb-07ece11888f6 domai
n: tuscany.apache.org
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerSe
rvice
INFO: RMI service registered: rmi://localhost:8085/AddService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl addEndpoint
INFO: Add endpoint - (@8144744)Endpoint:  URI = osgi.service.d3cadb93-e9b9-4486-
87eb-07ece11888f6#service-binding(AddService/Add)
Nov 4, 2009 5:16:51 PM calculator.dosgi.operations.impl.OperationsActivator star
t
INFO: Registering calculator.dosgi.operations.SubtractService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: urn:osgi.service.b6259ccc-6ae4-41f0-b61b-c5a8c7f42b35 domai
n: tuscany.apache.org
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerSe
rvice
INFO: RMI service registered: rmi://localhost:8085/SubtractService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl addEndpoint
INFO: Add endpoint - (@30229114)Endpoint:  URI = osgi.service.b6259ccc-6ae4-41f0
-b61b-c5a8c7f42b35#service-binding(SubtractService/Subtract)
Nov 4, 2009 5:16:51 PM calculator.dosgi.operations.impl.OperationsActivator star
t
INFO: Registering calculator.dosgi.operations.MultiplyService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: urn:osgi.service.8469c64c-9a28-47b3-bc4a-c5fa8d471057 domai
n: tuscany.apache.org
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerSe
rvice
INFO: RMI service registered: rmi://localhost:8085/MultiplyService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl addEndpoint
INFO: Add endpoint - (@3312704)Endpoint:  URI = osgi.service.8469c64c-9a28-47b3-
bc4a-c5fa8d471057#service-binding(MultiplyService/Multiply)
Nov 4, 2009 5:16:51 PM calculator.dosgi.operations.impl.OperationsActivator star
t
INFO: Registering calculator.dosgi.operations.DivideService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: urn:osgi.service.b43555f0-9509-444e-b22a-06d347ab7e98 domai
n: tuscany.apache.org
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerSe
rvice
INFO: RMI service registered: rmi://localhost:8085/DivideService
Nov 4, 2009 5:16:51 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl addEndpoint
INFO: Add endpoint - (@8010288)Endpoint:  URI = osgi.service.b43555f0-9509-444e-
b22a-06d347ab7e98#service-binding(DivideService/Divide)
Nov 4, 2009 5:16:51 PM calculator.dosgi.operations.impl.OperationsActivator getB
undle
INFO: calculator.dosgi.operations.AddService is loaded by bundle: calculator.dos
gi.dynamic.operations

osgi>

To stop the bundle:

osgi> stop 198
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.b43555f0-9509-444e-b22a-06d347ab7e98
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl endpointRemoved
INFO: Remove endpoint - (@8010288)Endpoint:  URI = osgi.service.b43555f0-9509-44
4e-b22a-06d347ab7e98#service-binding(DivideService/Divide)
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregister
Service
INFO: RMI service unregistered: rmi://localhost:8085/DivideService
Nov 4, 2009 5:18:43 PM calculator.dosgi.operations.impl.OperationsActivator stop

INFO: Stopping calculator.dosgi.dynamic.operations_1.0.0 [198]
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.d3cadb93-e9b9-4486-87eb-07ece11888f6
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl endpointRemoved
INFO: Remove endpoint - (@8144744)Endpoint:  URI = osgi.service.d3cadb93-e9b9-44
86-87eb-07ece11888f6#service-binding(AddService/Add)
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregister
Service
INFO: RMI service unregistered: rmi://localhost:8085/AddService
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.b6259ccc-6ae4-41f0-b61b-c5a8c7f42b35
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl endpointRemoved
INFO: Remove endpoint - (@30229114)Endpoint:  URI = osgi.service.b6259ccc-6ae4-4
1f0-b61b-c5a8c7f42b35#service-binding(SubtractService/Subtract)
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregister
Service
INFO: RMI service unregistered: rmi://localhost:8085/SubtractService
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.8469c64c-9a28-47b3-bc4a-c5fa8d471057
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl endpointRemoved
INFO: Remove endpoint - (@3312704)Endpoint:  URI = osgi.service.8469c64c-9a28-47
b3-bc4a-c5fa8d471057#service-binding(MultiplyService/Multiply)
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregister
Service
INFO: RMI service unregistered: rmi://localhost:8085/MultiplyService
Nov 4, 2009 5:18:43 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.b43555f0-9509-444e-b22a-06d347ab7e98

osgi>

To exit the console, run:
osgi> exit

Sample Overview
---------------
The application consists of two OSGi bundles:
 * The calculator bundle: It provides the calculator service. The service is implemented by a java class that
   consumes other services to perform the �add�, �subtract�, �multiply� and �divide� operations.
 * The operations bundle: It provides the add/subtract/multiply/divide services.
   (See ../samples/dosgi-dynamic-calculator-operations)


dosgi-dynamic-calculator-operations/
  src/
    main/
      java/
        calculator/
            dosgi/
                operations/
                    AddService.java - Interface for Add
                    SubtractService.java - Interface for Subtract
                    MultiplyService.java - Interface for Multiply
                    DivideService.java - Interface for Divide
                    impl/
                        OperationsActivator.java - OSGi bundle activator
                        AddServiceImpl.java - Implementation for Add
                        SubtractServiceImpl.java - Implementation for Subtract
                        MultiplyServiceImpl.java - Implementation for Multiply
                        DivideServiceImpl.java - Implementation for Divide
      resources/
            META-INF/
                sca-contribution.xml
           OSGI-INF/
                sca-config/
                    operations-config.xml - The SCA configuration file for OSGi remote services
  test/
    java/
        src/
            calculator/
                dosgi/
                    operations/
                        test/
                            OperationsOSGiNodeTestCase.java - The JUNIT test case that tests this bundle using a RMI client

  META-INF/
    MANIFEST.MF - The OSGi manifest for this bundle
  pom.xml                         - the Maven build file



Building And Running The Test Case Using Maven
-------------------------------------------
With either the binary or source distributions the sample can be built and run
using Maven as follows.

cd dosgi-dynamic-calculator-operations
mvn