33import com .getui .push .v2 .sdk .common .Assert ;
44import org .apache .http .client .config .RequestConfig ;
55
6+ import java .util .Arrays ;
7+ import java .util .HashSet ;
8+ import java .util .Set ;
9+
610/**
711 * 应用相关配置信息
812 * create by getui on 2020/6/4
@@ -32,7 +36,19 @@ public class GtApiConfiguration {
3236 /**
3337 * 是否开启最稳定域名检测,默认开启
3438 */
35- private boolean openAnalyseStableDomainSwitch = true ;
39+ public final static String ANALYSE_STABLE_DOMAIN_SWITCH_KEY = "gt.analyse.stable.domain.switch" ;
40+
41+ /**
42+ * 个推顶级域名列表,英文逗号分割
43+ */
44+ public final static String GT_TOP_LEVEL_DOMAIN_LIST_KEY = "gt.top.level.domain.list" ;
45+
46+ /**
47+ * 个推顶级域名列表的默认值
48+ */
49+ private final static String DEFAULT_GT_TOP_LEVEL_DOMAIN_LIST = "getui.com,getui.cn" ;
50+
51+ private Set <String > gtTopLevelDomainList ;
3652
3753 /**
3854 * 检测最稳定域名时间间隔,默认2分钟检测一次
@@ -41,7 +57,7 @@ public class GtApiConfiguration {
4157
4258 /**
4359 * 如果遇到域名请求地址不断变化或需要排查网络耗时等问题,可以开启此接口(方法)功能后,联系个推技术支持
44- * 健康度检查动态开关,true表示开启,否则关闭,不设置则取 {@link #openAnalyseStableDomainSwitch }
60+ * 健康度检查动态开关,true表示开启,否则关闭,不设置则取 {@link #ANALYSE_STABLE_DOMAIN_SWITCH_KEY }
4561 */
4662 public final static String CHECK_HEALTH_DATA_SWITCH_KEY = "gt_healthy_switch" ;
4763 /**
@@ -136,12 +152,36 @@ public String getDomain() {
136152 return domain ;
137153 }
138154
155+ private boolean notGtDomain () {
156+ for (String gtDomain : getGtTopLevelDomainList ()) {
157+ if (domain .contains (gtDomain )) {
158+ return false ;
159+ }
160+ }
161+ return true ;
162+ }
163+
164+
165+ public Set <String > getGtTopLevelDomainList () {
166+ if (gtTopLevelDomainList == null ) {
167+ gtTopLevelDomainList = new HashSet <String >(Arrays .asList (System .getProperty (GT_TOP_LEVEL_DOMAIN_LIST_KEY , DEFAULT_GT_TOP_LEVEL_DOMAIN_LIST ).split ("," )));
168+ }
169+ return gtTopLevelDomainList ;
170+ }
171+
172+ public void setGtTopLevelDomainList (String list ) {
173+ System .setProperty (GT_TOP_LEVEL_DOMAIN_LIST_KEY , list );
174+ }
175+
139176 public boolean isOpenAnalyseStableDomainSwitch () {
140- return openAnalyseStableDomainSwitch ;
177+ if (notGtDomain ()) {
178+ return false ;
179+ }
180+ return Boolean .parseBoolean (System .getProperty (ANALYSE_STABLE_DOMAIN_SWITCH_KEY , "true" ));
141181 }
142182
143183 public void setOpenAnalyseStableDomainSwitch (boolean openAnalyseStableDomainSwitch ) {
144- this . openAnalyseStableDomainSwitch = openAnalyseStableDomainSwitch ;
184+ System . setProperty ( ANALYSE_STABLE_DOMAIN_SWITCH_KEY , String . valueOf ( openAnalyseStableDomainSwitch )) ;
145185 }
146186
147187 public long getAnalyseStableDomainInterval () {
0 commit comments