You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Samuel Cox <cr...@gmail.com> on 2011/05/14 03:10:41 UTC

Show karaf prompt after bundle println

Hi,

Is it possible to get the prompt back after some bundle code does a
System.out.println()?

I have some beans that need to print stuff to the Karaf console.  I
can't figure out how to get the prompt back without the user hitting
enter.

Many thanks.

Re: Show karaf prompt after bundle println

Posted by Samuel Cox <cr...@gmail.com>.
Thanks for both of the suggestions, but my initial impression is I'd
have to hold off on investigating those now.  Currently, I don't have
any investment in Karaf-specific stuff other than the commands, which
are a normal extension point.

That said, my last question...  Is there any way to automatically run
a command when a bundle loads?

On Tue, May 17, 2011 at 8:29 AM, Guillaume Nodet <gn...@gmail.com> wrote:
> As I explained the prompt only deals with commands.  If you print
> anything on the console and if you want the prompt to be displayed
> again. I think the only way would be to create a shell session, and
> then print the prompt that can be retrieved by calling
> Console#getPrompt(), see
> http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java?revision=1096717&view=markup
>
> I don't really see any other way for now.
>
> Maybe another way would be for you to hack the etc/shell.init.script
> and perform you diagnostics there ? The script is executed between the
> welcome lines and the first prompt...
>
>
> On Tue, May 17, 2011 at 15:13, Samuel Cox <cr...@gmail.com> wrote:
>> Shameless bump to give this one more chance;)  I've been reading the
>> documentation on custom commands, but nothing is jumping out...
>>
>> Just to be clear on what I need.  I need to automatically run
>> diagnostics after all my OSGi bundles have loaded.  The results need
>> to be displayed to the user in Karaf's console.
>>
>> The running of the diagnostics is currently be triggered by Spring
>> bean loading (using an init-method).  In the past, it was in a bundle
>> activator.  In neither case, does the karaf prompt show up unless the
>> user hits the Enter key.
>>
>> It's not the end of the world if I can't get this to work, but it would be nice.
>>
>> On Sat, May 14, 2011 at 8:10 AM, Samuel Cox <cr...@gmail.com> wrote:
>>> I'm not executing a command.  We do have our own commands, and they
>>> work fine.  This is just a bean in some bundle that displays some
>>> diagnostics on startup.  If there is a way to execute a command
>>> automatically when a bundle starts, I could print the diagnostics
>>> using that.  I couldn't find any info on doing that.
>>>
>>> Thanks for the help btw!
>>>
>>> On Sat, May 14, 2011 at 7:36 AM, Guillaume Nodet <gn...@gmail.com> wrote:
>>>> The prompt is displayed when the execution of a command is finished.
>>>> If you're still executing the command, the prompt won't be dipslayed,
>>>> but you can retrieve it from the shell's session variables and display
>>>> it your self if you need.
>>>>
>>>> On Sat, May 14, 2011 at 14:32, Samuel Cox <cr...@gmail.com> wrote:
>>>>> I tried that and it didn't work.  I will say that my bean doing the
>>>>> output is written in Scala.  I'm using println(""), which I think is
>>>>> equivalent to Java's System.out.println("").
>>>>>
>>>>> On Sat, May 14, 2011 at 12:38 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>>>>>> Hi Samuel,
>>>>>>
>>>>>> It should be the case.
>>>>>>
>>>>>> Karaf shell intercept the std and err output stream.
>>>>>> It means that after a System.out.println(), the Karaf prompt should be
>>>>>> display.
>>>>>> It's the case in the commands. For instance, osgi:list iterates on the
>>>>>> bundles and simply display the bundles attribute using System.out.println().
>>>>>>
>>>>>> Try to add a System.out.println("") at the end of your bundle output, it
>>>>>> should display the prompt just after your bundle output.
>>>>>>
>>>>>> Regards
>>>>>> JB
>>>>>>
>>>>>> On 05/14/2011 03:10 AM, Samuel Cox wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Is it possible to get the prompt back after some bundle code does a
>>>>>>> System.out.println()?
>>>>>>>
>>>>>>> I have some beans that need to print stuff to the Karaf console.  I
>>>>>>> can't figure out how to get the prompt back without the user hitting
>>>>>>> enter.
>>>>>>>
>>>>>>> Many thanks.
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Cheers,
>>>> Guillaume Nodet
>>>> ------------------------
>>>> Blog: http://gnodet.blogspot.com/
>>>> ------------------------
>>>> Open Source SOA
>>>> http://fusesource.com
>>>>
>>>> Connect at CamelOne May 24-26
>>>> The Open Source Integration Conference
>>>> http://camelone.com/
>>>>
>>>
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>
> Connect at CamelOne May 24-26
> The Open Source Integration Conference
> http://camelone.com/
>

