I'd like to give a status update on what I've done so far, collect some
feedback and get a sense of direction for the roadmap.
So, so far it's a primitive thing. There is a script jboss-admin.sh(bat)
under the JBOSS_HOME/bin. It starts a cli as a module (I found it easier
this way).
First thing to do is to connect to the server. It's done with
/connect [host]:[port]
Default host is localhost, default port is 9999.
BTW, for the list of supported commands type /help. Besides /connection
and /help there are /quit and /prefix.
Anything that doesn't start with '/' is considered an operation request.
Operation requests are currently following the format:
[node-type=node-name [, node-type=node-name]*] : operation-name
([name=value [, name=value]*])
e.g.
profile=production,subsystem=threads,bounded-queue-thread-pool=pool1:write-core-threads(count=0,
per-cpu=20)
Whitespaces between separators are insignificant.
If the address part is not specified then the ':' before the operation
name is optional.
If the operation has no arguments then the brackets '()' are optional.
So, if we are at the root, just 'read-resource' will work.
The result of the operation for now is logged by invoking toString() on
it, so it's formatted as on the wiki.
About the /prefix command (it has an alias '/to'). It's an analogue of
the 'cd'. I.e. It specifies a node path prefix for an operation request
before it gets executed. E.g.
/to subsystem=logging
read-resource
will be equivalent to subsystem=logging:read-resource executed from the
root.
It's also possible to end the prefix on the node type, e.g.
/to subsystem
logging:read-resource
will be equivalent to the above.
/to ~ - means go to the root.
'..' - go to the parent node.
.type - go to the node type of the current node.
/prefix (or /to) w/o arguments will print the current prefix value. BTW,
the prefix is not verified to be a valid one (except from the syntax
point of view). If the prefix is wrong the operations will fail, of course.
That's about it for now. So, we talked a bit today with Emanuel and Max
about it. To improve usability we thought of adding:
- some sort of autocompletion (for the commands, node types/names,
operations);
- having higher level management commands on top of the operation
requests, to avoid the verbose syntax of the operation requests for some
common things like deploy/undeploy, add a datasource, etc.
- use the jline for the input (currently it's BufferedReader.readLine()).
Any other ideas, suggestions?
BTW, it's currently in my detyped2 branch.
Thanks,
Alexey