r.reimann [
http://community.jboss.org/people/r.reimann] created the discussion
"CLI non-interactive mode improvements"
To view the discussion, visit:
http://community.jboss.org/message/645317#645317
--------------------------------------------------------------
First of all i would like to thank the contributing developers for the great command line
support in AS7.
I'm currently evaluating the options to provide a configuration mechanism for our
projects with the follwing goals in mind:
* encapsulation of environment settings: since most of the developer and operations folks
don't know the CLI they should be able to provide the settings (IPs, ports,
DB-Connection settings) for the target system in a separate properties file without
searching/editing the CLI scripts.
* repeatable: In case of a missconfiguration (e.g. wrong IP or DB-Password provided) the
script execution should be repeatable.
* portability: the scripts should work for developer machines (windows, macosx) as well as
the test, qa and production environments (linux)
* zero dependencies: since the environments are heterogenous (see above) and especially
test, qa and production environments are very restricted (e.g. no curl) there should no
need for additional tools or scripting languages.
* maintainability: The ability to use line breaks to improve the readability for long
commands would be a great help. This is already adressed by
https://issues.jboss.org/browse/AS7-2640 https://issues.jboss.org/browse/AS7-2640
Since i assume that these are advanced but common requirements it would be great if the
the CLI would provide two new features to achieve these goals. Below are my suggestions
for the corresponding improvements. I would appreciate to get feedback on my suggestions
and also concerning the chances of beeing implemented in a (not so far) future release.
*1. Encapsulation of environment settings*
*
*
The CLI should support interpolation of properties provided by properties files and system
properties (analogue to the properties support in the domain.sh/standalone.sh scripts)
For example:
./jboss-admin.sh --connect --file=some/location/my-script.cli
--properties=/some/location/environment.properties
environment.properties
db_url=jdbc:h2:mem:test
db_user=sa
db_password=sa
my-script.cli
/profile=default/subsystem=datasources/data-source=h2:add(connection-url="${db_url}",driver-name=h2,enabled=true,jndi-name="java:jboss/datasources/ExampleDS",pool-name="H2DS",user-name="${db_user}",password="${db_password}")
*2. Repeatable script executions*
*
*
To allow for repeatable script executions conditional logic is required to prevent
"Duplicate resource" failures:
exists = test if the resource to be (re-)added already exists
if (exists) remove resource
add resource
The conditional logic currently requires a wrapper script which violates either the
portability goal (a shell script is sufficient but not portable) or the zero dependencies
goal (e.g. requires cygwin to exec the shell script under windows or another portable
scripting language).
Adding a force or override attribute to the add operation (which recreates the resources
transparently if necessary) would remove the need for conditional logic and additional
wrapper scripts/dependencies.
For example:
/profile=default/subsystem=logging/logger="com.arjuna":add(level=TRACE,
force=true)
Since the CLI is already portable and has no further dependencies these two new features
(plus AS7-2640) would be sufficent to provide a solution for all the initially described
goals. It would be great if these enhancements could make their way into AS7.1.0.Final
Regards
Robert
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/645317#645317]
Start a new discussion in JBoss AS 7 Development at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]