Re: Show karaf prompt after bundle println

Posted by Guillaume Nodet <gn...@gmail.com>.
As I explained the prompt only deals with commands.  If you print
anything on the console and if you want the prompt to be displayed
again. I think the only way would be to create a shell session, and
then print the prompt that can be retrieved by calling
Console#getPrompt(), see
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java?revision=1096717&view=markup

I don't really see any other way for now.

Maybe another way would be for you to hack the etc/shell.init.script
and perform you diagnostics there ? The script is executed between the
welcome lines and the first prompt...


On Tue, May 17, 2011 at 15:13, Samuel Cox <cr...@gmail.com> wrote:
> Shameless bump to give this one more chance;)  I've been reading the
> documentation on custom commands, but nothing is jumping out...
>
> Just to be clear on what I need.  I need to automatically run
> diagnostics after all my OSGi bundles have loaded.  The results need
> to be displayed to the user in Karaf's console.
>
> The running of the diagnostics is currently be triggered by Spring
> bean loading (using an init-method).  In the past, it was in a bundle
> activator.  In neither case, does the karaf prompt show up unless the
> user hits the Enter key.
>
> It's not the end of the world if I can't get this to work, but it would be nice.
>
> On Sat, May 14, 2011 at 8:10 AM, Samuel Cox <cr...@gmail.com> wrote:
>> I'm not executing a command.  We do have our own commands, and they
>> work fine.  This is just a bean in some bundle that displays some
>> diagnostics on startup.  If there is a way to execute a command
>> automatically when a bundle starts, I could print the diagnostics
>> using that.  I couldn't find any info on doing that.
>>
>> Thanks for the help btw!
>>
>> On Sat, May 14, 2011 at 7:36 AM, Guillaume Nodet <gn...@gmail.com> wrote:
>>> The prompt is displayed when the execution of a command is finished.
>>> If you're still executing the command, the prompt won't be dipslayed,
>>> but you can retrieve it from the shell's session variables and display
>>> it your self if you need.
>>>
>>> On Sat, May 14, 2011 at 14:32, Samuel Cox <cr...@gmail.com> wrote:
>>>> I tried that and it didn't work.  I will say that my bean doing the
>>>> output is written in Scala.  I'm using println(""), which I think is
>>>> equivalent to Java's System.out.println("").
>>>>
>>>> On Sat, May 14, 2011 at 12:38 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>>>>> Hi Samuel,
>>>>>
>>>>> It should be the case.
>>>>>
>>>>> Karaf shell intercept the std and err output stream.
>>>>> It means that after a System.out.println(), the Karaf prompt should be
>>>>> display.
>>>>> It's the case in the commands. For instance, osgi:list iterates on the
>>>>> bundles and simply display the bundles attribute using System.out.println().
>>>>>
>>>>> Try to add a System.out.println("") at the end of your bundle output, it
>>>>> should display the prompt just after your bundle output.
>>>>>
>>>>> Regards
>>>>> JB
>>>>>
>>>>> On 05/14/2011 03:10 AM, Samuel Cox wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Is it possible to get the prompt back after some bundle code does a
>>>>>> System.out.println()?
>>>>>>
>>>>>> I have some beans that need to print stuff to the Karaf console.  I
>>>>>> can't figure out how to get the prompt back without the user hitting
>>>>>> enter.
>>>>>>
>>>>>> Many thanks.
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Cheers,
>>> Guillaume Nodet
>>> ------------------------
>>> Blog: http://gnodet.blogspot.com/
>>> ------------------------
>>> Open Source SOA
>>> http://fusesource.com
>>>
>>> Connect at CamelOne May 24-26
>>> The Open Source Integration Conference
>>> http://camelone.com/
>>>
>>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Connect at CamelOne May 24-26
The Open Source Integration Conference
http://camelone.com/

