diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java index 66482c91b6e..db1bc2ea62d 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,9 +30,9 @@ import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; /** - * Base class for classes that are setting up a - * {@code java.util.concurrent.ExecutorService} - * (typically a {@link java.util.concurrent.ThreadPoolExecutor}). + * Base class for setting up a {@link java.util.concurrent.ExecutorService} + * (typically a {@link java.util.concurrent.ThreadPoolExecutor} or + * {@link java.util.concurrent.ScheduledThreadPoolExecutor}). * Defines common configuration settings and common lifecycle handling. * * @author Juergen Hoeller @@ -40,6 +40,7 @@ import org.springframework.beans.factory.InitializingBean; * @see java.util.concurrent.ExecutorService * @see java.util.concurrent.Executors * @see java.util.concurrent.ThreadPoolExecutor + * @see java.util.concurrent.ScheduledThreadPoolExecutor */ @SuppressWarnings("serial") public abstract class ExecutorConfigurationSupport extends CustomizableThreadFactory @@ -162,7 +163,7 @@ public abstract class ExecutorConfigurationSupport extends CustomizableThreadFac */ public void initialize() { if (logger.isInfoEnabled()) { - logger.info("Initializing ExecutorService " + (this.beanName != null ? " '" + this.beanName + "'" : "")); + logger.info("Initializing ExecutorService" + (this.beanName != null ? " '" + this.beanName + "'" : "")); } if (!this.threadNamePrefixSet && this.beanName != null) { setThreadNamePrefix(this.beanName + "-"); diff --git a/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java index 1ffb98bdb1a..5c748552c48 100644 --- a/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java +++ b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java @@ -377,6 +377,31 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { return this.propertySources; } + @Override + @SuppressWarnings({"unchecked", "rawtypes"}) + public Map getSystemProperties() { + try { + return (Map) System.getProperties(); + } + catch (AccessControlException ex) { + return (Map) new ReadOnlySystemAttributesMap() { + @Override + protected String getSystemAttribute(String attributeName) { + try { + return System.getProperty(attributeName); + } + catch (AccessControlException ex) { + if (logger.isInfoEnabled()) { + logger.info("Caught AccessControlException when accessing system property '" + + attributeName + "'; its value will be returned [null]. Reason: " + ex.getMessage()); + } + return null; + } + } + }; + } + } + @Override @SuppressWarnings({"unchecked", "rawtypes"}) public Map getSystemEnvironment() { @@ -420,31 +445,6 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { return SpringProperties.getFlag(IGNORE_GETENV_PROPERTY_NAME); } - @Override - @SuppressWarnings({"unchecked", "rawtypes"}) - public Map getSystemProperties() { - try { - return (Map) System.getProperties(); - } - catch (AccessControlException ex) { - return (Map) new ReadOnlySystemAttributesMap() { - @Override - protected String getSystemAttribute(String attributeName) { - try { - return System.getProperty(attributeName); - } - catch (AccessControlException ex) { - if (logger.isInfoEnabled()) { - logger.info("Caught AccessControlException when accessing system property '" + - attributeName + "'; its value will be returned [null]. Reason: " + ex.getMessage()); - } - return null; - } - } - }; - } - } - @Override public void merge(ConfigurableEnvironment parent) { for (PropertySource ps : parent.getPropertySources()) { diff --git a/spring-core/src/main/java/org/springframework/core/env/ConfigurableEnvironment.java b/spring-core/src/main/java/org/springframework/core/env/ConfigurableEnvironment.java index d2b20052ecb..1d875f2cd04 100644 --- a/spring-core/src/main/java/org/springframework/core/env/ConfigurableEnvironment.java +++ b/spring-core/src/main/java/org/springframework/core/env/ConfigurableEnvironment.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ import java.util.Map; *
  * ConfigurableEnvironment environment = new StandardEnvironment();
  * MutablePropertySources propertySources = environment.getPropertySources();
- * Map myMap = new HashMap();
+ * Map<String, String> myMap = new HashMap<>();
  * myMap.put("xyz", "myValue");
  * propertySources.addFirst(new MapPropertySource("MY_MAP", myMap));
  * 
@@ -78,26 +78,26 @@ public interface ConfigurableEnvironment extends Environment, ConfigurableProper *

Any existing active profiles will be replaced with the given arguments; call * with zero arguments to clear the current set of active profiles. Use * {@link #addActiveProfile} to add a profile while preserving the existing set. + * @throws IllegalArgumentException if any profile is null, empty or whitespace-only * @see #addActiveProfile * @see #setDefaultProfiles * @see org.springframework.context.annotation.Profile * @see AbstractEnvironment#ACTIVE_PROFILES_PROPERTY_NAME - * @throws IllegalArgumentException if any profile is null, empty or whitespace-only */ void setActiveProfiles(String... profiles); /** * Add a profile to the current set of active profiles. - * @see #setActiveProfiles * @throws IllegalArgumentException if the profile is null, empty or whitespace-only + * @see #setActiveProfiles */ void addActiveProfile(String profile); /** * Specify the set of profiles to be made active by default if no other profiles * are explicitly made active through {@link #setActiveProfiles}. - * @see AbstractEnvironment#DEFAULT_PROFILES_PROPERTY_NAME * @throws IllegalArgumentException if any profile is null, empty or whitespace-only + * @see AbstractEnvironment#DEFAULT_PROFILES_PROPERTY_NAME */ void setDefaultProfiles(String... profiles); @@ -119,34 +119,34 @@ public interface ConfigurableEnvironment extends Environment, ConfigurableProper MutablePropertySources getPropertySources(); /** - * Return the value of {@link System#getenv()} if allowed by the current + * Return the value of {@link System#getProperties()} if allowed by the current * {@link SecurityManager}, otherwise return a map implementation that will attempt - * to access individual keys using calls to {@link System#getenv(String)}. - *

Note that most {@link Environment} implementations will include this system - * environment map as a default {@link PropertySource} to be searched. Therefore, it - * is recommended that this method not be used directly unless bypassing other - * property sources is expressly intended. + * to access individual keys using calls to {@link System#getProperty(String)}. + *

Note that most {@code Environment} implementations will include this system + * properties map as a default {@link PropertySource} to be searched. Therefore, it is + * recommended that this method not be used directly unless bypassing other property + * sources is expressly intended. *

Calls to {@link Map#get(Object)} on the Map returned will never throw * {@link IllegalAccessException}; in cases where the SecurityManager forbids access * to a property, {@code null} will be returned and an INFO-level log message will be * issued noting the exception. */ - Map getSystemEnvironment(); + Map getSystemProperties(); /** - * Return the value of {@link System#getProperties()} if allowed by the current + * Return the value of {@link System#getenv()} if allowed by the current * {@link SecurityManager}, otherwise return a map implementation that will attempt - * to access individual keys using calls to {@link System#getProperty(String)}. - *

Note that most {@code Environment} implementations will include this system - * properties map as a default {@link PropertySource} to be searched. Therefore, it is - * recommended that this method not be used directly unless bypassing other property - * sources is expressly intended. + * to access individual keys using calls to {@link System#getenv(String)}. + *

Note that most {@link Environment} implementations will include this system + * environment map as a default {@link PropertySource} to be searched. Therefore, it + * is recommended that this method not be used directly unless bypassing other + * property sources is expressly intended. *

Calls to {@link Map#get(Object)} on the Map returned will never throw * {@link IllegalAccessException}; in cases where the SecurityManager forbids access * to a property, {@code null} will be returned and an INFO-level log message will be * issued noting the exception. */ - Map getSystemProperties(); + Map getSystemEnvironment(); /** * Append the given parent environment's active profiles, default profiles and