You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2010/12/23 19:20:45 UTC

[jira] Resolved: (FELIX-2712) [SCR] Add Gogo command support

     [ https://issues.apache.org/jira/browse/FELIX-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Felix Meschberger resolved FELIX-2712.
--------------------------------------

    Resolution: Fixed

Implemented the following Gogo commands in Rev. 1052345:

  scr:list -- list all components (or components of a single bundle)
  scr:info -- provide information for a component
  scr:config -- SCR bundle configuration
  scr:enable -- enable a component
  scr:disable -- disable a component

The Gogo command implementation uses the Java 5 Descriptor annotation to provide information about the commands and parameters. Thus compilation setup is now special:

 -- The Gogo command class is compiled with source/target 1.5
 -- The rest is compiled with default setup (source/target 1.3)

Therefore the bundle should perfectly deploy in a pre-Java 5 VM but without support for the Gogo shell. In a Java 5 or higher VM the Gogo shell commands are available as expected.

> [SCR] Add Gogo command support
> ------------------------------
>
>                 Key: FELIX-2712
>                 URL: https://issues.apache.org/jira/browse/FELIX-2712
>             Project: Felix
>          Issue Type: New Feature
>          Components: Declarative Services (SCR)
>    Affects Versions:  scr-1.6.0
>            Reporter: Richard S. Hall
>            Assignee: Felix Meschberger
>             Fix For: scr-1.6.2
>
>
> Currently, SCR only provides an "scr" command for the old shell. It should also include a Gogo command. A very simple approach would be to factor out the command implementation from the Command interface, to eliminate the dependency on the Shell package. This object would simply have a single method like public void scr(String[] args) that would do the current processing. For Gogo you'd just register this object directly as the command with some service properites, for Shell you'd wrap it in a Command.
> A better approach would be to look at the OBR command for Gogo. In it, all OBR subcommands (e.g., obr list) just become methods on the service object and accept the needed parameters. The "obr" command becomes the command scope (in the service properties), so you can do "obr:list" at the Gogo prompt or just "list" if there is no ambiguity. You could still wrap this object in a Command to be compatible with Shell.
> I'd recommend the second approach, since it allows you to leverage the Gogo annotations to provide decent help for the command.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Resolved: (FELIX-2712) [SCR] Add Gogo command support

Posted by "Richard S. Hall" <he...@ungoverned.org>.
Cool!

-> richard

On 12/23/10 13:20, Felix Meschberger (JIRA) wrote:
>       [ https://issues.apache.org/jira/browse/FELIX-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Felix Meschberger resolved FELIX-2712.
> --------------------------------------
>
>      Resolution: Fixed
>
> Implemented the following Gogo commands in Rev. 1052345:
>
>    scr:list -- list all components (or components of a single bundle)
>    scr:info -- provide information for a component
>    scr:config -- SCR bundle configuration
>    scr:enable -- enable a component
>    scr:disable -- disable a component
>
> The Gogo command implementation uses the Java 5 Descriptor annotation to provide information about the commands and parameters. Thus compilation setup is now special:
>
>   -- The Gogo command class is compiled with source/target 1.5
>   -- The rest is compiled with default setup (source/target 1.3)
>
> Therefore the bundle should perfectly deploy in a pre-Java 5 VM but without support for the Gogo shell. In a Java 5 or higher VM the Gogo shell commands are available as expected.
>
>> [SCR] Add Gogo command support
>> ------------------------------
>>
>>                  Key: FELIX-2712
>>                  URL: https://issues.apache.org/jira/browse/FELIX-2712
>>              Project: Felix
>>           Issue Type: New Feature
>>           Components: Declarative Services (SCR)
>>     Affects Versions:  scr-1.6.0
>>             Reporter: Richard S. Hall
>>             Assignee: Felix Meschberger
>>              Fix For: scr-1.6.2
>>
>>
>> Currently, SCR only provides an "scr" command for the old shell. It should also include a Gogo command. A very simple approach would be to factor out the command implementation from the Command interface, to eliminate the dependency on the Shell package. This object would simply have a single method like public void scr(String[] args) that would do the current processing. For Gogo you'd just register this object directly as the command with some service properites, for Shell you'd wrap it in a Command.
>> A better approach would be to look at the OBR command for Gogo. In it, all OBR subcommands (e.g., obr list) just become methods on the service object and accept the needed parameters. The "obr" command becomes the command scope (in the service properties), so you can do "obr:list" at the Gogo prompt or just "list" if there is no ambiguity. You could still wrap this object in a Command to be compatible with Shell.
>> I'd recommend the second approach, since it allows you to leverage the Gogo annotations to provide decent help for the command.