Re: Show karaf prompt after bundle println

Posted by Samuel Cox <cr...@gmail.com>.
Shameless bump to give this one more chance;)  I've been reading the
documentation on custom commands, but nothing is jumping out...

Just to be clear on what I need.  I need to automatically run
diagnostics after all my OSGi bundles have loaded.  The results need
to be displayed to the user in Karaf's console.

The running of the diagnostics is currently be triggered by Spring
bean loading (using an init-method).  In the past, it was in a bundle
activator.  In neither case, does the karaf prompt show up unless the
user hits the Enter key.

It's not the end of the world if I can't get this to work, but it would be nice.

On Sat, May 14, 2011 at 8:10 AM, Samuel Cox <cr...@gmail.com> wrote:
> I'm not executing a command.  We do have our own commands, and they
> work fine.  This is just a bean in some bundle that displays some
> diagnostics on startup.  If there is a way to execute a command
> automatically when a bundle starts, I could print the diagnostics
> using that.  I couldn't find any info on doing that.
>
> Thanks for the help btw!
>
> On Sat, May 14, 2011 at 7:36 AM, Guillaume Nodet <gn...@gmail.com> wrote:
>> The prompt is displayed when the execution of a command is finished.
>> If you're still executing the command, the prompt won't be dipslayed,
>> but you can retrieve it from the shell's session variables and display
>> it your self if you need.
>>
>> On Sat, May 14, 2011 at 14:32, Samuel Cox <cr...@gmail.com> wrote:
>>> I tried that and it didn't work.  I will say that my bean doing the
>>> output is written in Scala.  I'm using println(""), which I think is
>>> equivalent to Java's System.out.println("").
>>>
>>> On Sat, May 14, 2011 at 12:38 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>>>> Hi Samuel,
>>>>
>>>> It should be the case.
>>>>
>>>> Karaf shell intercept the std and err output stream.
>>>> It means that after a System.out.println(), the Karaf prompt should be
>>>> display.
>>>> It's the case in the commands. For instance, osgi:list iterates on the
>>>> bundles and simply display the bundles attribute using System.out.println().
>>>>
>>>> Try to add a System.out.println("") at the end of your bundle output, it
>>>> should display the prompt just after your bundle output.
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 05/14/2011 03:10 AM, Samuel Cox wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Is it possible to get the prompt back after some bundle code does a
>>>>> System.out.println()?
>>>>>
>>>>> I have some beans that need to print stuff to the Karaf console.  I
>>>>> can't figure out how to get the prompt back without the user hitting
>>>>> enter.
>>>>>
>>>>> Many thanks.
>>>>
>>>
>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>> ------------------------
>> Blog: http://gnodet.blogspot.com/
>> ------------------------
>> Open Source SOA
>> http://fusesource.com
>>
>> Connect at CamelOne May 24-26
>> The Open Source Integration Conference
>> http://camelone.com/
>>
>

Re: Show karaf prompt after bundle println

Posted by Samuel Cox <cr...@gmail.com>.
I'm not executing a command.  We do have our own commands, and they
work fine.  This is just a bean in some bundle that displays some
diagnostics on startup.  If there is a way to execute a command
automatically when a bundle starts, I could print the diagnostics
using that.  I couldn't find any info on doing that.

Thanks for the help btw!

On Sat, May 14, 2011 at 7:36 AM, Guillaume Nodet <gn...@gmail.com> wrote:
> The prompt is displayed when the execution of a command is finished.
> If you're still executing the command, the prompt won't be dipslayed,
> but you can retrieve it from the shell's session variables and display
> it your self if you need.
>
> On Sat, May 14, 2011 at 14:32, Samuel Cox <cr...@gmail.com> wrote:
>> I tried that and it didn't work.  I will say that my bean doing the
>> output is written in Scala.  I'm using println(""), which I think is
>> equivalent to Java's System.out.println("").
>>
>> On Sat, May 14, 2011 at 12:38 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>>> Hi Samuel,
>>>
>>> It should be the case.
>>>
>>> Karaf shell intercept the std and err output stream.
>>> It means that after a System.out.println(), the Karaf prompt should be
>>> display.
>>> It's the case in the commands. For instance, osgi:list iterates on the
>>> bundles and simply display the bundles attribute using System.out.println().
>>>
>>> Try to add a System.out.println("") at the end of your bundle output, it
>>> should display the prompt just after your bundle output.
>>>
>>> Regards
>>> JB
>>>
>>> On 05/14/2011 03:10 AM, Samuel Cox wrote:
>>>>
>>>> Hi,
>>>>
>>>> Is it possible to get the prompt back after some bundle code does a
>>>> System.out.println()?
>>>>
>>>> I have some beans that need to print stuff to the Karaf console.  I
>>>> can't figure out how to get the prompt back without the user hitting
>>>> enter.
>>>>
>>>> Many thanks.
>>>
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>
> Connect at CamelOne May 24-26
> The Open Source Integration Conference
> http://camelone.com/
>

