You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Matt Kurjanowicz <mk...@cc.gatech.edu> on 2003/09/04 07:20:10 UTC
Beginning Twiddle Docs
Hi there,
In my efforts to learn the twiddle system for a JMX console, I've put
some introductory docs up on the wiki about creating and running Twiddle
Commands. This is *very* basic, and I'm sure will be out of date soon
(as the Twiddle guys get the CLI up and running.), but it's a start.
I will continue to work on little code snippets and documentation as I
learn the system (from an outsider's perspective). If you are actively
developing what I'm writing about, _please_ contribute because I'm sure
that I'll make gross mistakes.
Also, as I work on JMX Console CLI, I'll get stuff like this up about
JMX and how it relates to/works with Geronimo.
To see them, go to the wiki at:
http://nagoya.apache.org/wiki/apachewiki.cgi?ApacheJ2EE/Twiddle
Thanks again,
Matt
Re: Beginning Twiddle Docs
Posted by Jason Dillon <ja...@coredevelopers.net>.
Also, ya don't need to be in the bin dir to run the twiddle[.bat]
scripts... they should do the right thing if you are in a separate
directory... and if they don't file a bug ;-)
--jason
On Thursday, September 4, 2003, at 12:20 PM, Matt Kurjanowicz wrote:
> Hi there,
> In my efforts to learn the twiddle system for a JMX console, I've put
> some introductory docs up on the wiki about creating and running
> Twiddle
> Commands. This is *very* basic, and I'm sure will be out of date soon
> (as the Twiddle guys get the CLI up and running.), but it's a start.
>
> I will continue to work on little code snippets and documentation as I
> learn the system (from an outsider's perspective). If you are actively
> developing what I'm writing about, _please_ contribute because I'm sure
> that I'll make gross mistakes.
>
> Also, as I work on JMX Console CLI, I'll get stuff like this up about
> JMX and how it relates to/works with Geronimo.
>
> To see them, go to the wiki at:
> http://nagoya.apache.org/wiki/apachewiki.cgi?ApacheJ2EE/Twiddle
>
> Thanks again,
> Matt
>
Re: Beginning Twiddle Docs
Posted by Jason Dillon <ja...@coredevelopers.net>.
Hi. I am "the twiddle guys" ;-)
Just looked over the docs in the wiki and have two comments.
First, use Twiddle as the entry point for running commands. The
easiest way yo add a new command is to define the command in
etc/twiddle.conf, or if they are geronimo specific in
etc/twiddle/geronimo.conf
Then you can simply (not well formed java):
<snip>
import org.apache.geronimo.twiddle.Twiddle;
import org.apache.geronimo.twiddle.config.ConfigurationReader;
// Initialize Twiddle
Twiddle twiddle = new Twiddle();
ConfigurationReader reader = new ConfigurationReader();
twiddle.configure(reader.read(new URL(Twiddle.getHomeURL(),
"etc/twiddle.conf")));
// Execute a command as defined in twiddle.conf (or included files)
int result = twiddle.execute("some/command", new String[] { "my",
"args" });
</snip>
or if you like you can bind the commands by hand:
<snip>
import org.apache.geronimo.twiddle.config.CommandConfig;
import org.apache.geronimo.twiddle.command.CommandInfo;
// ...
Twiddle twiddle = new Twiddle();
CommandConfig config = new CommandConfig();
config.setName("some/command");
config.setCode("some.class.SomeCommand");
CommandInfo info = new CommandInfo(config, twiddle.getClassWorld());
twiddle.getCommandContainer().addCommandInfo(info);
// Execute the command
int result = twiddle.execute("some/command", new String[] { "my",
"args" });
</snip>
Note that this process will be stream-lined in the future as I add the
interactive console bits and refactor how ClassWorlds is used.
But overall the point is to use Twiddle as the facade to the system and
not invoke commands directly.
Second, in the example command, you System.out.println()... which is
bad. You should use the streams passed into the command context using
getWriter(). Todo this ya need to invoke through Twiddle as it will
setup the CommandContext, though I must admit that this needs to be
improved.
The reason for this is to make it hook up to an interactive console,
which may be running io over a socket and not system. Also it will
allow for command pipelining and so on.
Plz do not use System.{in|out|err} from commands.
I will update the wiki to this effect, but wanted to reply to your
message.
Also, if people are going to be configuring commands directly then
should probably add a CommandBuilder to streamline all of this. I was
going on the assumption that the config files would be used to handle
these details, but could just be might lack of insight into other uses
;-)
I am almost finished with some cruft removal and build system
modifications and will be getting back to twiddle very soon.
Glad to see people are going to make use of it ;-)
--jason
On Thursday, September 4, 2003, at 12:20 PM, Matt Kurjanowicz wrote:
> Hi there,
> In my efforts to learn the twiddle system for a JMX console, I've put
> some introductory docs up on the wiki about creating and running
> Twiddle
> Commands. This is *very* basic, and I'm sure will be out of date soon
> (as the Twiddle guys get the CLI up and running.), but it's a start.
>
> I will continue to work on little code snippets and documentation as I
> learn the system (from an outsider's perspective). If you are actively
> developing what I'm writing about, _please_ contribute because I'm sure
> that I'll make gross mistakes.
>
> Also, as I work on JMX Console CLI, I'll get stuff like this up about
> JMX and how it relates to/works with Geronimo.
>
> To see them, go to the wiki at:
> http://nagoya.apache.org/wiki/apachewiki.cgi?ApacheJ2EE/Twiddle
>
> Thanks again,
> Matt
>