Not really. I'm just thinking from an end-user perspective and how to use
commands associated with a specfiic set of features.  For example, if we
want to use camel-specific commands, what would the most intuitive way be? 
In previous posts, there were references to "context", which I (likely
misread) thought referred to a given set of shell-commands associated with a
given feature. Ioannis referred to this is switching contexts, which also
may be a bit misleading.

So, to revise my statement, I'm not really referring to any specific
"context" rather I'm referring to how we provide access to feature-specific
commands.  Currently, using the web commands as an example, when you install
the "web" feature, you get access to all of the web-commands.  However, you
simply type web:something to use them.

In the above proposal, we're saying, hey why not have them notify karaf what
command-set (which feature) we want to use, and then allow the usage of
those commands.

Karaf@root> web:list

Becomes:

karaf@root> ctx:changeContext web
karaf@root> #web list
karaf@root> ctx.changeContext root

This way, if a bundle-vendor decides they want to use a feature-specific set
of commands for "foo", we have a way for users to access those commands.

But for clarity's sake, perhaps "shell" is better than "ctx"./

karaf@root> shell:changeCommandSet web
karaf@root> #web list
karaf@root> shell:changeCommandSet root

Is that clear as mud?  Again, this is just how I understand the proposal.
Feel free to correct me, throw darts, bricks, etc...


