You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Sunil Varghese <op...@gmail.com> on 2013/02/18 21:27:39 UTC

Felix tutorial (beginner question)

Hi,

I'm working through the Felix tutorial and I've been very happy with its
coverage.  When running example 6, I'm finding that the service event
listener only triggers on registration of the dictionary object in
example2b (French).  It does not trigger for the dictionary object in
example2 (English).

The registration code is the same for both bundles:
        Hashtable<String, String> props = new Hashtable<String, String>();
        props.put("Language", "French");
        context.registerService(
            DictionaryService.class.getName(), new DictionaryImpl(), props);

The service listener is setup in example6 as
        m_context.addServiceListener(this,
                "(&(objectClass=" + DictionaryService.class.getName() + ")"
+
                "(Language=*))");

I don't believe that this behavior is correct and would appreciate if you
would clarify this.  Thank you,

regards,
Sunil

Re: Felix tutorial (beginner question)

Posted by Sunil Varghese <op...@gmail.com>.
That makes sense.  Doing a refresh right after the uninstall fixed the
issue.  Thank you Richard.

regards,
Sunil

On Mon, Feb 18, 2013 at 4:59 PM, Richard S. Hall <he...@ungoverned.org>wrote:

> On 2/18/13 17:39, Sunil Varghese wrote:
>
>> Ah, it looks like the behavior is different when uninstalling/reinstalling
>> the bundles instead of starting/stopping bundles.  Could you verify if
>> this
>> is expected and how best to handle the scenario for uninstall/reinstall?
>>
>
> Yes, that would probably be expected. If you uninstall, you should
> remember to do "refresh" after the uninstall (also after you update a
> bundle). If you don't then the uninstalled (or updated) bundles still leave
> old packages around that other bundles can be wired to. These packages will
> be incompatible with reinstalled bundles packages of the same name, which
> will cause you not to see services and/or service events since the bundles
> actually have different providers for the same package.
>
> -> richard
>
>
>  Thank you,
>>
>> regards,
>> Sunil
>>
>> On Mon, Feb 18, 2013 at 2:27 PM, Sunil Varghese <op...@gmail.com>
>> wrote:
>>
>>  Hi,
>>>
>>> I'm working through the Felix tutorial and I've been very happy with its
>>> coverage.  When running example 6, I'm finding that the service event
>>> listener only triggers on registration of the dictionary object in
>>> example2b (French).  It does not trigger for the dictionary object in
>>> example2 (English).
>>>
>>> The registration code is the same for both bundles:
>>>          Hashtable<String, String> props = new Hashtable<String,
>>> String>();
>>>          props.put("Language", "French");
>>>          context.registerService(
>>>              DictionaryService.class.**getName(), new DictionaryImpl(),
>>> props);
>>>
>>> The service listener is setup in example6 as
>>>          m_context.addServiceListener(**this,
>>>                  "(&(objectClass=" + DictionaryService.class.**getName()
>>> +
>>> ")" +
>>>                  "(Language=*))");
>>>
>>> I don't believe that this behavior is correct and would appreciate if you
>>> would clarify this.  Thank you,
>>>
>>> regards,
>>> Sunil
>>>
>>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
> For additional commands, e-mail: users-help@felix.apache.org
>
>

Re: Felix tutorial (beginner question)

Posted by "Richard S. Hall" <he...@ungoverned.org>.
On 2/18/13 17:39, Sunil Varghese wrote:
> Ah, it looks like the behavior is different when uninstalling/reinstalling
> the bundles instead of starting/stopping bundles.  Could you verify if this
> is expected and how best to handle the scenario for uninstall/reinstall?

Yes, that would probably be expected. If you uninstall, you should 
remember to do "refresh" after the uninstall (also after you update a 
bundle). If you don't then the uninstalled (or updated) bundles still 
leave old packages around that other bundles can be wired to. These 
packages will be incompatible with reinstalled bundles packages of the 
same name, which will cause you not to see services and/or service 
events since the bundles actually have different providers for the same 
package.

-> richard

> Thank you,
>
> regards,
> Sunil
>
> On Mon, Feb 18, 2013 at 2:27 PM, Sunil Varghese <op...@gmail.com> wrote:
>
>> Hi,
>>
>> I'm working through the Felix tutorial and I've been very happy with its
>> coverage.  When running example 6, I'm finding that the service event
>> listener only triggers on registration of the dictionary object in
>> example2b (French).  It does not trigger for the dictionary object in
>> example2 (English).
>>
>> The registration code is the same for both bundles:
>>          Hashtable<String, String> props = new Hashtable<String, String>();
>>          props.put("Language", "French");
>>          context.registerService(
>>              DictionaryService.class.getName(), new DictionaryImpl(),
>> props);
>>
>> The service listener is setup in example6 as
>>          m_context.addServiceListener(this,
>>                  "(&(objectClass=" + DictionaryService.class.getName() +
>> ")" +
>>                  "(Language=*))");
>>
>> I don't believe that this behavior is correct and would appreciate if you
>> would clarify this.  Thank you,
>>
>> regards,
>> Sunil
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Felix tutorial (beginner question)

Posted by Sunil Varghese <op...@gmail.com>.
Ah, it looks like the behavior is different when uninstalling/reinstalling
the bundles instead of starting/stopping bundles.  Could you verify if this
is expected and how best to handle the scenario for uninstall/reinstall?
Thank you,

regards,
Sunil

On Mon, Feb 18, 2013 at 2:27 PM, Sunil Varghese <op...@gmail.com> wrote:

> Hi,
>
> I'm working through the Felix tutorial and I've been very happy with its
> coverage.  When running example 6, I'm finding that the service event
> listener only triggers on registration of the dictionary object in
> example2b (French).  It does not trigger for the dictionary object in
> example2 (English).
>
> The registration code is the same for both bundles:
>         Hashtable<String, String> props = new Hashtable<String, String>();
>         props.put("Language", "French");
>         context.registerService(
>             DictionaryService.class.getName(), new DictionaryImpl(),
> props);
>
> The service listener is setup in example6 as
>         m_context.addServiceListener(this,
>                 "(&(objectClass=" + DictionaryService.class.getName() +
> ")" +
>                 "(Language=*))");
>
> I don't believe that this behavior is correct and would appreciate if you
> would clarify this.  Thank you,
>
> regards,
> Sunil
>