Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple environmental isolation #1075

Merged
merged 35 commits into from
May 28, 2019
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1994de6
Merge pull request #1 from seata/develop
XCXCXCXCX Apr 11, 2019
e9ae2c5
Merge branch 'develop' of https://github.com/seata/seata into develop
XCXCXCXCX Apr 11, 2019
68afd1c
Merge pull request #2 from seata/develop
XCXCXCXCX Apr 17, 2019
5941272
Merge branch 'develop' of https://github.com/XCXCXCXCX/seata into dev…
XCXCXCXCX Apr 17, 2019
6219aa7
add: add time limit when transaction retry on the server
XCXCXCXCX Apr 18, 2019
942b1df
fix: change int to long
XCXCXCXCX Apr 18, 2019
93d0a56
Merge branch 'develop' into develop
xingfudeshi Apr 18, 2019
8a8aa4f
add: Configuration api add getDuration()
XCXCXCXCX Apr 18, 2019
d43cdc0
Merge remote-tracking branch 'origin/develop' into develop
XCXCXCXCX Apr 18, 2019
a2d9275
add: copyright
XCXCXCXCX Apr 18, 2019
4717fd7
fix: use test case instead main
XCXCXCXCX Apr 19, 2019
a0306c9
Merge branch 'develop' into develop
lovepoem Apr 19, 2019
655cce7
add new config items to the nacos-config.txt
XCXCXCXCX Apr 23, 2019
92f2000
Merge remote-tracking branch 'origin/develop' into develop
XCXCXCXCX Apr 23, 2019
99f6f59
Merge branch 'develop' of https://github.com/seata/seata into develop
XCXCXCXCX May 8, 2019
cdab89c
Multiple environmental isolation
XCXCXCXCX May 8, 2019
b5304c5
fix
XCXCXCXCX May 10, 2019
5b5d23e
fix conflict
XCXCXCXCX May 10, 2019
744a8e6
Merge branch 'develop' into muti-env
XCXCXCXCX May 10, 2019
dde13dc
fix
XCXCXCXCX May 20, 2019
70c166a
Merge branch 'develop' into muti-env
XCXCXCXCX May 20, 2019
2657113
fix
XCXCXCXCX May 20, 2019
1e715e1
Merge branch 'develop' into muti-env
xingfudeshi May 20, 2019
deacfd3
Merge branch 'develop' into muti-env
xingfudeshi May 20, 2019
b4433db
Merge branch 'develop' into muti-env
xingfudeshi May 21, 2019
6e44356
Merge branch 'develop' into muti-env
xingfudeshi May 22, 2019
d2576c3
merge conflicts and add SEATA_CONFIG_ENV
XCXCXCXCX May 27, 2019
7eb4317
add SEATA_CONFIG_ENV
XCXCXCXCX May 27, 2019
46adf8d
Merge remote-tracking branch 'origin/muti-env' into muti-env
XCXCXCXCX May 27, 2019
3532ced
Merge branch 'develop' of https://github.com/seata/seata into muti-env
XCXCXCXCX May 27, 2019
10e4c9d
fix
XCXCXCXCX May 27, 2019
c38f2a5
fix
XCXCXCXCX May 27, 2019
e07995d
Merge branch 'develop' into muti-env
xingfudeshi May 27, 2019
b3ef5f5
Merge branch 'develop' into muti-env
xingfudeshi May 28, 2019
c93d1cf
Merge branch 'develop' into muti-env
xingfudeshi May 28, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public class ApolloConfiguration extends AbstractConfiguration<ConfigChangeListe
private static final String REGISTRY_TYPE = "apollo";
private static final String APP_ID = "app.id";
private static final String APOLLO_META = "apollo.meta";
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static volatile Config config;
private ExecutorService configOperateExecutor;
private static final int CORE_CONFIG_OPERATE_THREAD = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class ConsulConfiguration extends AbstractConfiguration<ConfigChangeListe
private volatile static ConsulConfiguration instance;
private volatile static ConsulClient client;

private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static final String SERVER_ADDR_KEY = "serverAddr";
private static final String CONFIG_TYPE = "consul";
private static final String FILE_CONFIG_KEY_PREFIX = FILE_ROOT_CONFIG + FILE_CONFIG_SPLIT_CHAR + CONFIG_TYPE + FILE_CONFIG_SPLIT_CHAR;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,14 @@
*/
public final class ConfigurationFactory {
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationFactory.class);
private static final String REGISTRY_CONF = "registry.conf";
private static final String REGISTRY_CONF_PREFIX = "registry";
private static final String REGISTRY_CONF_SUFFIX = ".conf";
/**
* The constant FILE_INSTANCE.
*/
public static final Configuration FILE_INSTANCE = new FileConfiguration(REGISTRY_CONF);
private static final String ENV_VALUE = System.getProperty("env");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe you can provide a util class to set or resolve the env value
default it can fetch from system properties
when users use spring ,maybe they want to config from the application.properties ,so they can invoke your util method instead of use System.setProperty or pass by -D

private static final Configuration DEFAULT_FILE_INSTANCE = new FileConfiguration(REGISTRY_CONF_PREFIX + REGISTRY_CONF_SUFFIX);
public static final Configuration CURRENT_FILE_INSTANCE = (ENV_VALUE == null || "default".equals(ENV_VALUE)) ? DEFAULT_FILE_INSTANCE : new FileConfiguration(REGISTRY_CONF_PREFIX + "-" + ENV_VALUE + REGISTRY_CONF_SUFFIX);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's better to define a constant for "default".

private static final String NAME_KEY = "name";
private static final String FILE_TYPE = "file";

