com.opentable.server.ServerConfigConfiguration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otj-server-core Show documentation
Show all versions of otj-server-core Show documentation
Wiring for basic Jetty core servlet regardless of MVC or JaxRS choices. Also wires logging, metrics, etc
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.opentable.server;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.ConfigurableEnvironment;
import com.opentable.service.AppInfo;
import com.opentable.service.EnvInfo;
import com.opentable.service.K8sInfo;
import com.opentable.spring.ConversionServiceConfiguration;
import com.opentable.spring.PropertySourceUtil;
@Configuration
@Import({
ConversionServiceConfiguration.class,
AppInfo.class,
EnvInfo.class,
K8sInfo.class,
})
public class ServerConfigConfiguration {
private static final String INDENT = " ";
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfig() {
return new PropertySourcesPlaceholderConfigurer();
}
@Inject
public void logAppConfig(final ConfigurableEnvironment env) {
final Logger log = LoggerFactory.getLogger(ServerConfigConfiguration.class);
log.info("{}:\n\n{}{}\n", env, INDENT,
PropertySourceUtil.getKeys(env)
.sorted()
.distinct()
.map(k -> {
try {
return k + "=" + Optional.ofNullable(env.getProperty(k)).orElse("null")
.replace("\n", "\\n");
} catch (Exception e) {
return k + "= Error: " + e.getMessage();
}
})
.collect(Collectors.joining("\n" + INDENT)));
}
}