On 16 June 2011 18:51, Mike Veksler <[email protected]> wrote: > > > Thanks for the info on the "e" and "type" commands. I did not see them > documented anywhere did you dig in the code to uncover theme? >
There is a brief overview of the RFC here http://felix.apache.org/site/rfc-147-overview.html This shows the 'e' closure. You can discover other commands using 'help'. g! help install install - install bundle using URLs scope: felix parameters: String[] target URLs Not all commands use annotations to provide help: g! help type type scope: gogo parameters: CommandSession String[] but they may provide the more traditional --help support: g! type --help type - show command type Usage: type [OPTIONS] [name[:]] -a --all show all matches -? --help show help -q --quiet don't print anything, just return status -s --scope=NAME list all commands in named scope -t --types show full java type names and some "commands" are just raw methods, not specifically written to be commands: g! help bundles g! type bundles bundles is Bundle[] context:bundles() g! type -t bundles Bundle[] org.apache.felix.framework.BundleContextImpl.getBundles() Derek > > > > On Thu, Jun 16, 2011 at 2:13 AM, Derek Baum <[email protected]> > wrote: > > > Hmmm this seems to be a limitation of the iPojo @ServiceProperty > > annotation. > > > > You don't actually need the gogo help command to test your example. > > > > another command which will show the existence of your search command is > > 'type': > > > > g! type search > > > > search is Set<Book> book:search(String, String, String, String) > > search is Set<Book> book:search(String, String, String, int, int) > > > > You should be able to invoke it directly: > > > > g! search args ... > > > > Derek > > > > > > > > > > On 16 June 2011 09:58, Mike Veksler <[email protected]> wrote: > > > > > I tried registing FUNCTIONS however the annotation expects String value > > and > > > not String array. > > > > > > On Thu, Jun 16, 2011 at 1:55 AM, Derek Baum <[email protected]> > > > wrote: > > > > > > > This is a bug in the gogo help command. > > > > > > > > Services proving commands can be registered with > > > > @ServiceProperty(name = "osgi.command.function", functions) > > > > > > > > where functions is either String or String[]. > > > > > > > > The gogo help command does not take account of this being a String > > rather > > > > than String[]. > > > > > > > > The quick fix for now is to register FUNCTIONS rather than > > FUNCTIONS_STR. > > > > > > > > I'll raise an issue to fix the gogo help command. > > > > > > > > Derek > > > > > > > > > > > > On 16 June 2011 09:46, Mike Veksler <[email protected]> wrote: > > > > > > > > > Here is the stack trace: > > > > > g! e > > > > > java.lang.ClassCastException: java.lang.String cannot be cast to > > > > > [Ljava.lang.String; > > > > > at > > > org.apache.felix.gogo.command.Basic.getCommands(Basic.java:384) > > > > > at org.apache.felix.gogo.command.Basic.help(Basic.java:211) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown > Source) > > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > > Source) > > > > > at java.lang.reflect.Method.invoke(Unknown Source) > > > > > at > > > > > > org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136) > > > > > at > > > > > > > > > org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) > > > > > at > > > > > org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469) > > > > > at > > > > > > > > > org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395) > > > > > at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) > > > > > at > > > org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) > > > > > at > > > org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.jav > > > > > a:89) > > > > > at org.apache.felix.gogo.shell.Console.run(Console.java:62) > > > > > at org.apache.felix.gogo.shell.Shell.console(Shell.java:203) > > > > > at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown > Source) > > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > > Source) > > > > > at java.lang.reflect.Method.invoke(Unknown Source) > > > > > at > > > > > > org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136) > > > > > at > > > > > > > > > org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) > > > > > at > > > > > org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469) > > > > > at > > > > > > > > > org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395) > > > > > at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) > > > > > at > > > org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) > > > > > at > > > org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.jav > > > > > a:89) > > > > > at > > > > > org.apache.felix.shell.remote.Shell.startGogoShell(Shell.java:108) > > > > > at org.apache.felix.shell.remote.Shell.run(Shell.java:81) > > > > > at java.lang.Thread.run(Unknown Source) > > > > > g! >

