/** * Get a {@link LogFile} from the given Spring {@link Environment}. * @param propertyResolver the {@link PropertyResolver} used to obtain the logging * properties * @return a {@link LogFile} or {@code null} if the environment didn't contain any * suitable properties */ public static LogFile get(PropertyResolver propertyResolver) { String file = propertyResolver.getProperty(FILE_PROPERTY); String path = propertyResolver.getProperty(PATH_PROPERTY); if (StringUtils.hasLength(file) || StringUtils.hasLength(path)) { return new LogFile(file, path); } return null; }
private void setSystemProperty(PropertyResolver resolver, String systemPropertyName, String propertyName) { setSystemProperty(systemPropertyName, resolver.getProperty("logging." + propertyName)); }
@Test public void getProperty_doesNotCache_addNewKeyPostConstruction() { HashMap<String, Object> map = new HashMap<>(); MutablePropertySources propertySources = new MutablePropertySources(); propertySources.addFirst(new MapPropertySource("testProperties", map)); PropertyResolver propertyResolver = new PropertySourcesPropertyResolver(propertySources); assertThat(propertyResolver.getProperty("foo"), equalTo(null)); map.put("foo", "42"); assertThat(propertyResolver.getProperty("foo"), equalTo("42")); }
@Test public void getProperty_doesNotCache_replaceExistingKeyPostConstruction() { String key = "foo"; String value1 = "bar"; String value2 = "biz"; HashMap<String, Object> map = new HashMap<>(); map.put(key, value1); // before construction MutablePropertySources propertySources = new MutablePropertySources(); propertySources.addFirst(new MapPropertySource("testProperties", map)); PropertyResolver propertyResolver = new PropertySourcesPropertyResolver(propertySources); assertThat(propertyResolver.getProperty(key), equalTo(value1)); map.put(key, value2); // after construction and first resolution assertThat(propertyResolver.getProperty(key), equalTo(value2)); }
private void setRollingPolicy(RollingFileAppender<ILoggingEvent> appender, LogbackConfigurator config, String logFile) { SizeAndTimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new SizeAndTimeBasedRollingPolicy<>(); rollingPolicy.setFileNamePattern(logFile + ".%d{yyyy-MM-dd}.%i.gz"); setMaxFileSize(rollingPolicy, this.patterns.getProperty("logging.file.max-size", MAX_FILE_SIZE)); rollingPolicy.setMaxHistory(this.patterns.getProperty("logging.file.max-history", Integer.class, CoreConstants.UNBOUND_HISTORY)); appender.setRollingPolicy(rollingPolicy); rollingPolicy.setParent(appender); config.start(rollingPolicy); }
@Test public void getProperty_propertySourceSearchOrderIsFIFO() { MutablePropertySources sources = new MutablePropertySources(); PropertyResolver resolver = new PropertySourcesPropertyResolver(sources); sources.addFirst(new MockPropertySource("ps1").withProperty("pName", "ps1Value")); assertThat(resolver.getProperty("pName"), equalTo("ps1Value")); sources.addFirst(new MockPropertySource("ps2").withProperty("pName", "ps2Value")); assertThat(resolver.getProperty("pName"), equalTo("ps2Value")); sources.addFirst(new MockPropertySource("ps3").withProperty("pName", "ps3Value")); assertThat(resolver.getProperty("pName"), equalTo("ps3Value")); }
private Appender<ILoggingEvent> consoleAppender(LogbackConfigurator config) { ConsoleAppender<ILoggingEvent> appender = new ConsoleAppender<>(); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); String logPattern = this.patterns.getProperty("logging.pattern.console", CONSOLE_LOG_PATTERN); encoder.setPattern(OptionHelper.substVars(logPattern, config.getContext())); config.start(encoder); appender.setEncoder(encoder); config.appender("CONSOLE", appender); return appender; }
private Appender<ILoggingEvent> fileAppender(LogbackConfigurator config, String logFile) { RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>(); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); String logPattern = this.patterns.getProperty("logging.pattern.file", FILE_LOG_PATTERN); encoder.setPattern(OptionHelper.substVars(logPattern, config.getContext())); appender.setEncoder(encoder); config.start(encoder); appender.setFile(logFile); setRollingPolicy(appender, config, logFile); config.appender("FILE", appender); return appender; }
public static String getDefaultInstanceId(PropertyResolver resolver, boolean includeHostname) { String vcapInstanceId = resolver.getProperty("vcap.application.instance_id"); if (StringUtils.hasText(vcapInstanceId)) { return vcapInstanceId; } String hostname = null; if (includeHostname) { hostname = resolver.getProperty("spring.cloud.client.hostname"); } String appName = resolver.getProperty("spring.application.name"); String namePart = combineParts(hostname, SEPARATOR, appName); String indexPart = resolver.getProperty("spring.application.instance_id", resolver.getProperty("server.port")); return combineParts(namePart, SEPARATOR, indexPart); }
@Override public boolean isTemplateAvailable(String view, Environment environment, ClassLoader classLoader, ResourceLoader resourceLoader) { if (ClassUtils.isPresent("com.mitchellbosecke.pebble.PebbleEngine", classLoader)) { PropertyResolver resolver = new RelaxedPropertyResolver(environment, "pebble."); String prefix = resolver.getProperty("prefix", PebbleProperties.DEFAULT_PREFIX); String suffix = resolver.getProperty("suffix", PebbleProperties.DEFAULT_SUFFIX); return resourceLoader.getResource(prefix + view + suffix).exists(); } return false; }
@Override public String getExperimental(String name) { if (this.propertyResolver != null) { return this.propertyResolver.getProperty(PREFIX + ".experimental." + name, String.class, null); } return null; }
@Override public String getExperimental(String name) { if (this.propertyResolver != null) { return this.propertyResolver.getProperty(PREFIX + ".experimental." + name, String.class, null); } return null; }
@Override public <T> T getProperty(String key, Class<T> targetType) { return delegate.getProperty(key, targetType); }
@Override public <T> T getProperty(String key, Class<T> targetType, T defaultValue) { return delegate.getProperty(key, targetType, defaultValue); }
@Override public String getMessage(String key) { return propertyResolver.getProperty(key); }
default Optional<String> getProperty(final PropertyResolver propertyResolver, final String key) { final Optional<String> result; if (propertyResolver != null) { final String property = propertyResolver.getProperty(key); result = Optional.ofNullable(property); } else { result = Optional.empty(); } return result; }
@Override public boolean isTemplateAvailable(String view, Environment environment, ClassLoader classLoader, ResourceLoader resourceLoader) { if (ClassUtils.isPresent("com.mitchellbosecke.pebble.PebbleEngine", classLoader)) { PropertyResolver resolver = new RelaxedPropertyResolver(environment, "pebble."); String prefix = resolver.getProperty("prefix", PebbleProperties.DEFAULT_PREFIX); String suffix = resolver.getProperty("suffix", PebbleProperties.DEFAULT_SUFFIX); return resourceLoader.getResource(prefix + view + suffix).exists(); } else { return false; } }
@Override public String parseProperty(String key, String value, Properties properties) { return propertyResolver.getProperty(key); } };
@Deprecated public HibernateMappingContext(PropertyResolver configuration, Object contextObject, Closure defaultConstraints, Class...persistentClasses) { this(configuration.getProperty(Settings.SETTING_DEFAULT_MAPPING, Closure.class, null), contextObject); setDefaultConstraints(defaultConstraints); addPersistentEntities(persistentClasses); }
protected void setShutdownStrategy(@Nonnull Server server) { // stop receiving connections after given amount of milliseconds final int shutdownDelay = propertyResolver .getProperty(CONFIG_KEY_SHUTDOWN_DELAY, Integer.class, DEFAULT_SHUTDOWN_DELAY); getLogger().info("Using shutdownDelay={}", shutdownDelay); server.setGracefulShutdown(shutdownDelay); // stop server if SIGINT received server.setStopAtShutdown(true); }