James Strachan-2 wrote:
> 
> You seem to be arguing about 2 completely separate things; how do we
> switch between command shells and secondly how should we define which
> CamelContext object from a potential list of things the various camel
> commands operate on.
> 
> In terms of switching shells, I don't see why the shell name can't be
> used as a command & proper error reporting used if folks tab complete
> or mistype a command.  Worst case "shell camel" would be fine I think.
> 
> In terms of defining the camel context ID used for the camel commands;
> sure that'd be either a variable in the shell, an argument/option to
> the commands or some kind of camel:setcontext command. I wasn't
> proposing typing in the camelContext ID from JMX and have that start a
> sub shell if thats what you thought I meant.
> 
> 
> On 17 May 2011 15:17, mikevan <[email protected]> wrote:
>> I think its still misleading. What do we do if Camel's feature repository
>> has
>> a "camel" feature defined?  While we can ensure that camel doesn't define
>> a
>> "camel" feature, this wont' always be the case. Also, how do we handle
>> the
>> event where a user types in a command that isn't defined, do we always
>> assume that command is a context?  This will make it difficult to debug.
>>  If
>> a user fat-fingers a command, and they get an error stating that
>> "command"
>> doesn't exist as a context, it will not tell them what the actual issue
>> is
>> (the command they typed doesn't exist).  For these reasons, I suggest we
>> make switching contexts more obvious.
>>
>> karaf@root>  ctx:switchContext camel
>> karaf@root> #camel> route:list
>> karaf@root> #camel> ctx:switchContext root
>> karaf@root> la
>>
>> By creating a command that specifically switches the context, we are
>> making
>> it clear to the system user exactly what they are doing, and we can
>> provide
>> errors based on the switching of a context.
>>
>>
>>
>> James Strachan-2 wrote:
>>>
>>> Maybe you need to define a variable for the camel context ID that the
>>> camel shell uses when listing stuff?
>>>
>>> On 17 May 2011 09:53, Claus Ibsen <[email protected]> wrote:
>>>> On Tue, May 17, 2011 at 10:32 AM, James Strachan
>>>> <[email protected]> wrote:
>>>>> To feel more unixy, why not just use the name of the shell as the
>>>>> command?
>>>>>
>>>>> karaf@root> camel
>>>>> karaf@root> #camel> route:list
>>>>> karaf@root> #camel> route:stop
>>>>> karaf@root> exit
>>>>> karaf@root> ace
>>>>> karaf@root> #ace> distribution:list
>>>>> karaf@root> exit
>>>>>
>>>>> Or failing that "shell" would seem a good choice
>>>>>
>>>>> karaf@root> shell camel
>>>>> karaf@root> #camel> route:list
>>>>> karaf@root> #camel> route:stop
>>>>> karaf@root> exit
>>>>> karaf@root> shell ace
>>>>> karaf@root> #ace> distribution:list
>>>>> karaf@root> exit
>>>>>
>>>>>
>>>>
>>>> So if I have 3 camel apps in Karaf.
>>>>
>>>> And they each have an unique camel id. Lets call them
>>>>
>>>> wicketCamel
>>>> fooCamel
>>>> barCamel
>>>>
>>>> So what would that shell command exactly be?
>>>>
>>>> shell wicketCamel
>>>> shell camel
>>>> shell camel wicketCamel
>>>>
>>>> I guess you can either go into
>>>> - camel mode without having picked a specific camel context to use
>>>> - camel mode having picked a specific context
>>>>
>>>> Or is that overkill
>>>>
>>>> shell camel -> camel mode without picking a specific camel context
>>>> shell camel wicketCamel -> to pick the wicketCamel app
>>>>
>>>> So in the latter case, when I do a
>>>> route-list
>>>>
>>>> It only shows the routes from wicketCamel
>>>>
>>>>
>>>>
>>>>
>>>>> On 17 May 2011 09:22, Ioannis Canellos <[email protected]>
>>>>> wrote:
>>>>>> +1 for the idea.
>>>>>>
>>>>>> I would like to propose however to context switch using an other
>>>>>> command
>>>>>> instead of "cd" because "cd" will cause confusion. I would propose
>>>>>> ctx
>>>>>> instead.
>>>>>>
>>>>>> --
>>>>>> *Ioannis Canellos*
>>>>>> *
>>>>>>  http://iocanel.blogspot.com
>>>>>>
>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>> Apache ServiceMix <http://servicemix.apache.org/>  Committer
>>>>>> *
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> James
>>>>> -------
>>>>> FuseSource
>>>>> Email: [email protected]
>>>>> Web: http://fusesource.com
>>>>> Twitter: jstrachan, fusenews
>>>>> Blog: http://macstrac.blogspot.com/
>>>>>
>>>>> Connect at CamelOne May 24-26
>>>>> The Open Source Integration Conference
>>>>> http://camelone.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> -----------------
>>>> FuseSource
>>>> Email: [email protected]
>>>> Web: http://fusesource.com
>>>> CamelOne 2011: http://fusesource.com/camelone2011/
>>>> Twitter: davsclaus, fusenews
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>
>>>
>>>
>>>
>>> --
>>> James
>>> -------
>>> FuseSource
>>> Email: [email protected]
>>> Web: http://fusesource.com
>>> Twitter: jstrachan, fusenews
>>> Blog: http://macstrac.blogspot.com/
>>>
>>> Connect at CamelOne May 24-26
>>> The Open Source Integration Conference
>>> http://camelone.com/
>>>
>>
>>
>> -----
>> Mike Van (aka karafman)
>> Karaf Team (Contributor)
>> --
>> View this message in context:
>> http://karaf.922171.n3.nabble.com/PROPOSAL-Shell-commands-context-support-tp2951532p2952678.html
>> Sent from the Karaf - Dev mailing list archive at Nabble.com.
>>
> 
> 
> 
> -- 
> James
> -------
> FuseSource
> Email: [email protected]
> Web: http://fusesource.com
> Twitter: jstrachan, fusenews
> Blog: http://macstrac.blogspot.com/
> 
> Connect at CamelOne May 24-26
> The Open Source Integration Conference
> http://camelone.com/
> 


-----
Mike Van (aka karafman)
Karaf Team (Contributor)
--
View this message in context: 
http://karaf.922171.n3.nabble.com/PROPOSAL-Shell-commands-context-support-tp2951532p2953988.html
Sent from the Karaf - Dev mailing list archive at Nabble.com.

Reply via email to