Commit 7b60ea73 by Spencer Gibb

updated RUNNING with new jar names;

only configure archaius once; add eureka-client to hystrix dashboard
parent 2f8ae888
...@@ -2,7 +2,7 @@ ...@@ -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; ...@@ -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; ...@@ -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 { ...@@ -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); //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 //TODO: support for other DeploymentContexts
ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration(); ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();
//support to add other Configurations (Jdbc, DynamoDb, Zookeeper, jclouds, etc...) //support to add other Configurations (Jdbc, DynamoDb, Zookeeper, jclouds, etc...)
/*if (factories != null && !factories.isEmpty()) { /*if (factories != null && !factories.isEmpty()) {
for (PropertiesSourceFactory factory: factories) { for (PropertiesSourceFactory factory: factories) {
config.addConfiguration(factory.getConfiguration(), factory.getName()); config.addConfiguration(factory.getConfiguration(), factory.getName());
} }
}*/ }*/
config.addConfiguration(envConfig, ConfigurableEnvironmentConfiguration.class.getSimpleName()); config.addConfiguration(envConfig, ConfigurableEnvironmentConfiguration.class.getSimpleName());
//below come from ConfigurationManager.createDefaultConfigInstance() //below come from ConfigurationManager.createDefaultConfigInstance()
try { try {
DynamicURLConfiguration defaultURLConfig = new DynamicURLConfiguration(); DynamicURLConfiguration defaultURLConfig = new DynamicURLConfiguration();
config.addConfiguration(defaultURLConfig, URL_CONFIG_NAME); config.addConfiguration(defaultURLConfig, URL_CONFIG_NAME);
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); //TODO: log error e.printStackTrace(); //TODO: log error
} }
//TODO: sys/env above urls? //TODO: sys/env above urls?
if (!Boolean.getBoolean(DISABLE_DEFAULT_SYS_CONFIG)) { if (!Boolean.getBoolean(DISABLE_DEFAULT_SYS_CONFIG)) {
SystemConfiguration sysConfig = new SystemConfiguration(); SystemConfiguration sysConfig = new SystemConfiguration();
config.addConfiguration(sysConfig, SYS_CONFIG_NAME); config.addConfiguration(sysConfig, SYS_CONFIG_NAME);
} }
if (!Boolean.getBoolean(DISABLE_DEFAULT_ENV_CONFIG)) { if (!Boolean.getBoolean(DISABLE_DEFAULT_ENV_CONFIG)) {
EnvironmentConfiguration environmentConfiguration = new EnvironmentConfiguration(); EnvironmentConfiguration environmentConfiguration = new EnvironmentConfiguration();
config.addConfiguration(environmentConfiguration, ENV_CONFIG_NAME); config.addConfiguration(environmentConfiguration, ENV_CONFIG_NAME);
} }
ConcurrentCompositeConfiguration appOverrideConfig = new ConcurrentCompositeConfiguration(); ConcurrentCompositeConfiguration appOverrideConfig = new ConcurrentCompositeConfiguration();
config.addConfiguration(appOverrideConfig, APPLICATION_PROPERTIES); config.addConfiguration(appOverrideConfig, APPLICATION_PROPERTIES);
config.setContainerConfigurationIndex(config.getIndexOfConfiguration(appOverrideConfig)); config.setContainerConfigurationIndex(config.getIndexOfConfiguration(appOverrideConfig));
ConfigurationManager.install(config); ConfigurationManager.install(config);
} else {
//TODO: reinstall ConfigurationManager
logger.warn("Netflix ConfigurationManager has already been installed, unable to re-install");
}
} }
} }
...@@ -54,6 +54,10 @@ ...@@ -54,6 +54,10 @@
<artifactId>spring-platform-config-client</artifactId> <artifactId>spring-platform-config-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.netflix.eureka</groupId>
<artifactId>eureka-client</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.hystrix</groupId> <groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-core</artifactId> <artifactId>hystrix-core</artifactId>
</dependency> </dependency>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment