summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/sca-java-2.0-M4/samples/dosgi-dynamic-calculator/README
blob: 04fc30c0be53c4db6a73e70e3228ee53a18931e6 (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
Distributed OSGi Calculator Sample
==================================
This sample implements a distributed calculator using Distributed OSGi (RFC 119) over SCA.

The README in the samples directory (the directory above this) provides
general instructions about building and running samples. Take a look there
first.

On Windows, run
java -jar ..\..\modules\osgi-3.5.0-v20090520.jar -configuration ..\..\features\configuration -clean -console

On *Unix, run
java -jar ../../modules/osgi-3.5.0-v20090520.jar -configuration ../../features/configuration -clean -console

You should see the osgi console:

osgi>

osgi> Jun 22, 2009 1:32:27 PM org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoveryActivator start
INFO: Equinox-based service discoverer is now configured.

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.jar
Bundle id is 198

osgi> start 198
Nov 4, 2009 5:20:21 PM calculator.dosgi.impl.CalculatorActivator start
INFO: Starting calculator.dosgi.dynamic_1.0.0 [198]
Nov 4, 2009 5:20:21 PM calculator.dosgi.impl.CalculatorActivator start
INFO: Registering calculator.dosgi.CalculatorService
Nov 4, 2009 5:20:21 PM org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: urn:osgi.service.d5a06834-ae15-42b3-9287-71fe6537c869 domai
n: tuscany.apache.org
log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX
Utils).
log4j:WARN Please initialize the log4j system properly.
Nov 4, 2009 5:20:24 PM org.mortbay.log.Slf4jLog info
INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mort
bay.log.Slf4jLog
Nov 4, 2009 5:20:25 PM org.apache.tuscany.sca.http.jetty.JettyLogger info
INFO: jetty-6.1.x
Nov 4, 2009 5:20:25 PM org.apache.tuscany.sca.http.jetty.JettyLogger info
INFO: Started SelectChannelConnector@0.0.0.0:8086
Nov 4, 2009 5:20:25 PM org.apache.tuscany.sca.http.jetty.JettyServer addServletM
apping
INFO: Added Servlet mapping: http://rfengt61p:8086/CalculatorService
Nov 4, 2009 5:20:25 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl addEndpoint
INFO: Add endpoint - (@23394516)Endpoint:  URI = osgi.service.d5a06834-ae15-42b3
-9287-71fe6537c869#service-binding(CalculatorService/Calculator)
Nov 4, 2009 5:20:25 PM calculator.dosgi.impl.CalculatorActivator getBundle
INFO: calculator.dosgi.operations.AddService is loaded by bundle: calculator.dos
gi.dynamic

You can point your browser to http://localhost:8086/CalculatorService?wsdl to see
the WSDL.

You can also use the WebService Explorer from Eclipse WTP to test the Web Service.

To stop the bundle:

osgi> stop 198
Nov 4, 2009 5:21:16 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.d5a06834-ae15-42b3-9287-71fe6537c869
Nov 4, 2009 5:21:16 PM org.apache.tuscany.sca.core.assembly.impl.EndpointRegistr
yImpl endpointRemoved
INFO: Remove endpoint - (@23394516)Endpoint:  URI = osgi.service.d5a06834-ae15-4
2b3-9287-71fe6537c869#service-binding(CalculatorService/Calculator)
Nov 4, 2009 5:21:16 PM org.apache.tuscany.sca.http.jetty.JettyServer removeServl
etMapping
INFO: Removed Servlet mapping: /CalculatorService
Nov 4, 2009 5:21:16 PM calculator.dosgi.impl.CalculatorActivator stop
INFO: Stopping calculator.dosgi.dynamic_1.0.0 [198]
Nov 4, 2009 5:21:16 PM org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: urn:osgi.service.d5a06834-ae15-42b3-9287-71fe6537c869

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/
  src/
    main/
      java/
        calculator/
            dosgi/
                CalculatorService.java  - The interface for Calculator service
                impl/
                    CalculatorActivator.java - OSGi bundle activator for Calculator bundle
                    CalculatorServiceDSImpl.java - OSGi declarative service based implementation
                    CalculatorServiceImpl.java - Basic OSGi implementation
                operations/
                    AddService.java - Interface for Add
                    SubtractService.java - Interface for Subtract
                    MultiplyService.java - Interface for Multiply
                    DivideService.java - Interface for Divide
                rmi/
                    OperationsRemote.java - RMI remote interface for operations
                    OperationsRMIServer_Stub.java - RMI stub
                    OperationsRMIServer.java - RMI server implementation of the operations
      resources/
            META-INF/
                sca-contribution.xml
            OSGI-INF/
                sca-config/
                    calculator-config.xml - The SCA configuration file for OSGi remote services
                remote-service/
                    calculator-service-descriptions.xml - The OSGi remote service endpoint descriptions    
  test/
    java/
        src/
            calculator/
                dosgi/
                    test/
                        CalculatorOSGiNodeTestCase.java - The JUNIT test case that tests this bundle against a RMI service

  META-INF/
    MANIFEST.MF - The OSGi manifest for this bundle
  dosig-calculator.png - a pictorial representation of the sample
  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-calculator
mvn