Expand All @@ -43,11 +46,11 @@ public final class ConfigurationFactory {
*
* @return the instance
*/
public static Configuration getInstance() {
public static synchronized Configuration getInstance() {
ConfigType configType = null;
String configTypeName = null;
try {
configTypeName = FILE_INSTANCE.getConfig(ConfigurationKeys.FILE_ROOT_CONFIG + ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR
configTypeName = CURRENT_FILE_INSTANCE.getConfig(ConfigurationKeys.FILE_ROOT_CONFIG + ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR
+ ConfigurationKeys.FILE_ROOT_TYPE);
configType = ConfigType.getType(configTypeName);
} catch (Exception exx) {
Expand All @@ -57,7 +60,7 @@ public static Configuration getInstance() {
String pathDataId = ConfigurationKeys.FILE_ROOT_CONFIG + ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR
+ FILE_TYPE + ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR
+ NAME_KEY;
String name = FILE_INSTANCE.getConfig(pathDataId);
String name = CURRENT_FILE_INSTANCE.getConfig(pathDataId);
return new FileConfiguration(name);
} else {
return EnhancedServiceLoader.load(ConfigurationProvider.class, Objects.requireNonNull(configType).name()).provide();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class NacosConfiguration extends AbstractConfiguration<Listener> {
private static final String SEATA_GROUP = "SEATA_GROUP";
private static final String PRO_SERVER_ADDR_KEY = "serverAddr";
private static final String REGISTRY_TYPE = "nacos";
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static volatile ConfigService configService;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public class ZookeeperConfiguration extends AbstractConfiguration<IZkDataListene
private static final String ZK_PATH_SPLIT_CHAR = "/";
private static final String FILE_ROOT_CONFIG = "config";
private static final String ROOT_PATH = ZK_PATH_SPLIT_CHAR + FILE_ROOT_CONFIG;
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static final String SERVER_ADDR_KEY = "serverAddr";
private static final String SESSION_TIMEOUT_KEY = "session.timeout";
private static final String CONNECT_TIMEOUT_KEY = "connect.timeout";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class ConsulRegistryServiceImpl implements RegistryService<ConsulListener
private static volatile ConsulRegistryServiceImpl instance;
private static volatile ConsulClient client;

private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static final String FILE_ROOT_REGISTRY = "registry";
private static final String FILE_CONFIG_SPLIT_CHAR = ".";
private static final String REGISTRY_TYPE = "consul";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class RegistryFactory {
*/
public static RegistryService getInstance() {
RegistryType registryType;
String registryTypeName = ConfigurationFactory.FILE_INSTANCE.getConfig(
String registryTypeName = ConfigurationFactory.CURRENT_FILE_INSTANCE.getConfig(
ConfigurationKeys.FILE_ROOT_REGISTRY + ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR
+ ConfigurationKeys.FILE_ROOT_TYPE);
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
*/
public class EtcdRegistryServiceImpl implements RegistryService<Watch.Listener> {
private static final Logger LOGGER = LoggerFactory.getLogger(EtcdRegistryServiceImpl.class);
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static final String FILE_ROOT_REGISTRY = "registry";
private static final String FILE_CONFIG_SPLIT_CHAR = ".";
private static final String REGISTRY_TYPE = "etcd3";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public class EurekaRegistryServiceImpl implements RegistryService<EurekaEventLis
private static final int EUREKA_REFRESH_INTERVAL = 5;
private static final int MAP_INITIAL_CAPACITY = 8;
private static final String DEFAULT_WEIGHT = "1";
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static ConcurrentMap<String, Set<InetSocketAddress>> clusterAddressMap;

private static volatile boolean subscribeListener = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class NacosRegistryServiceImpl implements RegistryService<EventListener>
private static final String PRO_NAMESPACE_KEY = "namespace";
private static final String REGISTRY_TYPE = "nacos";
private static final String REGISTRY_CLUSTER = "cluster";
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static volatile NamingService naming;
private static final ConcurrentMap<String, List<EventListener>> LISTENER_SERVICE_MAP = new ConcurrentHashMap<>();
private static final ConcurrentMap<String, List<InetSocketAddress>> CLUSTER_ADDRESS_MAP = new ConcurrentHashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public class RedisRegistryServiceImpl implements RegistryService<RedisListener>
new NamedThreadFactory("RedisRegistryService", 1));

private RedisRegistryServiceImpl() {
Configuration seataConfig = ConfigurationFactory.FILE_INSTANCE;
Configuration seataConfig = ConfigurationFactory.CURRENT_FILE_INSTANCE;
this.clusterName = seataConfig.getConfig(REDIS_FILEKEY_PREFIX + REGISTRY_CLUSTER_KEY, DEFAULT_CLUSTER);
String password = seataConfig.getConfig(getRedisPasswordFileKey());
String serverAddr = seataConfig.getConfig(getRedisAddrFileKey());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public class SofaRegistryServiceImpl implements RegistryService<SubscriberDataOb
private static final String DEFAULT_CLUSTER = "default";
private static final String DEFAULT_ADDRESS_WAIT_TIME = "3000";

private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;

private static final String HOST_SEPERATOR = ":";
private static final String REGISTRY_TYPE = "sofa";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public class ZookeeperRegisterServiceImpl implements RegistryService<IZkChildLis

private static volatile ZookeeperRegisterServiceImpl instance;
private static volatile ZkClient zkClient;
private static final Configuration FILE_CONFIG = ConfigurationFactory.FILE_INSTANCE;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private static final String ZK_PATH_SPLIT_CHAR = "/";
private static final String FILE_ROOT_REGISTRY = "registry";
private static final String FILE_CONFIG_SPLIT_CHAR = ".";
Expand Down