commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <ggreg...@seagullsw.com>
Subject [lang][proposal] SystemUtils property out of sync problem; add se t methods.
Date Tue, 10 Feb 2004 19:54:35 GMT
Hello,

Context: I am writing some unit tests for our product that require system
properties (like java.ext.dirs) to be temporarily fiddled with. Now my code
looks like this:

    public void testJavaExtDirDoesNotExist() {
        String saveJavaExtDirs = SystemUtils.JAVA_EXT_DIRS;
        try {
            String testJavaExtDirs = "...";
            System.setProperty("java.ext.dirs", testJavaExtDirs);
            // The real test starts here...
        } finally {
            System.setProperty("java.ext.dirs", saveJavaExtDirs);
        }
    }

Issue #1: Add SystemUtils.setX?
--------

Instead of:

System.setProperty("java.ext.dirs", testJavaExtDirs);

I wonder if this would be better:

SystemUtils.setJavaExtDirs(testJavaExtDirs);

Seems nicer, yes?

Issue #2: SystemUtils out of sync.
--------

As soon you do:

System.setProperty("java.ext.dirs", testJavaExtDirs);

Then SystemUtils.JAVA_EXT_DIRS lies.

Proposal 2a:
At least, the Javadoc has to be updated to something nasty like: "The value
of this constant is set when this class is first loaded."

Proposal 2b:
Add SystemUtils.getJavaExtDirs() and other APIs which do not cache and make
JAVA_EXT_DIRS and others use such APIs.

Proposal 3b: 
Add constants for the property names like: JAVA_EXT_DIRS_KEY =
"java.ext.dirs".

?
Gary


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message