updated RUNNING with new jar names;
only configure archaius once; add eureka-client to hystrix dashboard
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Config Server
|
## Config Server
|
||||||
|
|
||||||
`spring-platform-config$ java -Dspring.platform.config.server.uri=https://github.com/spencergibb/config-repo -jar spring-platform-config-server/target/spring-platform-config-server-1.0.0.BUILD-SNAPSHOT.jar`
|
`spring-platform-config$ java -Dspring.platform.config.server.uri=https://github.com/spencergibb/config-repo -jar spring-platform-config-server/target/spring-platform-config-server-1.0.0.BUILD-SNAPSHOT-exec.jar`
|
||||||
|
|
||||||
## Netflix Eureka
|
## Netflix Eureka
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,15 @@ import com.netflix.config.ConfigurationManager;
|
|||||||
import com.netflix.config.DynamicURLConfiguration;
|
import com.netflix.config.DynamicURLConfiguration;
|
||||||
import org.apache.commons.configuration.EnvironmentConfiguration;
|
import org.apache.commons.configuration.EnvironmentConfiguration;
|
||||||
import org.apache.commons.configuration.SystemConfiguration;
|
import org.apache.commons.configuration.SystemConfiguration;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.env.ConfigurableEnvironment;
|
import org.springframework.core.env.ConfigurableEnvironment;
|
||||||
|
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import static com.netflix.config.ConfigurationBasedDeploymentContext.DEPLOYMENT_APPLICATION_ID_PROPERTY;
|
import static com.netflix.config.ConfigurationBasedDeploymentContext.DEPLOYMENT_APPLICATION_ID_PROPERTY;
|
||||||
import static com.netflix.config.ConfigurationManager.*;
|
import static com.netflix.config.ConfigurationManager.*;
|
||||||
import static com.netflix.config.ConfigurationManager.APPLICATION_PROPERTIES;
|
import static com.netflix.config.ConfigurationManager.APPLICATION_PROPERTIES;
|
||||||
@@ -21,6 +25,9 @@ import static com.netflix.config.ConfigurationManager.ENV_CONFIG_NAME;
|
|||||||
@Configuration
|
@Configuration
|
||||||
public class ArchaiusAutoConfiguration {
|
public class ArchaiusAutoConfiguration {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(ArchaiusAutoConfiguration.class);
|
||||||
|
private static final AtomicBoolean initialized = new AtomicBoolean(false);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ConfigurableEnvironment env;
|
ConfigurableEnvironment env;
|
||||||
|
|
||||||
@@ -32,47 +39,52 @@ public class ArchaiusAutoConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void configureArchaius(ConfigurableEnvironmentConfiguration envConfig) {
|
protected void configureArchaius(ConfigurableEnvironmentConfiguration envConfig) {
|
||||||
String appName = env.getProperty("spring.application.name");
|
if (initialized.compareAndSet(false, true)) {
|
||||||
if (appName == null) {
|
String appName = env.getProperty("spring.application.name");
|
||||||
throw new IllegalStateException("spring.application.name may not be null");
|
if (appName == null) {
|
||||||
}
|
throw new IllegalStateException("spring.application.name may not be null");
|
||||||
//this is deprecated, but currently it seams the only way to set it initially
|
|
||||||
System.setProperty(DEPLOYMENT_APPLICATION_ID_PROPERTY, appName);
|
|
||||||
|
|
||||||
//TODO: support for other DeploymentContexts
|
|
||||||
|
|
||||||
ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();
|
|
||||||
|
|
||||||
//support to add other Configurations (Jdbc, DynamoDb, Zookeeper, jclouds, etc...)
|
|
||||||
/*if (factories != null && !factories.isEmpty()) {
|
|
||||||
for (PropertiesSourceFactory factory: factories) {
|
|
||||||
config.addConfiguration(factory.getConfiguration(), factory.getName());
|
|
||||||
}
|
}
|
||||||
}*/
|
//this is deprecated, but currently it seams the only way to set it initially
|
||||||
config.addConfiguration(envConfig, ConfigurableEnvironmentConfiguration.class.getSimpleName());
|
System.setProperty(DEPLOYMENT_APPLICATION_ID_PROPERTY, appName);
|
||||||
|
|
||||||
//below come from ConfigurationManager.createDefaultConfigInstance()
|
//TODO: support for other DeploymentContexts
|
||||||
try {
|
|
||||||
DynamicURLConfiguration defaultURLConfig = new DynamicURLConfiguration();
|
ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();
|
||||||
config.addConfiguration(defaultURLConfig, URL_CONFIG_NAME);
|
|
||||||
} catch (Throwable e) {
|
//support to add other Configurations (Jdbc, DynamoDb, Zookeeper, jclouds, etc...)
|
||||||
e.printStackTrace(); //TODO: log error
|
/*if (factories != null && !factories.isEmpty()) {
|
||||||
|
for (PropertiesSourceFactory factory: factories) {
|
||||||
|
config.addConfiguration(factory.getConfiguration(), factory.getName());
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
config.addConfiguration(envConfig, ConfigurableEnvironmentConfiguration.class.getSimpleName());
|
||||||
|
|
||||||
|
//below come from ConfigurationManager.createDefaultConfigInstance()
|
||||||
|
try {
|
||||||
|
DynamicURLConfiguration defaultURLConfig = new DynamicURLConfiguration();
|
||||||
|
config.addConfiguration(defaultURLConfig, URL_CONFIG_NAME);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
e.printStackTrace(); //TODO: log error
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: sys/env above urls?
|
||||||
|
if (!Boolean.getBoolean(DISABLE_DEFAULT_SYS_CONFIG)) {
|
||||||
|
SystemConfiguration sysConfig = new SystemConfiguration();
|
||||||
|
config.addConfiguration(sysConfig, SYS_CONFIG_NAME);
|
||||||
|
}
|
||||||
|
if (!Boolean.getBoolean(DISABLE_DEFAULT_ENV_CONFIG)) {
|
||||||
|
EnvironmentConfiguration environmentConfiguration = new EnvironmentConfiguration();
|
||||||
|
config.addConfiguration(environmentConfiguration, ENV_CONFIG_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
ConcurrentCompositeConfiguration appOverrideConfig = new ConcurrentCompositeConfiguration();
|
||||||
|
config.addConfiguration(appOverrideConfig, APPLICATION_PROPERTIES);
|
||||||
|
config.setContainerConfigurationIndex(config.getIndexOfConfiguration(appOverrideConfig));
|
||||||
|
|
||||||
|
ConfigurationManager.install(config);
|
||||||
|
} else {
|
||||||
|
//TODO: reinstall ConfigurationManager
|
||||||
|
logger.warn("Netflix ConfigurationManager has already been installed, unable to re-install");
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: sys/env above urls?
|
|
||||||
if (!Boolean.getBoolean(DISABLE_DEFAULT_SYS_CONFIG)) {
|
|
||||||
SystemConfiguration sysConfig = new SystemConfiguration();
|
|
||||||
config.addConfiguration(sysConfig, SYS_CONFIG_NAME);
|
|
||||||
}
|
|
||||||
if (!Boolean.getBoolean(DISABLE_DEFAULT_ENV_CONFIG)) {
|
|
||||||
EnvironmentConfiguration environmentConfiguration = new EnvironmentConfiguration();
|
|
||||||
config.addConfiguration(environmentConfiguration, ENV_CONFIG_NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
ConcurrentCompositeConfiguration appOverrideConfig = new ConcurrentCompositeConfiguration();
|
|
||||||
config.addConfiguration(appOverrideConfig, APPLICATION_PROPERTIES);
|
|
||||||
config.setContainerConfigurationIndex(config.getIndexOfConfiguration(appOverrideConfig));
|
|
||||||
|
|
||||||
ConfigurationManager.install(config);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,10 @@
|
|||||||
<groupId>org.springframework.platform</groupId>
|
<groupId>org.springframework.platform</groupId>
|
||||||
<artifactId>spring-platform-config-client</artifactId>
|
<artifactId>spring-platform-config-client</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.netflix.eureka</groupId>
|
||||||
|
<artifactId>eureka-client</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.netflix.hystrix</groupId>
|
<groupId>com.netflix.hystrix</groupId>
|
||||||
<artifactId>hystrix-core</artifactId>
|
<artifactId>hystrix-core</artifactId>
|
||||||
|
|||||||
Reference in New Issue
Block a user