Re: Show karaf prompt after bundle println

Posted by Guillaume Nodet <gn...@gmail.com>.
The prompt is displayed when the execution of a command is finished.
If you're still executing the command, the prompt won't be dipslayed,
but you can retrieve it from the shell's session variables and display
it your self if you need.

On Sat, May 14, 2011 at 14:32, Samuel Cox <cr...@gmail.com> wrote:
> I tried that and it didn't work.  I will say that my bean doing the
> output is written in Scala.  I'm using println(""), which I think is
> equivalent to Java's System.out.println("").
>
> On Sat, May 14, 2011 at 12:38 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>> Hi Samuel,
>>
>> It should be the case.
>>
>> Karaf shell intercept the std and err output stream.
>> It means that after a System.out.println(), the Karaf prompt should be
>> display.
>> It's the case in the commands. For instance, osgi:list iterates on the
>> bundles and simply display the bundles attribute using System.out.println().
>>
>> Try to add a System.out.println("") at the end of your bundle output, it
>> should display the prompt just after your bundle output.
>>
>> Regards
>> JB
>>
>> On 05/14/2011 03:10 AM, Samuel Cox wrote:
>>>
>>> Hi,
>>>
>>> Is it possible to get the prompt back after some bundle code does a
>>> System.out.println()?
>>>
>>> I have some beans that need to print stuff to the Karaf console.  I
>>> can't figure out how to get the prompt back without the user hitting
>>> enter.
>>>
>>> Many thanks.
>>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Connect at CamelOne May 24-26
The Open Source Integration Conference
http://camelone.com/

Re: Show karaf prompt after bundle println

Posted by Samuel Cox <cr...@gmail.com>.
I tried that and it didn't work.  I will say that my bean doing the
output is written in Scala.  I'm using println(""), which I think is
equivalent to Java's System.out.println("").

On Sat, May 14, 2011 at 12:38 AM, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
> Hi Samuel,
>
> It should be the case.
>
> Karaf shell intercept the std and err output stream.
> It means that after a System.out.println(), the Karaf prompt should be
> display.
> It's the case in the commands. For instance, osgi:list iterates on the
> bundles and simply display the bundles attribute using System.out.println().
>
> Try to add a System.out.println("") at the end of your bundle output, it
> should display the prompt just after your bundle output.
>
> Regards
> JB
>
> On 05/14/2011 03:10 AM, Samuel Cox wrote:
>>
>> Hi,
>>
>> Is it possible to get the prompt back after some bundle code does a
>> System.out.println()?
>>
>> I have some beans that need to print stuff to the Karaf console.  I
>> can't figure out how to get the prompt back without the user hitting
>> enter.
>>
>> Many thanks.
>

Re: Show karaf prompt after bundle println

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Samuel,

It should be the case.

Karaf shell intercept the std and err output stream.
It means that after a System.out.println(), the Karaf prompt should be 
display.
It's the case in the commands. For instance, osgi:list iterates on the 
bundles and simply display the bundles attribute using System.out.println().

Try to add a System.out.println("") at the end of your bundle output, it 
should display the prompt just after your bundle output.

Regards
JB

On 05/14/2011 03:10 AM, Samuel Cox wrote:
> Hi,
>
> Is it possible to get the prompt back after some bundle code does a
> System.out.println()?
>
> I have some beans that need to print stuff to the Karaf console.  I
> can't figure out how to get the prompt back without the user hitting
> enter.
>
> Many thanks.