confusing Declarative service! [message #74325] |
Tue, 10 October 2006 07:44  |
Eclipse User |
|
|
|
Originally posted by: lixinhui.cn.ibm.com
------=_Part_1236_25208982.1160481353844
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hi,
To study OSGI declarative serivce, I write an example consisting of Service provider and client to use the service. I has already download the org.eclipse.equinox.ds and start it. But no right result can be gotten. And can not find related service is registed by console command!
I attached the related jars and please help to find problems caused by my false understanding of DS specificetion.
appreciate your help!
dsexample provide a service named "NameService" which check a String wehter it is among the name sets predefined;
dsexampleclient is a client application to use above service to check the String from input end.
------=_Part_1236_25208982.1160481353844
Content-Type: application/octet-stream; name=dsexample_1.0.0.jar
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=dsexample_1.0.0.jar
UEsDBAoAAAAAAJycSjUAAAAAAAAAAAAAAAAJAAAATUVUQS1JTkYvUEsDBAoA AAAAAJycSjUAAAAA
AAAAAAAAAAADAAAAZHMvUEsDBAoAAAAAAJycSjUAAAAAAAAAAAAAAAALAAAA ZHMvZXhhbXBsZS9Q
SwMECgAAAAAAnJxKNQAAAAAAAAAAAAAAABAAAABkcy9leGFtcGxlL29zZ2kv UEsDBAoAAAAAAJyc
SjUAAAAAAAAAAAAAAAATAAAAZHMvZXhhbXBsZS9zZXJ2aWNlL1BLAwQKAAAA AACcnEo1AAAAAAAA
AAAAAAAACgAAAGRzZXhhbXBsZS9QSwMECgAAAAgAnJxKNXYdvdP/AAAAzQEA ABQAAABNRVRBLUlO
Ri9NQU5JRkVTVC5NRlWPyW7CMBRF9/4KK2vsAt2l6qJDiiIBRY3UvXFeIgsP qe2kga9vUscBVpbe
uYPvjmlRgfPkG6wTRqd4RZfotdWlBLKb4MzWkeyZghS/u6xnqpGAD7KtidAR F2d1NFLwICujLOLb
rmvbC/eiY97Y0QHBQedjVG0NZ1JcmP8PaIbeofYLflphgQRNio2tKXApGgeU GwvUttoLBYs7Mpq0
6WnpUBZOZMsu58Iz61NcMekA5aox1pMD4ydWT8nG1YJWdtj2a+zpqQtrnpMV faTLZIGuIge2E3z8
wxCjQftb8TA9QVl/n186GqdPZlSEl7zFkBR/Fpuc5PuPhzmY9kqiP1BLAwQK AAAACACcnEo1DC7U
rLYAAAATAQAAFgAAAE1FVEEtSU5GL2NvbXBvbmVudC54bWxVj80OwiAQhM+Y +A6Eu63ePND2pIkX
L+oDEFibTfhpgDb17V1sNZHTsPPNLMhudpZPEBMG34hDtRccvA4Gfd+Ix/28 O4qu3W6kDm4IHnzm
XjlohEmnWbnBgiCXSSzSka0yFXFGM6atSqmQFSxoFVKP1ZXyF7qKuuUlOsQw QMyvtRidA4Mqg+CT
siNNchyB4MImiBNqKJrTKdkJDXD0GeJTafhbt9KfjbdFrz31t4iVp8r69zty 31BLAwQKAAAACACc
nEo1An/wf9cCAAAyBQAAHgAAAGRzL2V4YW1wbGUvb3NnaS9OYW1lSW1wbC5j bGFzc5VU204TURRd
py3MtJaLAwWsiBUFS7kM4p0CikUTTUXDGJKqiZlOj3BwOlNnpgjv/oSPPvnC i0YxMZEP8Ev8CnXP
TLlJDfHhnNlnn73X3muflfnx69sOgEtYkBBh6Ku4Kt/QqzWTq7a7ItRFvcrv 01FCjKFzTV/XVVO3
VtRH5TVueBJaGQYO5LjcWRcGD9K00GZorb6w6MzQ9ay4j6B5jrBW8nQ9Iyzh zTFEsyPLDLGCXeEJ
RNGWRBwJCR2HCodpMk4ytDzUHWdTRhclPbBXLRkpci7o66Iio5eAl3RjlZsy TlHAku26cTCcTkKC
zNBRFBZfrFfL3Hmil03qTinahm4u647wzw1nzFsVLkO6+K/BEAFZNzyxrnsU Ppkt2s5KGLE7C8Ou
1myLW55a2LUKtuXxDS8/shzHeQxJuHCY46br8WoSw7hIU7HrHkMqnJyw1cfE 36MpcL2alzHCMH1g
2Jm9Epl5vyk+9kYQAyvjrfJMuW5VTJ4xxUtuCMcw+UQCoxiXMEZP0wQ+iQmo DFLNd5kWNZE9+n7+
k0lGyIdh/L/oMyQqfH94ibsbBq95wrZcCVd3ewqK7d3IuM4w05zxQoh1DGeG OKnCeLUYSLIppacJ
tCOfxAxmSUX8dV033b9CQ/1TKEkkFLfSTNtM0LpP1DS77hj8nvA11barnQk/ A+dIlVFaLbTgi5P2
GNkkftpP0Ol542449xXJnPwd7aWo0qmVYoqilVqUbq3UqvRoJUnp074g/ZEi I+inXSEcoJV2mRDi
GCL7DHmSIRoGcDaolQl68CvNU2aEvvFPGFSy28jtgyWCiyRBtQUgPWFgA8S3 Juk3QnQxRXARXG7Q
uHIU+FoT4A4C7jwG+AZuNvqsUUyUvoPR2Q9I5T4j3T81uo3pd2iJbb2NsH7f tfP+98/o1l6dHpoB
0EV7iibTi26yM0gHNTMh2l7NQczhFtWKkOd20DzDnQCp8AdQSwMECgAAAAgA nJxKNTkhC66HAAAA
pgAAACQAAABkcy9leGFtcGxlL3NlcnZpY2UvTmFtZVNlcnZpY2UuY2xhc3M7 9W/XPgYGBkMGTnYG
JkYGuZRi/dSKxNyCnFT94tSisszkVH2/xNzUYAibnYGFkUEgK7EsUT8nMS9d 3z8pKzW5hJGBMzkj
NTkbpJCRQVTDB6EguKQoMy/dWjOKkYErOL+0KDnVLTMHqEgAyVA9kHI2RgZG BmYGEGAE2sHKwAZi
MbADSSYGDgBQSwMECgAAAAgAnJxKNW78J1dJAQAAYAIAABkAAABkc2V4YW1w bGUvQWN0aXZhdG9y
LmNsYXNzlVHLTsJAFD0DpVXkoTx87TQxQRc2LlxhTJToqtGFhv1QRhwsHTId sL/lysSFH+BHGe8U
gonREBdz3/fcc+98fL69AzjBroccQ72fiJSPxpHwL0Ijp9wo7cFhWB/yKfcj Hg/8295QhMaDy7Cv
9MBXyUD6D5qPxLPST/7lJO5HYtHN4J7JWJpzhnzrsMvgdFRfFJHHWgkeVhiq gYzFzWTUE/qe9yLB
UAtUyKMu19L686BjHmXC0Ax+odhmKCSGa8Nw0Ar+JNVRsRGpaVsaxas0FGMj VZx4aNDm3wsuMgxe
OGuhVZfDEsfEqDFh36mJDsW1tLwrC5bHdgT2QJegV6CzW003ILlKnk+akS4c vaL4QkYOJZJuFnRR
JlmaFaCCKmn6FmxQVY1sh7x6BnOadVL2J0Q5g9icJecQ1mpSzE7e+g9YYwnY dla/8wVQSwECFAMK
AAAAAACcnEo1AAAAAAAAAAAAAAAACQAAAAAAAAAAABAA7UEAAAAATUVUQS1J TkYvUEsBAhQDCgAA
AAAAnJxKNQAAAAAAAAAAAAAAAAMAAAAAAAAAAAAQAO1BJwAAAGRzL1BLAQIU AwoAAAAAAJycSjUA
AAAAAAAAAAAAAAALAAAAAAAAAAAAEADtQUgAAABkcy9leGFtcGxlL1BLAQIU AwoAAAAAAJycSjUA
AAAAAAAAAAAAAAAQAAAAAAAAAAAAEADtQXEAAABkcy9leGFtcGxlL29zZ2kv UEsBAhQDCgAAAAAA
nJxKNQAAAAAAAAAAAAAAABMAAAAAAAAAAAAQAO1BnwAAAGRzL2V4YW1wbGUv c2VydmljZS9QSwEC
FAMKAAAAAACcnEo1AAAAAAAAAAAAAAAACgAAAAAAAAAAABAA7UHQAAAAZHNl eGFtcGxlL1BLAQIU
AwoAAAAIAJycSjV2Hb3T/wAAAM0BAAAUAAAAAAAAAAAAAACkgfgAAABNRVRB LUlORi9NQU5JRkVT
VC5NRlBLAQIUAwoAAAAIAJycSjUMLtSstgAAABMBAAAWAAAAAAAAAAAAAACk gSkCAABNRVRBLUlO
Ri9jb21wb25lbnQueG1sUEsBAhQDCgAAAAgAnJxKNQJ/8H/XAgAAMgUAAB4A AAAAAAAAAAAAAKSB
EwMAAGRzL2V4YW1wbGUvb3NnaS9OYW1lSW1wbC5jbGFzc1BLAQIUAwoAAAAI AJycSjU5IQuuhwAA
AKYAAAAkAAAAAAAAAAAAAACkgSYGAABkcy9leGFtcGxlL3NlcnZpY2UvTmFt ZVNlcnZpY2UuY2xh
c3NQSwECFAMKAAAACACcnEo1bvwnV0kBAABgAgAAGQAAAAAAAAAAAAAApIHv BgAAZHNleGFtcGxl
L0FjdGl2YXRvci5jbGFzc1BLBQYAAAAACwALAMMCAABvCAAAAAA=
------=_Part_1236_25208982.1160481353844
Content-Type: application/octet-stream; name=dsexampleclient_1.0.0.jar
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=dsexampleclient_1.0.0.jar
UEsDBAoAAAAAAJycSjUAAAAAAAAAAAAAAAAJAAAATUVUQS1JTkYvUEsDBAoA AAAAAJycSjUAAAAA
AAAAAAAAAAAQAAAAZHNleGFtcGxlY2xpZW50L1BLAwQKAAAAAACcnEo1AAAA AAAAAAAAAAAADgAA
AGV4YW1wbGVjbGllbnQvUEsDBAoAAAAAAJycSjUAAAAAAAAAAAAAAAATAAAA ZXhhbXBsZWNsaWVu
dC9vc2dpL1BLAwQKAAAACACcnEo1/eypR/8AAAC/AQAAFAAAAE1FVEEtSU5G L01BTklGRVNULk1G
VZDNTsMwEITveYqo53hp4RbEAUpBkdpSEYm7cTaRVf8E2wlpnx6njlN6tOeb ndndUcVrtI58obFc
qzxdwTJ56VQlkOwmcdbuo7KnEvP01W4GKluBa8FRufQguoZwFaHyJL+14CzA 1S0cof+51+Rn5nhP
nTajD4OPXXwwS5HdakYFP1N3GdP6Dr7CJ/503CAJTJ5q08A4obUITBsE0ynH JWY3ymhSeoDKJiWa
njMkay1brXxwnn6U7wUp9m93LP7BIEVS+Idx5EDZkTZTlLYNBxtGwIxnfhmY tolqduVr4w/1q83x
sQ9HeVqs4AGWi2QT+pEtPZ9KR40vU1NhMfkDUEsDBAoAAAAIAJycSjU1Lpm1 vQAAABsBAAAWAAAA
TUVUQS1JTkYvY29tcG9uZW50LnhtbD2PvQ7CIBSF55r4DoRdqptDW4dGRxf1 AQi9rTfy0wBt6tt7
qehCwuHLdw7VaTGazeADOlvzg9hzBla5Du1Q88f9sjvyU7PdVMqZ0VmwkVlp oOZdOC/SjBpajZRy
YooKU2DoKiPpWEFZobQMoebwpdVKCxcGFO0T1OtKtqwoG5Yko3cj+PjORWgM dCgjcDZLPVES/QQE
J9ZDD572QobTGcDPqAhHG8H3Uq1rRR4g8rNIxbcfStU0tir/vyT7B1BLAwQK AAAACACcnEo1nPNt
z04BAABsAgAAHwAAAGRzZXhhbXBsZWNsaWVudC9BY3RpdmF0b3IuY2xhc3OV UbtOAkEUPQPLriIP
BXyglSYmYOHGwgpjokSrjRYa+mEYcXDZIbMD8ltWJhZ+gB9lvLsQTEwIsZj7 vueee+fr++MTwBn2
PWQY6r1YTvlwFEoRKhlZ/0pYNeFWGw8Ow+aAT7gf8qjv33cHUlgPLsORNn1f x33lPxk+lK/avPjX
46gXykU3g3uhImUvGbKNZofBaeuezCOLjQI8rDGUAxXJu/GwK80j74aSoRJo wcMONyrx50HHPquY
4SBYSrTFkIstN5bhuBEspdbWkZVT20rI5G+mQo6s0lHsocZQ/V1zkWHwxKyF Fl4NS0xjq0eE/aDH
RshblbAvLVieJiNwCLoHvRx9QaLpEiTXyfNJM9K5k3fk38jIoEDSTYMuiiQL swKUUCZNn4MtqqqQ
7ZBXTWHO007K/oUophA7s+QcIrG2KZZM3v0PWG0F2F5aX/8BUEsDBAoAAAAI AJycSjXAJRB8zAMA
AAwHAAAoAAAAZXhhbXBsZWNsaWVudC9vc2dpL0NoZWNrTmFtZUNsaWVudC5j bGFzc5VUbVcbRRR+
JknZZFlpDZQWW2HbYklCk4DFt4ZWaAoa3YbaYCr1dbMZwpTNbtxsEH+K/gE+ t0fh1J7j8at+9veo
dyYJpBT19ORkdubeO/fluc+dP/765VcA86hpiDBc5rt2s+VyxxXcC/N+uyHy xS3ubJftJi8qoYYY
w5lH9o6dd22vkV+rPeJOyJDwyMSRtgymVW/ne67ybR7sCIfnpYtKd19gGFoU nghvMURT6SpDrOjX
uY4ohg1oiCfA8IqBUxhiOG0Jj5c7zRoP1u2ayxmSlu/YbtUOhDz3hLFwS7QZ pq3/L4HCx20nFDt2
SBfnUpYfNLqG/Vwdv9nyPXm/2N8VfS/ku2EhXU3gLM5pGH8Ohsr37ZA3DZzH BNXkdwiRs5ZSCz9/
LxBeWAkDbjcLcVxgWDqWkXkYxrzDVWr82neCKvLMcIubtY5Xd7npik3uiMBx eU7H65jSMMkwekIQ
AyYuMWgtKXI9SiVlDaQakrhBhcRxhWFY9q1X9zDewIyGqwyzLwGJgRTS1C+X uhL2W8xw9aSY1nHi
FDTMMkz+N1/iyDJcWKFogWmbNbq+TWB43Ax9k++KMKchzzDeR+J2Z3OTB7x+ n9t1HmiYZ5jo60pe
q9NDqauW3bxuYAFvMUSEN9i2AduCjjm8I7n5LsP51Ikm6aqOHG5II2LY6JFR N5AC/CYD4nifYaRf
jSzzhin7uWzgtmzbKdU26euOgRWsElvJf12OAcNYKv0irDo+xEcaSs8zUukM fAyLxs3lXiPcUuNW
GkYGZQNruEdj6/SZ+C8seRjHfQq7TjSUVqZoE1mDgFqXi2OdUB/UlDynp9NQ HeBmaW1l1+GtUPgE
sOZ0ecOQfanJI+Ctk1tMqpinSki+WAGDXudH464fZtLW8HU/R3VhIEe94ncC h68K+bSMHZvWnLyC
S/RGRentJNrIh4p2UdrT40Vrgk6LJKduQ88c0J/9DOMxnSIYoXVE3TQQw2my NWiVJ2WNM3hVeU1i
tOuJRcl/jGTtJxhLvraPi5nZ5OWnmI7gN2TIrxRfI/Ez5DaeYW7jCd48wNsH eO9ucrEslbf2sUQG
xXJ2Hx/8iKE9ZDI/wcg+xd0IfsCItPmEHOz9/afcVtT29z3EHjxWSX1Lv097 qa+q9EapzDGcwzim
aJ2hZy9L33lM0CBNUulTWMYVYuU00W8Gn9EL4RDptnGRPOUQ0DDJkjPdsnol y90DsmXkZ4n8bFDE
BdzEQ3yuoP2CokbwJdnF6PSVAnmZJBH6JvrQHGGsK8V1SnRBBRvvGh4GS/SC MXyj7tj/AFBLAQIU
AwoAAAAAAJycSjUAAAAAAAAAAAAAAAAJAAAAAAAAAAAAEADtQQAAAABNRVRB LUlORi9QSwECFAMK
AAAAAACcnEo1AAAAAAAAAAAAAAAAEAAAAAAAAAAAABAA7UEnAAAAZHNleGFt cGxlY2xpZW50L1BL
AQIUAwoAAAAAAJycSjUAAAAAAAAAAAAAAAAOAAAAAAAAAAAAEADtQVUAAABl eGFtcGxlY2xpZW50
L1BLAQIUAwoAAAAAAJycSjUAAAAAAAAAAAAAAAATAAAAAAAAAAAAEADtQYEA AABleGFtcGxlY2xp
ZW50L29zZ2kvUEsBAhQDCgAAAAgAnJxKNf3sqUf/AAAAvwEAABQAAAAAAAAA AAAAAKSBsgAAAE1F
VEEtSU5GL01BTklGRVNULk1GUEsBAhQDCgAAAAgAnJxKNTUumbW9AAAAGwEA ABYAAAAAAAAAAAAA
AKSB4wEAAE1FVEEtSU5GL2NvbXBvbmVudC54bWxQSwECFAMKAAAACACcnEo1 nPNtz04BAABsAgAA
HwAAAAAAAAAAAAAApIHUAgAAZHNleGFtcGxlY2xpZW50L0FjdGl2YXRvci5j bGFzc1BLAQIUAwoA
AAAIAJycSjXAJRB8zAMAAAwHAAAoAAAAAAAAAAAAAACkgV8EAABleGFtcGxl Y2xpZW50L29zZ2kv
Q2hlY2tOYW1lQ2xpZW50LmNsYXNzUEsFBgAAAAAIAAgAGwIAAHEIAAAAAA==
------=_Part_1236_25208982.1160481353844--
|
|
|
|
|
|
Re: confusing Declarative service! [message #74801 is a reply to message #74697] |
Thu, 12 October 2006 23:38   |
Eclipse User |
|
|
|
Originally posted by: lixinhui.cn.ibm.com
OK, Maybe we can choose a simpler example to recognize my errors. That is just about a service out of following 4 files, installed it in Equinox and then started it and expected to see "com.sample.service.SampleService" among installed services, but it is not there. I am definitely doing something wrong but cannot figure out what.
I copy some important files here:
==========================================
package "com.sample.service" include two file, one is service interface named as "SampleService", another is the related implement named as "SampleServiceImpl"! Following is source code:
(1)
public interface SampleService {
public void service();
}
(2)
import org.osgi.service.component.ComponentContext;
import org.eclipse.equinox.ds.*;
public class SampleServiceImpl implements SampleService {
public SampleServiceImpl(){
super();
System.out.println("SampleServiceImpl is constructed!");
}
public void service() {
System.out.println("Sample service is called");
}
protected void activate(ComponentContext context) {
System.out.println("SampleService Component Active,within the bundle lifecircle.");
}
protected void deactivate(ComponentContext context) throws Exception {
System.out.println("SampleService Component Deactive,within the bundle lifecircle.");
}
}
===================================================
package mysampleservice has one file implementing BundleActivator to activate the related bundle:
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import com.sample.service.*;
public class Activator implements BundleActivator {
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework. BundleContext)
*/
public void start(BundleContext context) throws Exception {
//SampleServiceImpl ss = new SampleServiceImpl();
System.out.println("BundleActivator is started!");
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.B undleContext)
*/
public void stop(BundleContext context) throws Exception {
System.out.println("BundleActivator is stopped!");
}
}
=======================================================
Related META-INF has two files:
(1)activator.xml
<?xml version="1.0" encoding="UTF-8"?>
<component name="sample.service" immediate="true">
<implementation class="com.sample.service.SampleServiceImpl"/>
<service>
<provide interface= "com.sample.service.SampleService"/>
</service>
<component>
(2)Manifest for bundle
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MySampleService Plug-in
Bundle-SymbolicName: MySampleService
Bundle-Version: 1.0.0
Bundle-Activator: mysampleservice.Activator
Bundle-Localization: plugin
Service-Component: /META-INF/activator.xml
Bundle-Description: Immediate component activator
Import-Package: org.osgi.framework, org.eclipse.equinox.ds, org.osgi.service.component
Require-Bundle: org.eclipse.osgi, org.eclipse.osgi.services, org.eclipse.core.runtime
Bundle-Vendor: CRL
Export-Package: com.sample.service
Eclipse-AutoStart: false
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04398 seconds