You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Imóveis Nacionais <im...@gmail.com> on 2013/02/13 14:36:45 UTC
serviceChanged handler never called
Hi
I am trying to play with service events in a client bundle in order to be
notified when other bundles are registered.
So, I created a simple maven osgi bundler just with an activator class.
public class Activator implements BundleActivator, ServiceListener
{
public void start(BundleContext context) throws Exception
{
System.out.println("Client bundle initializing on start
method...");
context.addServiceListener(this);
public void stop(BundleContext context) throws Exception
{
context.removeServiceListener(this);
}
public void serviceChanged(ServiceEvent event)
{
System.out.println("serviceChanged called");
}
Then, in the gogo shell of felix I installed this client bundle and started
it. Then I installed other (server) bundle and started it but the
serviceChanged handler is never called. Why?
Thanks a lot
Alex
Re: serviceChanged handler never called
Posted by "Richard S. Hall" <he...@ungoverned.org>.
On 2/13/13 11:27 , Imóveis Nacionais wrote:
> Ok... So, if it does not works in my computer could it be the apache felix
> that is broken?
Anything is possible, but this seems like a pretty basic feature.
>
> Do I need to configure something on apache felix in order to get services
> events wrking?
No.
>
> Alex
> Please, Can I try your test 'client' bundle in my platform to see what
> happens?
I will send you it off list.
-> richard
>
>
> On Wed, Feb 13, 2013 at 3:52 PM, Richard S. Hall <he...@ungoverned.org>wrote:
>
>> Well, I took your bundle and deleted what I had to to get it to compile
>> (e.g., your upnp stuff) and it still sort of works for me except your
>> listener gets an NPE since it is trying to get the objectClass property
>> using the name "description":
>>
>>
>> g! lb
>> START LEVEL 1
>> ID|State |Level|Name
>> 0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
>> 1|Resolved | 1|Apache Felix Bundle Repository (1.6.6)
>>
>> 2|Active | 1|Apache Felix Gogo Command (0.12.0)
>> 3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
>> 4|Active | 1|Apache Felix Gogo Shell (0.10.0)
>> 8|Active | 1|MyBundleClientListen OSGi Bundle (1.0.0.SNAPSHOT)
>> g! start 1
>> serviceChanged called
>> LISTAGEM DE PROPS:
>> [objectClass, service.id]
>> ERROR: Bundle com.mycompany.**MyBundleClientListen [8] EventDispatcher:
>> Error during dispatch. (java.lang.**NullPointerException)
>> java.lang.NullPointerException
>> at com.mycompany.**mybundleclientlisten.**Activator.serviceChanged(**
>> Activator.java:55)
>>
>>
>> -> richard
>>
>>
>> On 2/13/13 09:42 , Imóveis Nacionais wrote:
>>
>>> I did not changed manifest.mf. I think netbeans and maven do that.
>>>
>>> Here the manifest contents:
>>>
>>>
>>> Manifest-Version: 1.0
>>> Export-Package: com.mycompany.**mybundleclientlisten;uses:="**
>>> com.mycompan
>>> y.mybundleserver.**serviceinterface,org.osgi.**framework"
>>> Built-By: ncosta
>>> Tool: Bnd-1.15.0
>>> Bundle-Name: MyBundleClientListen OSGi Bundle
>>> Created-By: Apache Maven Bundle Plugin
>>> Bundle-Version: 1.0.0.SNAPSHOT
>>> Build-Jdk: 1.7.0_11
>>> Bnd-LastModified: 1360759133638
>>> Bundle-ManifestVersion: 2
>>> Bundle-Activator: com.mycompany.**mybundleclientlisten.Activator
>>> Import-Package: com.mycompany.mybundleserver.**serviceinterface,org.osgi
>>> .framework;version="[1.5,2)"
>>> Bundle-SymbolicName: com.mycompany.**MyBundleClientListen
>>>
>>>
>>> Alex
>>> (By the way, I also zipped the whole project)
>>>
>>>
>>>
>>> On Wed, Feb 13, 2013 at 2:30 PM, Richard S. Hall <heavy@ungoverned.org<mailto:
>>> heavy@ungoverned.org>> wrote:
>>>
>>> There is something going wrong in your setup. Are you sure your
>>> monitoring bundle is getting activated? Did you specify
>>> Bundle-Activator in your manifest?
>>>
>>> I created a bundle like yours and it worked fine for me:
>>>
>>> g! lb
>>> START LEVEL 1
>>> ID|State |Level|Name
>>> 0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
>>> 1|Active | 1|Apache Felix Bundle Repository (1.6.6)
>>> 2|Active | 1|Apache Felix Gogo Command (0.12.0)
>>> 3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
>>> 4|Active | 1|Apache Felix Gogo Shell (0.10.0)
>>> 7|Active | 1|service.listener.text (0.0.0)
>>> g! stop 1
>>> **serviceChanged called
>>> **serviceChanged called
>>> g! start 1
>>> **serviceChanged called
>>> **serviceChanged called
>>> g!
>>>
>>> -> richard
>>>
>>>
>>> On 2/13/13 09:07 , Imóveis Nacionais wrote:
>>>
>>> yes, I can install the related 'client bundle' and call the
>>> service on the
>>> server bundle:
>>>
>>>
>>>
>>> ServiceReference sr =
>>> context.getServiceReference(**upnp.class.getName());
>>> if(sr != null)
>>> {
>>> upnp x = (upnp)context.getService(sr);
>>> if(x != null)
>>> {
>>> System.out.println("Vai chamar o serviço
>>> HelloToYou...");
>>> int n=x.GetNumber();
>>> System.out.println("Vai libertar serviço
>>> HelloToYou... "+n);
>>> context.ungetService(sr);
>>>
>>> This code from related 'client' bundle works.
>>>
>>> I also checked the export packages of the used server bundle
>>> and both
>>> interface and bundle are marked for exportation
>>>
>>> Alex
>>>
>>>
>>>
>>> On Wed, Feb 13, 2013 at 1:49 PM, Richard S. Hall
>>> <heavy@ungoverned.org <ma...@ungoverned.org>>**wrote:
>>>
>>>
>>> Are you sure the server bundle is providing its service?
>>>
>>> -> richard
>>>
>>>
>>> On 2/13/13 08:36 , Imóveis Nacionais wrote:
>>>
>>> Hi
>>> I am trying to play with service events in a client
>>> bundle in order to be
>>> notified when other bundles are registered.
>>>
>>> So, I created a simple maven osgi bundler just with an
>>> activator class.
>>>
>>> public class Activator implements BundleActivator,
>>> ServiceListener
>>> {
>>>
>>> public void start(BundleContext context) throws
>>> Exception
>>> {
>>> System.out.println("Client bundle
>>> initializing on start
>>> method...");
>>>
>>> context.addServiceListener(****this);
>>>
>>>
>>>
>>> public void stop(BundleContext context) throws
>>> Exception
>>> {
>>> context.removeServiceListener(****this);
>>> }
>>>
>>> public void serviceChanged(ServiceEvent event)
>>> {
>>> System.out.println("****serviceChanged
>>> called");
>>>
>>> }
>>>
>>> Then, in the gogo shell of felix I installed this
>>> client bundle and
>>> started
>>> it. Then I installed other (server) bundle and started
>>> it but the
>>> serviceChanged handler is never called. Why?
>>>
>>> Thanks a lot
>>>
>>> Alex
>>>
>>>
>>> ------------------------------**
>>> **----------------------------**--**---------
>>> To unsubscribe, e-mail:
>>> users-unsubscribe@felix.**apac**he.org <http://apache.org>
>>> <ht...@felix.apache.org>
>>> <ma...@felix.apache.org>
>>>
>>> For additional commands, e-mail:
>>> users-help@felix.apache.org
>>> <ma...@felix.apache.org>
>>>
>>>
>>>
>>>
>>> ------------------------------**------------------------------**
>>> ---------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
>>> <ma...@felix.apache.org>
>>> For additional commands, e-mail: users-help@felix.apache.org
>>> <mailto:users-help@felix.**apache.org <us...@felix.apache.org>>
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: serviceChanged handler never called
Posted by Imóveis Nacionais <im...@gmail.com>.
Ok... So, if it does not works in my computer could it be the apache felix
that is broken?
Do I need to configure something on apache felix in order to get services
events wrking?
Alex
Please, Can I try your test 'client' bundle in my platform to see what
happens?
On Wed, Feb 13, 2013 at 3:52 PM, Richard S. Hall <he...@ungoverned.org>wrote:
> Well, I took your bundle and deleted what I had to to get it to compile
> (e.g., your upnp stuff) and it still sort of works for me except your
> listener gets an NPE since it is trying to get the objectClass property
> using the name "description":
>
>
> g! lb
> START LEVEL 1
> ID|State |Level|Name
> 0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
> 1|Resolved | 1|Apache Felix Bundle Repository (1.6.6)
>
> 2|Active | 1|Apache Felix Gogo Command (0.12.0)
> 3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
> 4|Active | 1|Apache Felix Gogo Shell (0.10.0)
> 8|Active | 1|MyBundleClientListen OSGi Bundle (1.0.0.SNAPSHOT)
> g! start 1
> serviceChanged called
> LISTAGEM DE PROPS:
> [objectClass, service.id]
> ERROR: Bundle com.mycompany.**MyBundleClientListen [8] EventDispatcher:
> Error during dispatch. (java.lang.**NullPointerException)
> java.lang.NullPointerException
> at com.mycompany.**mybundleclientlisten.**Activator.serviceChanged(**
> Activator.java:55)
>
>
> -> richard
>
>
> On 2/13/13 09:42 , Imóveis Nacionais wrote:
>
>> I did not changed manifest.mf. I think netbeans and maven do that.
>>
>> Here the manifest contents:
>>
>>
>> Manifest-Version: 1.0
>> Export-Package: com.mycompany.**mybundleclientlisten;uses:="**
>> com.mycompan
>> y.mybundleserver.**serviceinterface,org.osgi.**framework"
>> Built-By: ncosta
>> Tool: Bnd-1.15.0
>> Bundle-Name: MyBundleClientListen OSGi Bundle
>> Created-By: Apache Maven Bundle Plugin
>> Bundle-Version: 1.0.0.SNAPSHOT
>> Build-Jdk: 1.7.0_11
>> Bnd-LastModified: 1360759133638
>> Bundle-ManifestVersion: 2
>> Bundle-Activator: com.mycompany.**mybundleclientlisten.Activator
>> Import-Package: com.mycompany.mybundleserver.**serviceinterface,org.osgi
>> .framework;version="[1.5,2)"
>> Bundle-SymbolicName: com.mycompany.**MyBundleClientListen
>>
>>
>> Alex
>> (By the way, I also zipped the whole project)
>>
>>
>>
>> On Wed, Feb 13, 2013 at 2:30 PM, Richard S. Hall <heavy@ungoverned.org<mailto:
>> heavy@ungoverned.org>> wrote:
>>
>> There is something going wrong in your setup. Are you sure your
>> monitoring bundle is getting activated? Did you specify
>> Bundle-Activator in your manifest?
>>
>> I created a bundle like yours and it worked fine for me:
>>
>> g! lb
>> START LEVEL 1
>> ID|State |Level|Name
>> 0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
>> 1|Active | 1|Apache Felix Bundle Repository (1.6.6)
>> 2|Active | 1|Apache Felix Gogo Command (0.12.0)
>> 3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
>> 4|Active | 1|Apache Felix Gogo Shell (0.10.0)
>> 7|Active | 1|service.listener.text (0.0.0)
>> g! stop 1
>> **serviceChanged called
>> **serviceChanged called
>> g! start 1
>> **serviceChanged called
>> **serviceChanged called
>> g!
>>
>> -> richard
>>
>>
>> On 2/13/13 09:07 , Imóveis Nacionais wrote:
>>
>> yes, I can install the related 'client bundle' and call the
>> service on the
>> server bundle:
>>
>>
>>
>> ServiceReference sr =
>> context.getServiceReference(**upnp.class.getName());
>> if(sr != null)
>> {
>> upnp x = (upnp)context.getService(sr);
>> if(x != null)
>> {
>> System.out.println("Vai chamar o serviço
>> HelloToYou...");
>> int n=x.GetNumber();
>> System.out.println("Vai libertar serviço
>> HelloToYou... "+n);
>> context.ungetService(sr);
>>
>> This code from related 'client' bundle works.
>>
>> I also checked the export packages of the used server bundle
>> and both
>> interface and bundle are marked for exportation
>>
>> Alex
>>
>>
>>
>> On Wed, Feb 13, 2013 at 1:49 PM, Richard S. Hall
>> <heavy@ungoverned.org <ma...@ungoverned.org>>**wrote:
>>
>>
>> Are you sure the server bundle is providing its service?
>>
>> -> richard
>>
>>
>> On 2/13/13 08:36 , Imóveis Nacionais wrote:
>>
>> Hi
>> I am trying to play with service events in a client
>> bundle in order to be
>> notified when other bundles are registered.
>>
>> So, I created a simple maven osgi bundler just with an
>> activator class.
>>
>> public class Activator implements BundleActivator,
>> ServiceListener
>> {
>>
>> public void start(BundleContext context) throws
>> Exception
>> {
>> System.out.println("Client bundle
>> initializing on start
>> method...");
>>
>> context.addServiceListener(****this);
>>
>>
>>
>> public void stop(BundleContext context) throws
>> Exception
>> {
>> context.removeServiceListener(****this);
>> }
>>
>> public void serviceChanged(ServiceEvent event)
>> {
>> System.out.println("****serviceChanged
>> called");
>>
>> }
>>
>> Then, in the gogo shell of felix I installed this
>> client bundle and
>> started
>> it. Then I installed other (server) bundle and started
>> it but the
>> serviceChanged handler is never called. Why?
>>
>> Thanks a lot
>>
>> Alex
>>
>>
>> ------------------------------**
>> **----------------------------**--**---------
>> To unsubscribe, e-mail:
>> users-unsubscribe@felix.**apac**he.org <http://apache.org>
>> <ht...@felix.apache.org>
>> <ma...@felix.apache.org>
>> >>
>>
>>
>> For additional commands, e-mail:
>> users-help@felix.apache.org
>> <ma...@felix.apache.org>
>> >
>>
>>
>>
>>
>>
>> ------------------------------**------------------------------**
>> ---------
>> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
>> <ma...@felix.apache.org>
>> >
>>
>> For additional commands, e-mail: users-help@felix.apache.org
>> <mailto:users-help@felix.**apache.org <us...@felix.apache.org>>
>>
>>
>>
>>
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
>
Re: serviceChanged handler never called
Posted by "Richard S. Hall" <he...@ungoverned.org>.
Well, I took your bundle and deleted what I had to to get it to compile
(e.g., your upnp stuff) and it still sort of works for me except your
listener gets an NPE since it is trying to get the objectClass property
using the name "description":
g! lb
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
1|Resolved | 1|Apache Felix Bundle Repository (1.6.6)
2|Active | 1|Apache Felix Gogo Command (0.12.0)
3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
4|Active | 1|Apache Felix Gogo Shell (0.10.0)
8|Active | 1|MyBundleClientListen OSGi Bundle (1.0.0.SNAPSHOT)
g! start 1
serviceChanged called
LISTAGEM DE PROPS:
[objectClass, service.id]
ERROR: Bundle com.mycompany.MyBundleClientListen [8] EventDispatcher:
Error during dispatch. (java.lang.NullPointerException)
java.lang.NullPointerException
at
com.mycompany.mybundleclientlisten.Activator.serviceChanged(Activator.java:55)
-> richard
On 2/13/13 09:42 , Imóveis Nacionais wrote:
> I did not changed manifest.mf. I think netbeans and maven do that.
>
> Here the manifest contents:
>
>
> Manifest-Version: 1.0
> Export-Package: com.mycompany.mybundleclientlisten;uses:="com.mycompan
> y.mybundleserver.serviceinterface,org.osgi.framework"
> Built-By: ncosta
> Tool: Bnd-1.15.0
> Bundle-Name: MyBundleClientListen OSGi Bundle
> Created-By: Apache Maven Bundle Plugin
> Bundle-Version: 1.0.0.SNAPSHOT
> Build-Jdk: 1.7.0_11
> Bnd-LastModified: 1360759133638
> Bundle-ManifestVersion: 2
> Bundle-Activator: com.mycompany.mybundleclientlisten.Activator
> Import-Package: com.mycompany.mybundleserver.serviceinterface,org.osgi
> .framework;version="[1.5,2)"
> Bundle-SymbolicName: com.mycompany.MyBundleClientListen
>
>
> Alex
> (By the way, I also zipped the whole project)
>
>
>
> On Wed, Feb 13, 2013 at 2:30 PM, Richard S. Hall <heavy@ungoverned.org
> <ma...@ungoverned.org>> wrote:
>
> There is something going wrong in your setup. Are you sure your
> monitoring bundle is getting activated? Did you specify
> Bundle-Activator in your manifest?
>
> I created a bundle like yours and it worked fine for me:
>
> g! lb
> START LEVEL 1
> ID|State |Level|Name
> 0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
> 1|Active | 1|Apache Felix Bundle Repository (1.6.6)
> 2|Active | 1|Apache Felix Gogo Command (0.12.0)
> 3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
> 4|Active | 1|Apache Felix Gogo Shell (0.10.0)
> 7|Active | 1|service.listener.text (0.0.0)
> g! stop 1
> **serviceChanged called
> **serviceChanged called
> g! start 1
> **serviceChanged called
> **serviceChanged called
> g!
>
> -> richard
>
>
> On 2/13/13 09:07 , Imóveis Nacionais wrote:
>
> yes, I can install the related 'client bundle' and call the
> service on the
> server bundle:
>
>
>
> ServiceReference sr =
> context.getServiceReference(upnp.class.getName());
> if(sr != null)
> {
> upnp x = (upnp)context.getService(sr);
> if(x != null)
> {
> System.out.println("Vai chamar o serviço
> HelloToYou...");
> int n=x.GetNumber();
> System.out.println("Vai libertar serviço
> HelloToYou... "+n);
> context.ungetService(sr);
>
> This code from related 'client' bundle works.
>
> I also checked the export packages of the used server bundle
> and both
> interface and bundle are marked for exportation
>
> Alex
>
>
>
> On Wed, Feb 13, 2013 at 1:49 PM, Richard S. Hall
> <heavy@ungoverned.org <ma...@ungoverned.org>>wrote:
>
> Are you sure the server bundle is providing its service?
>
> -> richard
>
>
> On 2/13/13 08:36 , Imóveis Nacionais wrote:
>
> Hi
> I am trying to play with service events in a client
> bundle in order to be
> notified when other bundles are registered.
>
> So, I created a simple maven osgi bundler just with an
> activator class.
>
> public class Activator implements BundleActivator,
> ServiceListener
> {
>
> public void start(BundleContext context) throws
> Exception
> {
> System.out.println("Client bundle
> initializing on start
> method...");
>
> context.addServiceListener(**this);
>
>
>
> public void stop(BundleContext context) throws
> Exception
> {
> context.removeServiceListener(**this);
> }
>
> public void serviceChanged(ServiceEvent event)
> {
> System.out.println("**serviceChanged called");
>
> }
>
> Then, in the gogo shell of felix I installed this
> client bundle and
> started
> it. Then I installed other (server) bundle and started
> it but the
> serviceChanged handler is never called. Why?
>
> Thanks a lot
>
> Alex
>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail:
> users-unsubscribe@felix.**apache.org
> <http://apache.org><users-unsubscribe@felix.apache.org
> <ma...@felix.apache.org>>
>
> For additional commands, e-mail:
> users-help@felix.apache.org
> <ma...@felix.apache.org>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> <ma...@felix.apache.org>
> For additional commands, e-mail: users-help@felix.apache.org
> <ma...@felix.apache.org>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
Re: serviceChanged handler never called
Posted by Imóveis Nacionais <im...@gmail.com>.
I did not changed manifest.mf. I think netbeans and maven do that.
Here the manifest contents:
Manifest-Version: 1.0
Export-Package: com.mycompany.mybundleclientlisten;uses:="com.mycompan
y.mybundleserver.serviceinterface,org.osgi.framework"
Built-By: ncosta
Tool: Bnd-1.15.0
Bundle-Name: MyBundleClientListen OSGi Bundle
Created-By: Apache Maven Bundle Plugin
Bundle-Version: 1.0.0.SNAPSHOT
Build-Jdk: 1.7.0_11
Bnd-LastModified: 1360759133638
Bundle-ManifestVersion: 2
Bundle-Activator: com.mycompany.mybundleclientlisten.Activator
Import-Package: com.mycompany.mybundleserver.serviceinterface,org.osgi
.framework;version="[1.5,2)"
Bundle-SymbolicName: com.mycompany.MyBundleClientListen
Alex
(By the way, I also zipped the whole project)
On Wed, Feb 13, 2013 at 2:30 PM, Richard S. Hall <he...@ungoverned.org>wrote:
> There is something going wrong in your setup. Are you sure your monitoring
> bundle is getting activated? Did you specify Bundle-Activator in your
> manifest?
>
> I created a bundle like yours and it worked fine for me:
>
> g! lb
> START LEVEL 1
> ID|State |Level|Name
> 0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
> 1|Active | 1|Apache Felix Bundle Repository (1.6.6)
> 2|Active | 1|Apache Felix Gogo Command (0.12.0)
> 3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
> 4|Active | 1|Apache Felix Gogo Shell (0.10.0)
> 7|Active | 1|service.listener.text (0.0.0)
> g! stop 1
> **serviceChanged called
> **serviceChanged called
> g! start 1
> **serviceChanged called
> **serviceChanged called
> g!
>
> -> richard
>
>
> On 2/13/13 09:07 , Imóveis Nacionais wrote:
>
>> yes, I can install the related 'client bundle' and call the service on the
>> server bundle:
>>
>>
>>
>> ServiceReference sr =
>> context.getServiceReference(**upnp.class.getName());
>> if(sr != null)
>> {
>> upnp x = (upnp)context.getService(sr);
>> if(x != null)
>> {
>> System.out.println("Vai chamar o serviço HelloToYou...");
>> int n=x.GetNumber();
>> System.out.println("Vai libertar serviço HelloToYou...
>> "+n);
>> context.ungetService(sr);
>>
>> This code from related 'client' bundle works.
>>
>> I also checked the export packages of the used server bundle and both
>> interface and bundle are marked for exportation
>>
>> Alex
>>
>>
>>
>> On Wed, Feb 13, 2013 at 1:49 PM, Richard S. Hall <heavy@ungoverned.org
>> >wrote:
>>
>> Are you sure the server bundle is providing its service?
>>>
>>> -> richard
>>>
>>>
>>> On 2/13/13 08:36 , Imóveis Nacionais wrote:
>>>
>>> Hi
>>>> I am trying to play with service events in a client bundle in order to
>>>> be
>>>> notified when other bundles are registered.
>>>>
>>>> So, I created a simple maven osgi bundler just with an activator class.
>>>>
>>>> public class Activator implements BundleActivator, ServiceListener
>>>> {
>>>>
>>>> public void start(BundleContext context) throws Exception
>>>> {
>>>> System.out.println("Client bundle initializing on start
>>>> method...");
>>>>
>>>> context.addServiceListener(****this);
>>>>
>>>>
>>>>
>>>> public void stop(BundleContext context) throws Exception
>>>> {
>>>> context.removeServiceListener(****this);
>>>> }
>>>>
>>>> public void serviceChanged(ServiceEvent event)
>>>> {
>>>> System.out.println("****serviceChanged called");
>>>>
>>>> }
>>>>
>>>> Then, in the gogo shell of felix I installed this client bundle and
>>>> started
>>>> it. Then I installed other (server) bundle and started it but the
>>>> serviceChanged handler is never called. Why?
>>>>
>>>> Thanks a lot
>>>>
>>>> Alex
>>>>
>>>>
>>>> ------------------------------****----------------------------**
>>> --**---------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.**apac**he.org<http://apache.org>
>>> <us...@felix.apache.org>
>>> >
>>>
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>>
>>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
> For additional commands, e-mail: users-help@felix.apache.org
>
>
Re: serviceChanged handler never called
Posted by "Richard S. Hall" <he...@ungoverned.org>.
There is something going wrong in your setup. Are you sure your
monitoring bundle is getting activated? Did you specify Bundle-Activator
in your manifest?
I created a bundle like yours and it worked fine for me:
g! lb
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (4.3.0.SNAPSHOT)
1|Active | 1|Apache Felix Bundle Repository (1.6.6)
2|Active | 1|Apache Felix Gogo Command (0.12.0)
3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
4|Active | 1|Apache Felix Gogo Shell (0.10.0)
7|Active | 1|service.listener.text (0.0.0)
g! stop 1
**serviceChanged called
**serviceChanged called
g! start 1
**serviceChanged called
**serviceChanged called
g!
-> richard
On 2/13/13 09:07 , Imóveis Nacionais wrote:
> yes, I can install the related 'client bundle' and call the service on the
> server bundle:
>
>
>
> ServiceReference sr =
> context.getServiceReference(upnp.class.getName());
> if(sr != null)
> {
> upnp x = (upnp)context.getService(sr);
> if(x != null)
> {
> System.out.println("Vai chamar o serviço HelloToYou...");
> int n=x.GetNumber();
> System.out.println("Vai libertar serviço HelloToYou... "+n);
> context.ungetService(sr);
>
> This code from related 'client' bundle works.
>
> I also checked the export packages of the used server bundle and both
> interface and bundle are marked for exportation
>
> Alex
>
>
>
> On Wed, Feb 13, 2013 at 1:49 PM, Richard S. Hall <he...@ungoverned.org>wrote:
>
>> Are you sure the server bundle is providing its service?
>>
>> -> richard
>>
>>
>> On 2/13/13 08:36 , Imóveis Nacionais wrote:
>>
>>> Hi
>>> I am trying to play with service events in a client bundle in order to be
>>> notified when other bundles are registered.
>>>
>>> So, I created a simple maven osgi bundler just with an activator class.
>>>
>>> public class Activator implements BundleActivator, ServiceListener
>>> {
>>>
>>> public void start(BundleContext context) throws Exception
>>> {
>>> System.out.println("Client bundle initializing on start
>>> method...");
>>>
>>> context.addServiceListener(**this);
>>>
>>>
>>> public void stop(BundleContext context) throws Exception
>>> {
>>> context.removeServiceListener(**this);
>>> }
>>>
>>> public void serviceChanged(ServiceEvent event)
>>> {
>>> System.out.println("**serviceChanged called");
>>> }
>>>
>>> Then, in the gogo shell of felix I installed this client bundle and
>>> started
>>> it. Then I installed other (server) bundle and started it but the
>>> serviceChanged handler is never called. Why?
>>>
>>> Thanks a lot
>>>
>>> Alex
>>>
>>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: serviceChanged handler never called
Posted by Imóveis Nacionais <im...@gmail.com>.
yes, I can install the related 'client bundle' and call the service on the
server bundle:
ServiceReference sr =
context.getServiceReference(upnp.class.getName());
if(sr != null)
{
upnp x = (upnp)context.getService(sr);
if(x != null)
{
System.out.println("Vai chamar o serviço HelloToYou...");
int n=x.GetNumber();
System.out.println("Vai libertar serviço HelloToYou... "+n);
context.ungetService(sr);
This code from related 'client' bundle works.
I also checked the export packages of the used server bundle and both
interface and bundle are marked for exportation
Alex
On Wed, Feb 13, 2013 at 1:49 PM, Richard S. Hall <he...@ungoverned.org>wrote:
> Are you sure the server bundle is providing its service?
>
> -> richard
>
>
> On 2/13/13 08:36 , Imóveis Nacionais wrote:
>
>> Hi
>> I am trying to play with service events in a client bundle in order to be
>> notified when other bundles are registered.
>>
>> So, I created a simple maven osgi bundler just with an activator class.
>>
>> public class Activator implements BundleActivator, ServiceListener
>> {
>>
>> public void start(BundleContext context) throws Exception
>> {
>> System.out.println("Client bundle initializing on start
>> method...");
>>
>> context.addServiceListener(**this);
>>
>>
>> public void stop(BundleContext context) throws Exception
>> {
>> context.removeServiceListener(**this);
>> }
>>
>> public void serviceChanged(ServiceEvent event)
>> {
>> System.out.println("**serviceChanged called");
>> }
>>
>> Then, in the gogo shell of felix I installed this client bundle and
>> started
>> it. Then I installed other (server) bundle and started it but the
>> serviceChanged handler is never called. Why?
>>
>> Thanks a lot
>>
>> Alex
>>
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
> For additional commands, e-mail: users-help@felix.apache.org
>
>
Re: serviceChanged handler never called
Posted by "Richard S. Hall" <he...@ungoverned.org>.
Are you sure the server bundle is providing its service?
-> richard
On 2/13/13 08:36 , Imóveis Nacionais wrote:
> Hi
> I am trying to play with service events in a client bundle in order to be
> notified when other bundles are registered.
>
> So, I created a simple maven osgi bundler just with an activator class.
>
> public class Activator implements BundleActivator, ServiceListener
> {
>
> public void start(BundleContext context) throws Exception
> {
> System.out.println("Client bundle initializing on start
> method...");
>
> context.addServiceListener(this);
>
>
> public void stop(BundleContext context) throws Exception
> {
> context.removeServiceListener(this);
> }
>
> public void serviceChanged(ServiceEvent event)
> {
> System.out.println("serviceChanged called");
> }
>
> Then, in the gogo shell of felix I installed this client bundle and started
> it. Then I installed other (server) bundle and started it but the
> serviceChanged handler is never called. Why?
>
> Thanks a lot
>
> Alex
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org