On 5/27/10 6:18 PM, Marcel Offermans wrote:
On May 27, 2010, at 20:49 , Richard S. Hall wrote:

So, we are gearing up to release the 3.0 version of the framework. As part of 
this release, we're going to include Gogo as the default shell in the framework 
binary distribution. Gogo requires Java 5 or later, but don't worry, the 
framework still targets lesser JREs. :-)
Do we require Java 5 to compile the code or to run the shell?

Both. The framework only needs Java5 to compile.

I've uploaded a snapshot of the distribution in tar.gz and zip if anyone wants 
to play with it:

    
https://repository.apache.org/content/groups/snapshots-group/org/apache/felix/org.apache.felix.main.distribution/2.1.0-SNAPSHOT/

Word of warning, the "ps" command has been renamed to "lb" (i.e., list bundles)...type 
"help" to see available commands.
I played a bit with the new shell. Works nicely. Some error messages are a bit 
cryptic, for example:

g! inspect
gogo: IllegalArgumentException: Cannot coerce inspect[] to any of [(String, 
String, Bundle[])]

The first part of the response "gogo: IllegalArgumentException: " is way too 
technical and does not really add much value in my opinion.
The second part too is a bit cryptic. Yes, I'm not providing the right arguments, but 
this message does not really help me to come up with a better attempt next time. I know 
that typing "help inspect" gives me what I want, but a message like this would 
be better:

You did not provide any arguments, command needs:
    String (package | bundle | fragment | service),
    String (capability | requirement),
    Bundle[] target bundles

Actually, for methods with the proper Gogo @Parameter annotations, it would definitely be possible to print a better usage message...we can open a JIRA issue for that, but probably won't get to it for this release.

Also, the help command itself could add a summary for each command, now it 
prints:

g! help
felix:bundlelevel
felix:cd
felix:frameworklevel
[snip...]

Better would be:
felix:bundlelevel - set bundle start level or initial bundle start level
felix:cd - change current directory
felix:frameworklevel - set framework active start level


Actually, the old shell currently only prints the commands and not a summary too. I had toyed with your idea, but there were two issues with it:

  1. It makes the "help" output look really disorganized, especially
     when some lines are too long.
  2. Some commands are implemented as overloaded methods with slightly
     different behavior so you'd end up with some commands being in the
     list twice with different summaries.

For these reasons, I decided against it for now. Thanks for the feedback.

-> richard

Greetings, Marcel

Reply via email to