On 20 April 2018 at 15:55, <ggreg...@apache.org> wrote: > Repository: commons-lang > Updated Branches: > refs/heads/master 8e3ec1722 -> efba54d35 > > > [LANG-1393] Add API SystemUtils.String getEnvironmentVariable(final > String name, final String defaultValue). > > Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo > Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/efba54d3 > Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/efba54d3 > Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/efba54d3 > > Branch: refs/heads/master > Commit: efba54d35fa094de5e580b200a8607bfc7bd5a7a > Parents: 8e3ec17 > Author: Gary Gregory <garydgreg...@gmail.com> > Authored: Fri Apr 20 08:55:32 2018 -0600 > Committer: Gary Gregory <garydgreg...@gmail.com> > Committed: Fri Apr 20 08:55:32 2018 -0600 > > ---------------------------------------------------------------------- > src/changes/changes.xml | 1 + > .../org/apache/commons/lang3/SystemUtils.java | 27 ++++++++++++++++++++ > .../apache/commons/lang3/SystemUtilsTest.java | 18 +++++++++++++ > 3 files changed, 46 insertions(+) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/commons-lang/blob/efba54d3/src/changes/changes.xml > ---------------------------------------------------------------------- > diff --git a/src/changes/changes.xml b/src/changes/changes.xml > index a4cbbf3..4ec1984 100644 > --- a/src/changes/changes.xml > +++ b/src/changes/changes.xml > @@ -59,6 +59,7 @@ The <action> type attribute can be add,update,fix,remove. > <action issue="LANG-1372" type="add" dev="pschumacher" due-to="Sérgio > Ozaki">Add ToStringSummary annotation</action> > <action issue="LANG-1356" type="add" dev="pschumacher" due-to="Yathos > UG">Add bypass option for classes to recursive and reflective > EqualsBuilder</action> > <action issue="LANG-1391" type="add" dev="ggregory" due-to="Sauro > Matulli, Oleg Chubaryov">Improve Javadoc for > StringUtils.isAnyEmpty(null)</action> > + <action issue="LANG-1393" type="add" dev="ggregory" due-to="Gary > Gregory">Add API SystemUtils.String getEnvironmentVariable(final String name, > final String defaultValue)</action> > </release> > > <release version="3.7" date="2017-11-04" description="New features and bug > fixes. Requires Java 7, supports Java 8, 9, 10."> > > http://git-wip-us.apache.org/repos/asf/commons-lang/blob/efba54d3/src/main/java/org/apache/commons/lang3/SystemUtils.java > ---------------------------------------------------------------------- > diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java > b/src/main/java/org/apache/commons/lang3/SystemUtils.java > index f91628a..2289d5d 100644 > --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java > +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java > @@ -1607,6 +1607,33 @@ public class SystemUtils { > > /** > * <p> > + * Gets an environment variable, defaulting to {@code defaultValue} if > the variable cannot be read. > + * </p> > + * <p> > + * If a {@code SecurityException} is caught, the return value is {@code > defaultValue} and a message is written to > + * {@code System.err}. > + * </p> > + * > + * @param name > + * the environment variable name > + * @param defaultValue > + * the default value > + * @return the environment variable value or {@code defaultValue} if a > security problem occurs > + * @since 3.7 > + */ > + public static String getEnvironmentVariable(final String name, final > String defaultValue) { > + try { > + final String value = System.getenv(name); > + return value == null ? defaultValue : value; > + } catch (final SecurityException ex) { > + // we are not allowed to look at this property > + System.err.println("Caught a SecurityException reading the > environment variable '" + name + "'.");
-1 Library code should not write to stderr or stdout > + return defaultValue; > + } > + } > + > + /** > + * <p> > * Gets the user directory as a {@code File}. > * </p> > * > > http://git-wip-us.apache.org/repos/asf/commons-lang/blob/efba54d3/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java > ---------------------------------------------------------------------- > diff --git a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java > b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java > index 77e6078..e89e20c 100644 > --- a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java > +++ b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java > @@ -40,6 +40,7 @@ import java.lang.reflect.Constructor; > import java.lang.reflect.Modifier; > import java.util.Locale; > > +import org.junit.Assert; > import org.junit.Test; > > /** > @@ -60,6 +61,23 @@ public class SystemUtilsTest { > } > > @Test > + public void testGetEnvironmentVariableAbsent() { > + final String name = > "THIS_ENV_VAR_SHOULD_NOT_EXIST_FOR_THIS_TEST_TO_PASS"; > + final String expected = System.getenv(name); > + Assert.assertNull(expected); > + final String value = SystemUtils.getEnvironmentVariable(name, > "DEFAULT"); > + assertEquals("DEFAULT", value); > + } > + > + @Test > + public void testGetEnvironmentVariablePresent() { > + final String name = "PATH"; > + final String expected = System.getenv(name); > + final String value = SystemUtils.getEnvironmentVariable(name, null); > + assertEquals(expected, value); > + } > + > + @Test > public void testGetHostName() { > final String hostName = SystemUtils.getHostName(); > final String expected = SystemUtils.IS_OS_WINDOWS ? > System.getenv("COMPUTERNAME") : System.getenv("HOSTNAME"); > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org