Again, it just filter services with a command interface. So in case of
your double registration it doesn't filter. For the usage you need to
still use the -a switch as well. Then it should work.

regards,

Karl

On Wed, Apr 1, 2009 at 2:59 PM, Jacques-Olivier Goussard
<[email protected]> wrote:
> Thanks for the help.
> So, ok, now I can see my services beeing published with 'services -a'
> -> ps
> START LEVEL 1
>   ID   State         Level  Name
> [   0] [Active     ] [    0] System Bundle (1.4.0)
> [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.2)
> [   2] [Active     ] [    1] Jog Shell (1.0.0)
> [   3] [Active     ] [    1] Apache Felix Shell TUI (1.0.2)
> [   4] [Active     ] [    1] Apache Felix Remote Shell (1.0.2)
> -> services -a 2
>
> Jog Shell (2) provides:
> -----------------------
> objectClass = org.apache.felix.shell.ShellService,
> org.apache.felix.shell.Comman
> d
> service.id = 21
> service.ranking = 2147483647
>
> but why can't I see my shell being used by shell TUI ?
> -> services -u 3
>
> Apache Felix Shell TUI (3) uses:
> --------------------------------
>
> also, why do I have a different behavior when using a double registration
> (i.e. when I register my Command and
> my ShellSevrice implementation in two registerService calls) ?
> If I use the double registration, here's the output:
> START LEVEL 1
>   ID   State         Level  Name
> [   0] [Active     ] [    0] System Bundle (1.4.0)
> [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.2)
> [   2] [Active     ] [    1] Jog Shell (1.0.0)
> [   3] [Active     ] [    1] Apache Felix Shell TUI (1.0.2)
> [   4] [Active     ] [    1] Apache Felix Remote Shell (1.0.2)
> -> services -a 2
>
> Jog Shell (2) provides:
> -----------------------
> objectClass = org.apache.felix.shell.ShellService
> service.id = 21
> service.ranking = 2147483647
> ----
> objectClass = org.apache.felix.shell.Command
> service.id = 22
> service.ranking = 2147483647
> -> services -u 3
>
> Apache Felix Shell TUI (3) uses:
> --------------------------------
> objectClass = org.apache.felix.shell.ShellService
> service.id = 21
> service.ranking = 2147483647
>
>    /jog
>
>
> On Tue, Mar 31, 2009 at 8:39 PM, Karl Pauls <[email protected]> wrote:
>
>> Don't bother. You need to use the -a switch to see your services as in:
>>
>> -> services -a
>>
>> See my comment on the jira issue for more. Still, the shell.remote has a
>> bug.
>>
>> regards,
>>
>> Karl
>>
>> On Wed, Apr 1, 2009 at 2:07 AM, Jacques-Olivier Goussard
>> <[email protected]> wrote:
>> > Created JIRA issue Felix-1018 with the files.
>> > The remote shell has definitely a problem regarding multiple
>> ShellServices
>> > running (basically it will grab the latest one published,
>> > as far as I understood the code), but this doesn't explain the 'services'
>> > output I got. Could be my environment though, I'll download
>> > a fresh copy of felix tomorrow and test.
>> >
>> >             /jog
>> >
>> > On Tue, Mar 31, 2009 at 4:38 PM, Karl Pauls <[email protected]> wrote:
>> >
>> >> Well, form looking at the code I can say that shell.remote might have
>> >> an issue in regard to ShellService tracking. It is possible that it
>> >> might not pick your service. Please fill a JIRA issue against
>> >> shell.remote.
>> >>
>> >> I did test the services command and it seems to be working just fine
>> >> for me. I would need to see your code to figure out what is going on.
>> >> Again, please attach it to a JIRA or post it inline.
>> >>
>> >> regards,
>> >>
>> >> Karl
>> >>
>> >> On Tue, Mar 31, 2009 at 10:16 PM, Karl Pauls <[email protected]>
>> wrote:
>> >> > The mailing list doesn't allow attachments. Please create a JIRA issue
>> >> > and attach the files there.
>> >> >
>> >> > regards,
>> >> >
>> >> > Karl
>> >> >
>> >> > On Tue, Mar 31, 2009 at 10:06 PM, Jacques-Olivier Goussard
>> >> > <[email protected]> wrote:
>> >> >> Hi
>> >> >> I reproduces the pb with a very simplistic code. See attached
>> >> JogShell.java
>> >> >> and manifest. My manifest doesn't
>> >> >> export anything and simply import the felix shell stuff.
>> >> >> I start felix with:
>> >> >> felix.auto.start.1= \
>> >> >>  file:repository/org.apache.felix.shell-1.0.2.jar \
>> >> >>  file:repository/com.jog.felix.1.0.0.jar \
>> >> >>  file:repository/org.apache.felix.shell.tui-1.0.2.jar \
>> >> >>  file:repository/org.apache.felix.shell.remote-1.0.2.jar
>> >> >>
>> >> >> I get:
>> >> >> Welcome to Felix.
>> >> >> =================
>> >> >> DEBUG: WIRE: 1.0 -> org.ungoverned.osgi.service.shell -> 1.0
>> >> >> DEBUG: WIRE: 1.0 -> org.osgi.service.startlevel -> 0
>> >> >> DEBUG: WIRE: 1.0 -> org.apache.felix.shell -> 1.0
>> >> >> DEBUG: WIRE: 1.0 -> org.osgi.framework -> 0
>> >> >> DEBUG: WIRE: 1.0 -> org.osgi.service.packageadmin -> 0
>> >> >> DEBUG: WIRE: 2.0 -> org.apache.felix.shell -> 1.0
>> >> >> DEBUG: WIRE: 2.0 -> org.osgi.framework -> 0
>> >> >> DEBUG: WIRE: 3.0 -> org.apache.felix.shell -> 1.0
>> >> >> DEBUG: WIRE: 3.0 -> org.osgi.framework -> 0
>> >> >> DEBUG: WIRE: 4.0 -> org.apache.felix.shell -> 1.0
>> >> >> DEBUG: WIRE: 4.0 -> org.osgi.framework -> 0
>> >> >> -> switch
>> >> >> Felix shell ?true
>> >> >> -> ps
>> >> >> START LEVEL 1
>> >> >>    ID   State         Level  Name
>> >> >> [   0] [Active     ] [    0] System Bundle (1.4.0)
>> >> >> [   1] [Active     ] [    1] Apache Felix Shell Service (1.0.2)
>> >> >> [   2] [Active     ] [    1] Jog Shell (1.0.0)
>> >> >> [   3] [Active     ] [    1] Apache Felix Shell TUI (1.0.2)
>> >> >> [   4] [Active     ] [    1] Apache Felix Remote Shell (1.0.2)
>> >> >> -> services 2
>> >> >>
>> >> >> Jog Shell (2) provides:
>> >> >> -----------------------
>> >> >> ->
>> >> >>
>> >> >> So this states no services have been registered, though obviously
>> shell
>> >> TUI
>> >> >> finds my ShellService instance as the
>> >> >> 'switch' command shows.
>> >> >> -> services -u 3
>> >> >>
>> >> >> Apache Felix Shell TUI (3) uses:
>> >> >> --------------------------------
>> >> >> ->
>> >> >>
>> >> >> So shell TUI doesn't seem to even use the service.
>> >> >>
>> >> >> Looks like a bug in the 'services' command no ?
>> >> >>               /jog
>> >> >>
>> >> >> On Tue, Mar 31, 2009 at 9:51 AM, Jacques-Olivier Goussard
>> >> >> <[email protected]> wrote:
>> >> >>>
>> >> >>> Will do. I'll try to make a buindle that does only contain that
>> code.
>> >> >>> Do you have an explanation though on why the register in two steps
>> >> would
>> >> >>> lead to different results
>> >> >>> than register in one step ?
>> >> >>>                  /jog
>> >> >>>
>> >> >>> On Tue, Mar 31, 2009 at 9:34 AM, Karl Pauls <[email protected]>
>> >> wrote:
>> >> >>>>
>> >> >>>> Make sure your are importing what you are exporting. The framework
>> >> >>>> will filter services based on visibility of the classes. It sounds
>> >> >>>> like your bundle gets wired to a different version of the packages
>> >> >>>> (maybe because it is embedding its own version and not importing
>> them
>> >> >>>> or its only exporting). Maybe post your manifest files so that we
>> can
>> >> >>>> see whats going on (additionally, you could set the framework log
>> >> >>>> level to debug to see the wiring information) ...
>> >> >>>>
>> >> >>>> regards,
>> >> >>>>
>> >> >>>> Karl
>> >> >>>>
>> >> >>>> On Tue, Mar 31, 2009 at 3:27 PM, Jacques-Olivier Goussard
>> >> >>>> <[email protected]> wrote:
>> >> >>>> > Hi
>> >> >>>> > I'm seeing a strange behavior on felix 1.4 for
>> >> >>>> > BundleContext.registerService(String[], Object,Properties).
>> >> >>>> > I'm trying to install my own ShellService with this kind of code:
>> >> >>>> >        // Grab the default shell
>> >> >>>> >        mFelixShell =
>> >> >>>> > mContext.getServiceReference(ShellService.class.getName());
>> >> >>>> >        // Register ourself as the highest ranking service, so
>> that
>> >> we
>> >> >>>> > bypass Felix shell.
>> >> >>>> >        Properties props = new Properties();
>> >> >>>> >        props.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
>> >> >>>> >        // Register as both a Command and a ShellService so that
>> the
>> >> >>>> > Felix
>> >> >>>> > shell gets a command to switch to this one
>> >> >>>> >        mShellReg = mContext.registerService(new String[] {
>> >> >>>> > ShellService.class.getName(),Command.class.getName() }, this,
>> >> props);
>> >> >>>> > And my autostart is
>> >> >>>> >
>> >> >>>> > felix.auto.start.1= \
>> >> >>>> >  file:repository/org.apache.felix.shell-1.0.2.jar \
>> >> >>>> >  file:repository/myownshell.jar \
>> >> >>>> >  file:repository/org.apache.felix.shell.tui-1.0.2.jar \
>> >> >>>> >  file:repository/org.apache.felix.shell.remote-1.0.2.jar
>> >> >>>> >
>> >> >>>> > so that TUI and remote get my shell service.
>> >> >>>> >
>> >> >>>> > If I do this I see that:
>> >> >>>> > - 'services' on my install bundle does NOT list the Command or
>> >> >>>> > ShellService
>> >> >>>> > class. So my own shell doesn't seem to
>> >> >>>> > be listed as exported.
>> >> >>>> > - The Shell TUI module properly gets my own shell implementation
>> >> >>>> > (though
>> >> >>>> > it's not listed as exported !)
>> >> >>>> > - The remote shell TUI doesn't get it - looking at the code, it's
>> >> using
>> >> >>>> > a
>> >> >>>> > listener that seem to assume only one shell is ever registered.
>> >> >>>> > The 'services -u' command on the remote shell shows that only the
>> >> felix
>> >> >>>> > shell service is used.
>> >> >>>> >
>> >> >>>> > Now, even stranger, if I register my services in two steps,
>> using:
>> >> >>>> >        mShellReg = mContext.registerService(new String[] {
>> >> >>>> > ShellService.class.getName()}, this, props);
>> >> >>>> >        mShellReg = mContext.registerService(new String[] {
>> >> >>>> > Command.class.getName()}, this, props);
>> >> >>>> >
>> >> >>>> > Then both ShellTUI and Remote Shell now get my shell service. The
>> >> >>>> > 'services'
>> >> >>>> > command works for the ShellService - the
>> >> >>>> > Command service is still not listed as exported by my own bundle
>> nor
>> >> >>>> > used by
>> >> >>>> > the felix shell bundle - but the command is
>> >> >>>> > there ! I.e. it does work, so the shell bundle must have found
>> it...
>> >> >>>> >
>> >> >>>> > Any ideas ?
>> >> >>>> > Thanks
>> >> >>>> >                 /jog
>> >> >>>> >
>> >> >>>>
>> >> >>>>
>> >> >>>>
>> >> >>>> --
>> >> >>>> Karl Pauls
>> >> >>>> [email protected]
>> >> >>>>
>> >> >>>>
>> ---------------------------------------------------------------------
>> >> >>>> To unsubscribe, e-mail: [email protected]
>> >> >>>> For additional commands, e-mail: [email protected]
>> >> >>>>
>> >> >>>
>> >> >>
>> >> >>
>> >> >>
>> >> >> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: [email protected]
>> >> >> For additional commands, e-mail: [email protected]
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Karl Pauls
>> >> > [email protected]
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Karl Pauls
>> >> [email protected]
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [email protected]
>> >> For additional commands, e-mail: [email protected]
>> >>
>> >>
>> >
>>
>>
>>
>> --
>> Karl Pauls
>> [email protected]
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>



-- 
Karl Pauls
[email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to