Hi again,
I realised I could get the bundle command via
addcommand context ${.context}
which I took from gosh_profile. Now the commands to setup access to Runtime
commands work well.
However, when I execute the maxMemory command, I get no response to the server.
I guess this is because the object is returned from the call, and yet my line
>>> Object result = commandSession.execute(command);
>>> String reply = out.toString() + err.toString();
doesn't include it.
I'm still interested in hearing other mechanisms of integrating with delivering
commands to Gogo as I feel like I'm missing out by not having that bundle
available, I don't have the 'echo' (which would help in this case) or 'type'
commands, for example.
Dan.
On 6 Mar 2014, at 12:19, Daniel McGreal wrote:
> Thanks Derek,
>
> If I add the shell bundle with -Dgogo.args=—no interactive, will the startup
> (e.g. gosh_profile) affect the commandSession I make to process server
> messages? If not, is there another way to achieve this? Does the Shell bundle
> put a CommandSession into the OSGi service registry, for example?
>
> Best, Dan.
>
> On 6 Mar 2014, at 12:11, Derek Baum wrote:
>
>> The gogo ‘bundle’ command, is not a specific command, it is actually a
>> direct call to the BundleContext.getBundle() method.
>>
>> You can determine this using the ‘type’ command:
>>
>> g! type -t bundle
>> Bundle org.apache.felix.framework.BundleContextImpl.getBundle()
>> Bundle org.apache.felix.framework.BundleContextImpl.getBundle(long)
>> Bundle org.apache.felix.framework.BundleContextImpl.getBundle(String)
>>
>>
>> All the methods are registered as commands by the gogo shell startup:
>> (gogo startup actually executes the gosh_profile script embedded within the
>> togo.shell bundle)
>>
>> # add methods on BundleContext object as commands
>> addcommand context ${.context}
>>
>>
>> You mentioned that you are not using the gogo.shell bundle as you do not
>> want interactive input:
>> You can also achieve this by setting the System property -Dgogo.args=—no
>> interactive
>>
>> —
>> Derek
>>
>>
>>
>>
>>
>>
>> On 6 Mar 2014, at 10:16, Dan <[email protected]> wrote:
>>
>>> Unfortunately, when I come to execute the first command on a deployment
>>> machine, I get:
>>>
>>> org.apache.felix.gogo.runtime.CommandNotFoundException: Command not found:
>>> bundle
>>>
>>> In production, the application runs without org.apache.felix.gogo.shell,
>>> and with my own bundle which looks like this:
>>>
>>> ByteArrayOutputStream out = new ByteArrayOutputStream();
>>> ByteArrayOutputStream err = new ByteArrayOutputStream();
>>> commandSession = commandProcessor.createSession(System.in, new
>>> PrintStream(out), new PrintStream(err));
>>>
>>> and calls
>>>
>>> private synchronized String executeCommand(String command) throws Exception
>>> {
>>> out.reset();
>>> err.reset();
>>> Object result = commandSession.execute(command);
>>> String reply = out.toString() + err.toString();
>>> return reply;
>>> }
>>>
>>> when commands are received from the server.
>>>
>>> Is there anything in this setup that would lead to the above error?
>>> (Something I'm missing from the gogo.shell bundle, for example?)
>>>
>>> On 6 Mar 2014, at 09:39, Dan wrote:
>>>
>>>> g! addcommand runtime ((bundle 0) loadClass java.lang.Runtime)
>>>> g! addcommand rt (runtime:getRuntime)
>>>> g! rt:maxMemory
>>>> 1256456192
>>>>
>>>> Thanks for the help, Dan.
>>>>
>>>> On 6 Mar 2014, at 09:15, Daniel McGreal wrote:
>>>>
>>>>> Success, thank you.
>>>>> Going to try and reach the runtime now, unless someone can provide a hint?
>>>>>
>>>>> I wish to call Runtime.maxMemory() for example
>>>>>
>>>>>
>>>>> On 5 Mar 2014, at 17:06, Richard S. Hall wrote:
>>>>>
>>>>>> g! addcommand system ((bundle 0) loadClass java.lang.System)
>>>>>
>>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]