Hi,
At least some of the inconsistencies that you observe are the expected
(and documented) behavior for these subcommands.
According to the asadmin(1M)
<
http://docs.oracle.com/cd/E18930_01/html/821-2433/asadmin-1m.html#scrolltoc>
man page, the colon must be escaped if it is part of a property or a
Java Virtual Machine option. As the colon in the set command is not part
of a property, I do not believe that the colon in the drive ID should be
escaped.
The asadmin(1M) man page also states that on Windows systems in single
command mode, the backslash character does not require an escape character.
My experiments with the set command are consistent with these
observations. No escape characters seem to be required in a Windows path
if the command is run in single mode on Windows:
C:\>asadmin set
configs.config.pmdconfig.java-config.native-library-path-prefix=C:\glassfish3\glassfish
configs.config.pmdconfig.java-config.native-library-path-prefix=C:\glassfish3\glassfish
Command set executed successfully.
C:\>asadmin get
configs.config.pmdconfig.java-config.native-library-path-prefix
configs.config.pmdconfig.java-config.native-library-path-prefix=C:\glassfish3\glassfish
Command get executed successfully.
If I try to escape the colon and backslash characters, the escape
characters are part of the attribute value that is set:
C:\>asadmin set
configs.config.pmdconfig.java-config.native-library-path-prefix=C\:\\glassfish3\\glassfish
configs.config.pmdconfig.java-config.native-library-path-prefix=C\:\\glassfish3\\glassfish
Command set executed successfully.
C:\>asadmin get
configs.config.pmdconfig.java-config.native-library-path-prefix
configs.config.pmdconfig.java-config.native-library-path-prefix=C\:\\glassfish3\\glassfish
Command get executed successfully.
However, with create-system-property, it seems that the colon and
backslash characters must be escaped, even on Windows systems in single
mode:
C:\>asadmin create-system-properties --target pmdconfig
mydir=C\:\glassfish\glassfish3
Command create-system-properties executed successfully.
C:\>asadmin create-system-properties --target pmdconfig
yourdir=C\:\\glassfish\\glassfish3
Command create-system-properties executed successfully.
C:\>asadmin list-system-properties pmdconfig
The target pmdconfig contains following 2 system properties
mydir=C:glassfishglassfish3
yourdir=C:\glassfish\glassfish3
Command list-system-properties executed successfully.
This behavior contradicts the statement in the asadmin(1M) man page that
on Windows systems in single command mode, the backslash character does
not require an escape character. I'll follow up with the admin team to
see if an issue is required against asadmin, create-system-properties or
their man pages.
Instead of escaping the colon and backslash characters individually, you
can enclose the entire path in single quote (') characters:
C:\>asadmin create-system-properties --target pmdconfig
ourdir='C:\glassfish3\glassfish'
Command create-system-properties executed successfully.
C:\>asadmin list-system-properties pmdconfig
The target pmdconfig contains following 3 system properties
mydir=C:glassfishglassfish3
yourdir=C:\glassfish\glassfish3
ourdir=C:\glassfish3\glassfish
Command list-system-properties executed successfully.
Hope this helps.
Regards,
-Paul Davies
On 12/20/2011 5:34 AM, Bernhard Thalmayr wrote:
> Hi experts,
>
> somehow it seems that the handling of backslashes is different for the
> different asadmin commands.
>
> Escaping a backslash using the 'create-system-properties does not seem
> to work, but escaping a backslash using the 'set' command works as
> expected (paths look correct using the console)
>
>
> set
> <config-name>.java-config.native-library-path-prefix=C\:\\<some-dir>\\<some-subdir>
>
> vs.
>
> create-system-properties --target <some-config>
> <SOME-VAR>=C\:\\<some-dir>\\<some-subdir>
>
> Any pointers avaialble?
>
> TIA,
> Bernhard
>
> --
> IT-Consulting Bernhard Thalmayr
> - Painstaking Minds -
> 83620 Vagen (Munich area)
> Germany