osdir.com

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lang] [LANG-1393] Add API SystemUtils.String getEnvironmentVariable(final String name, final String defaultValue).


On 20 April 2018 at 15:55,  <ggregory@xxxxxxxxxx> 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 <garydgregory@xxxxxxxxx>
> Authored: Fri Apr 20 08:55:32 2018 -0600
> Committer: Gary Gregory <garydgregory@xxxxxxxxx>
> 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-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: dev-help@xxxxxxxxxxxxxxxxxx