diff --git a/.gitignore b/.gitignore
index 46e4ba266b7cb2a01718d241e6c9f3b091b1ea81..3f5e17ddf77eeb0dc9e0a7e6b3ad74805238843c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,7 +25,4 @@ target
# git
*.orig
-dev
-fat
-uat
-prd
+application-dev.properties
\ No newline at end of file
diff --git a/apollo-adminservice/src/main/resources/application.yml b/apollo-adminservice/src/main/resources/application.yml
index dc8ace4b490f22c0eb6578090be83300934cb50c..8276ec0d76d5eff9d7485e133223437706295a66 100644
--- a/apollo-adminservice/src/main/resources/application.yml
+++ b/apollo-adminservice/src/main/resources/application.yml
@@ -1,7 +1,9 @@
spring:
application:
name: apollo-adminservice
-
+ profiles:
+ active: ctrip
+
server:
port: ${port:8090}
diff --git a/apollo-biz/pom.xml b/apollo-biz/pom.xml
index 34db53fd988bbe7737c41711c3dcc4e65b4660ff..1b08a15d467479f6f75066795dec74be8effc22e 100644
--- a/apollo-biz/pom.xml
+++ b/apollo-biz/pom.xml
@@ -36,4 +36,12 @@
test
+
+
+
+ src/main/resources
+ true
+
+
+
diff --git a/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanCondition.java b/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanCondition.java
index e9f93f470fdcac2abe806da01dc109781ec6a288..67e4c9c5761ed382f57b0360c2907f252530fbcc 100644
--- a/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanCondition.java
+++ b/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanCondition.java
@@ -10,7 +10,11 @@ public class TitanCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
- if (!StringUtils.isEmpty(context.getEnvironment().getProperty("titan.url"))) {
+ if (!StringUtils.isEmpty(context.getEnvironment().getProperty("fat.titan.url"))) {
+ return true;
+ } else if (!StringUtils.isEmpty(context.getEnvironment().getProperty("uat.titan.url"))) {
+ return true;
+ } else if (!StringUtils.isEmpty(context.getEnvironment().getProperty("pro.titan.url"))) {
return true;
}
return false;
diff --git a/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanSettings.java b/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanSettings.java
index 8d1d3b276a472e7214bc786a2044233ee93f302b..b64acf9fd3d53428998d337a92d81ba24dddc79a 100644
--- a/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanSettings.java
+++ b/apollo-biz/src/main/java/com/ctrip/apollo/biz/datasource/TitanSettings.java
@@ -3,28 +3,61 @@ package com.ctrip.apollo.biz.datasource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
+import com.ctrip.apollo.core.enums.Env;
+import com.ctrip.apollo.core.enums.EnvUtils;
+import com.ctrip.framework.foundation.Foundation;
+
@Component
public class TitanSettings {
- @Value("${titan.url:}")
- private String titanUrl;
+ @Value("${fat.titan.url:}")
+ private String fatTitanUrl;
- @Value("${titan.dbname:}")
- private String titanDbname;
+ @Value("${uat.titan.url:}")
+ private String uatTitanUrl;
- public String getTitanUrl() {
- return titanUrl;
- }
+ @Value("${pro.titan.url:}")
+ private String proTitanUrl;
+
+ @Value("${fat.titan.dbname:}")
+ private String fatTitanDbname;
- public void setTitanUrl(String titanUrl) {
- this.titanUrl = titanUrl;
+ @Value("${uat.titan.dbname:}")
+ private String uatTitanDbname;
+
+ @Value("${pro.titan.dbname:}")
+ private String proTitanDbname;
+
+ public String getTitanUrl() {
+ Env env = EnvUtils.transformEnv(Foundation.server().getEnvType());
+ switch (env) {
+ case FAT:
+ case FWS:
+ return fatTitanUrl;
+ case UAT:
+ return uatTitanUrl;
+ case TOOLS:
+ case PRO:
+ return proTitanUrl;
+ default:
+ return "";
+ }
}
public String getTitanDbname() {
- return titanDbname;
+ Env env = EnvUtils.transformEnv(Foundation.server().getEnvType());
+ switch (env) {
+ case FAT:
+ case FWS:
+ return fatTitanDbname;
+ case UAT:
+ return uatTitanDbname;
+ case TOOLS:
+ case PRO:
+ return proTitanDbname;
+ default:
+ return "";
+ }
}
- public void setTitanDbname(String titanDbname) {
- this.titanDbname = titanDbname;
- }
}
diff --git a/apollo-biz/src/main/resources/application-ctrip.properties b/apollo-biz/src/main/resources/application-ctrip.properties
new file mode 100644
index 0000000000000000000000000000000000000000..721ec8022133698400f5a723afb14c52046cc0b4
--- /dev/null
+++ b/apollo-biz/src/main/resources/application-ctrip.properties
@@ -0,0 +1,7 @@
+# Titan Datasource (Ctrip only)
+fat.titan.url=${fat_titan_url}
+fat.titan.dbname=${fat_titan_dbname}
+uat.titan.url=${uat_titan_url}
+uat.titan.dbname=${uat_titan_dbname}
+pro.titan.url=${pro_titan_url}
+pro.titan.dbname=${pro_titan_dbname}
diff --git a/apollo-biz/src/main/resources/application.properties b/apollo-biz/src/main/resources/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..6d7623c4595fd9e935e710785a3c20eb8d48b0ac
--- /dev/null
+++ b/apollo-biz/src/main/resources/application.properties
@@ -0,0 +1,10 @@
+# DataSource
+spring.datasource.testWhileIdle=true
+spring.datasource.testOnBorrow=true
+spring.datasource.validationQuery=SELECT 1
+
+# Naming strategy
+spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
+spring.jpa.hibernate.globally_quoted_identifiers=true
+spring.jpa.properties.hibernate.globally_quoted_identifiers=true
+spring.jpa.properties.hibernate.show_sql=true
diff --git a/apollo-client/src/main/java/com/ctrip/apollo/util/ConfigUtil.java b/apollo-client/src/main/java/com/ctrip/apollo/util/ConfigUtil.java
index a564aec28d2bbf3e3e86cbeec1105fef17a75274..768d7ef5d71f064d5fe7a962f20194dd9c3535e3 100644
--- a/apollo-client/src/main/java/com/ctrip/apollo/util/ConfigUtil.java
+++ b/apollo-client/src/main/java/com/ctrip/apollo/util/ConfigUtil.java
@@ -1,11 +1,11 @@
package com.ctrip.apollo.util;
import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
import com.ctrip.apollo.core.ConfigConsts;
import com.ctrip.apollo.core.MetaDomainConsts;
import com.ctrip.apollo.core.enums.Env;
+import com.ctrip.apollo.core.enums.EnvUtils;
import com.ctrip.framework.foundation.Foundation;
import org.unidal.lookup.annotation.Named;
@@ -60,34 +60,11 @@ public class ConfigUtil {
* @throws IllegalStateException if env is set
*/
public Env getApolloEnv() {
- Env env = transformEnv(Foundation.server().getEnvType());
+ Env env = EnvUtils.transformEnv(Foundation.server().getEnvType());
Preconditions.checkState(env != null, "env is not set");
return env;
}
- private Env transformEnv(String envName) {
- if (Strings.isNullOrEmpty(envName)) {
- return null;
- }
- switch (envName.toUpperCase()) {
- case "LPT":
- return Env.LPT;
- case "FAT":
- case "FWS":
- return Env.FAT;
- case "UAT":
- return Env.UAT;
- case "PRO":
- return Env.PRO;
- case "DEV":
- return Env.DEV;
- case "LOCAL":
- return Env.LOCAL;
- default:
- return null;
- }
- }
-
public String getMetaServerDomainName() {
return MetaDomainConsts.getDomain(getApolloEnv());
}
diff --git a/apollo-configservice/src/main/resources/application.yml b/apollo-configservice/src/main/resources/application.yml
index 405fe3057d0a0f48c49c5246025f993e02e318d3..9f8bd71abc4f95ecf80b9d34354234b1b01ac171 100644
--- a/apollo-configservice/src/main/resources/application.yml
+++ b/apollo-configservice/src/main/resources/application.yml
@@ -1,6 +1,8 @@
spring:
application:
name: apollo-configservice
+ profiles:
+ active: ctrip
server:
port: ${port:8080}
diff --git a/apollo-core/src/main/java/com/ctrip/apollo/core/MetaDomainConsts.java b/apollo-core/src/main/java/com/ctrip/apollo/core/MetaDomainConsts.java
index a5bbd35abc7b96b359efff1cd4966a63bb522dfd..60491533908fd9905dc87b50a351cbb9394455b0 100644
--- a/apollo-core/src/main/java/com/ctrip/apollo/core/MetaDomainConsts.java
+++ b/apollo-core/src/main/java/com/ctrip/apollo/core/MetaDomainConsts.java
@@ -7,24 +7,38 @@ import java.util.Properties;
import com.ctrip.apollo.core.enums.Env;
import com.ctrip.apollo.core.utils.ResourceUtils;
+/**
+ * The meta domain will load the meta server from System environment first, if not exist, will load
+ * from apollo-env.properties. If neither exists, will load the default meta url.
+ *
+ * Currently, apollo supports local/dev/fat/uat/lpt/pro environments.
+ */
+@SuppressWarnings({"rawtypes", "unchecked"})
public class MetaDomainConsts {
- private static Map domains = new HashMap<>();
+ private static Map domains = new HashMap<>();
+
+ public static final String DEFAULT_META_URL = "http://localhost:8080";
static {
Properties prop = new Properties();
prop = ResourceUtils.readConfigFile("apollo-env.properties", prop);
- domains.put(Env.LOCAL, prop.getProperty("local.meta", "http://localhost:8080"));
- domains.put(Env.DEV, prop.getProperty("dev.meta"));
- domains.put(Env.FAT, prop.getProperty("fat.meta"));
- domains.put(Env.FWS, prop.getProperty("fws.meta"));
- domains.put(Env.UAT, prop.getProperty("uat.meta"));
- domains.put(Env.LPT, prop.getProperty("lpt.meta"));
- domains.put(Env.TOOLS, prop.getProperty("tools.meta"));
- domains.put(Env.PRO, prop.getProperty("pro.meta"));
+ Map env = System.getProperties();
+ domains.put(Env.LOCAL,
+ env.getOrDefault("local_meta", prop.getProperty("local.meta", DEFAULT_META_URL)));
+ domains.put(Env.DEV,
+ env.getOrDefault("dev_meta", prop.getProperty("dev.meta", DEFAULT_META_URL)));
+ domains.put(Env.FAT,
+ env.getOrDefault("fat_meta", prop.getProperty("fat.meta", DEFAULT_META_URL)));
+ domains.put(Env.UAT,
+ env.getOrDefault("uat_meta", prop.getProperty("uat.meta", DEFAULT_META_URL)));
+ domains.put(Env.LPT,
+ env.getOrDefault("lpt_meta", prop.getProperty("lpt.meta", DEFAULT_META_URL)));
+ domains.put(Env.PRO,
+ env.getOrDefault("pro_meta", prop.getProperty("pro.meta", DEFAULT_META_URL)));
}
public static String getDomain(Env env) {
- return domains.get(env);
+ return String.valueOf(domains.get(env));
}
}
diff --git a/apollo-core/src/main/java/com/ctrip/apollo/core/enums/EnvUtils.java b/apollo-core/src/main/java/com/ctrip/apollo/core/enums/EnvUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..84f7c9b1857a0348f69ae20da717478b7402dd7d
--- /dev/null
+++ b/apollo-core/src/main/java/com/ctrip/apollo/core/enums/EnvUtils.java
@@ -0,0 +1,29 @@
+package com.ctrip.apollo.core.enums;
+
+import com.ctrip.apollo.core.utils.StringUtils;
+
+public final class EnvUtils {
+
+ public static Env transformEnv(String envName) {
+ if (StringUtils.isBlank(envName)) {
+ return null;
+ }
+ switch (envName.toUpperCase()) {
+ case "LPT":
+ return Env.LPT;
+ case "FAT":
+ case "FWS":
+ return Env.FAT;
+ case "UAT":
+ return Env.UAT;
+ case "PRO":
+ return Env.PRO;
+ case "DEV":
+ return Env.DEV;
+ case "LOCAL":
+ return Env.LOCAL;
+ default:
+ return null;
+ }
+ }
+}
diff --git a/apollo-core/src/main/resources/apollo-env.properties b/apollo-core/src/main/resources/apollo-env.properties
index 1064c16d52f03e96e047f5370cca39833c225b72..01c607d15ea8de644e18dd447adc0f75607ca85e 100644
--- a/apollo-core/src/main/resources/apollo-env.properties
+++ b/apollo-core/src/main/resources/apollo-env.properties
@@ -1,6 +1,5 @@
local.meta=http://localhost:8080
-dev.meta=${dev}
-fat.meta=${fat}
-uat.meta=${uat}
-lpt.meta=${lpt}
-pro.meta=${pro}
+dev.meta=${dev_meta}
+fat.meta=${fat_meta}
+uat.meta=${uat_meta}
+pro.meta=${pro_meta}
diff --git a/apollo-core/src/test/java/com/ctrip/apollo/core/MetaDomainTest.java b/apollo-core/src/test/java/com/ctrip/apollo/core/MetaDomainTest.java
index 554ee09da06e38f9e78e03f31daace096594e994..449e5105d5204bfe0796f7f370769873a3a6c258 100644
--- a/apollo-core/src/test/java/com/ctrip/apollo/core/MetaDomainTest.java
+++ b/apollo-core/src/test/java/com/ctrip/apollo/core/MetaDomainTest.java
@@ -11,6 +11,6 @@ public class MetaDomainTest {
public void testGetMetaDomain() {
Assert.assertEquals("http://localhost:8080", MetaDomainConsts.getDomain(Env.LOCAL));
Assert.assertEquals("http://dev:8080", MetaDomainConsts.getDomain(Env.DEV));
- Assert.assertNull(MetaDomainConsts.getDomain(Env.PRO));
+ Assert.assertEquals(MetaDomainConsts.DEFAULT_META_URL, MetaDomainConsts.getDomain(Env.PRO));
}
}
diff --git a/apollo-portal/src/main/resources/application.yml b/apollo-portal/src/main/resources/application.yml
index 258e6cbad1433a48ebd1d90380e5dff30edc21e8..25913dd8ec5e5f25af5c957899b3db2a49253218 100644
--- a/apollo-portal/src/main/resources/application.yml
+++ b/apollo-portal/src/main/resources/application.yml
@@ -4,7 +4,9 @@ server:
spring:
application:
name: apollo-portal
-
+ profiles:
+ active: ctrip
+
logging:
level:
org.springframework.cloud: 'DEBUG'
diff --git a/pom.xml b/pom.xml
index 5b147ef7e81499ad0a37750fe8ebd199ef49dea8..dc650674dcea927b6fbcc9260ee7d7af1083f3fd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,12 +124,12 @@
com.ctrip.framework
framework-foundation
- 1.1.4
+ 1.1.5
com.dianping.cat
cat-client
- 1.4.6
+ 1.5.0
com.ctrip.platform