package com.netflix.hystrix.strategy.properties;
Author: agent @ExcludeFromJavadoc
/**
* @ExcludeFromJavadoc
* @author agent
*/
public final class HystrixDynamicPropertiesSystemProperties implements HystrixDynamicProperties {
Only public for unit test purposes.
/**
* Only public for unit test purposes.
*/
public HystrixDynamicPropertiesSystemProperties() {}
private static class LazyHolder {
private static final HystrixDynamicPropertiesSystemProperties INSTANCE = new HystrixDynamicPropertiesSystemProperties();
}
public static HystrixDynamicProperties getInstance() {
return LazyHolder.INSTANCE;
}
//TODO probably should not be anonymous classes for GC reasons and possible jit method eliding.
@Override
public HystrixDynamicProperty<Integer> getInteger(final String name, final Integer fallback) {
return new HystrixDynamicProperty<Integer>() {
@Override
public String getName() {
return name;
}
@Override
public Integer get() {
return Integer.getInteger(name, fallback);
}
@Override
public void addCallback(Runnable callback) {
}
};
}
@Override
public HystrixDynamicProperty<String> getString(final String name, final String fallback) {
return new HystrixDynamicProperty<String>() {
@Override
public String getName() {
return name;
}
@Override
public String get() {
return System.getProperty(name, fallback);
}
@Override
public void addCallback(Runnable callback) {
}
};
}
@Override
public HystrixDynamicProperty<Long> getLong(final String name, final Long fallback) {
return new HystrixDynamicProperty<Long>() {
@Override
public String getName() {
return name;
}
@Override
public Long get() {
return Long.getLong(name, fallback);
}
@Override
public void addCallback(Runnable callback) {
}
};
}
@Override
public HystrixDynamicProperty<Boolean> getBoolean(final String name, final Boolean fallback) {
return new HystrixDynamicProperty<Boolean>() {
@Override
public String getName() {
return name;
}
@Override
public Boolean get() {
if (System.getProperty(name) == null) {
return fallback;
}
return Boolean.getBoolean(name);
}
@Override
public void addCallback(Runnable callback) {
}
};
}
}