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