From d1febbf8afc33d971d4d1ea6f400c5760b501dcb Mon Sep 17 00:00:00 2001 From: Jason Song Date: Tue, 31 May 2016 10:34:07 +0800 Subject: [PATCH] misc fix --- .../internals/RemoteConfigRepository.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigRepository.java b/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigRepository.java index ec52c33fe..7f3c2035e 100644 --- a/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigRepository.java +++ b/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigRepository.java @@ -55,6 +55,7 @@ public class RemoteConfigRepository extends AbstractConfigRepository { private volatile AtomicReference m_configCache; private final String m_namespace; private final ScheduledExecutorService m_executorService; + private final ExecutorService m_longPollingService; private final AtomicBoolean m_longPollingStopped; private SchedulePolicy m_longPollSchedulePolicy; private AtomicReference m_longPollServiceDto; @@ -80,6 +81,8 @@ public class RemoteConfigRepository extends AbstractConfigRepository { m_longPollingStopped = new AtomicBoolean(false); m_executorService = Executors.newScheduledThreadPool(1, ApolloThreadFactory.create("RemoteConfigRepository", true)); + m_longPollingService = Executors.newFixedThreadPool(2, + ApolloThreadFactory.create("RemoteConfigRepository-LongPolling", true)); m_longPollServiceDto = new AtomicReference<>(); this.trySync(); this.schedulePeriodicRefresh(); @@ -211,15 +214,12 @@ public class RemoteConfigRepository extends AbstractConfigRepository { private String assembleQueryConfigUrl(String uri, String appId, String cluster, String namespace, String dataCenter, ApolloConfig previousConfig) { Escaper escaper = UrlEscapers.urlPathSegmentEscaper(); - String path = "configs/%s/%s"; - List pathParams = Lists.newArrayList(escaper.escape(appId), escaper.escape(cluster)); + String path = "configs/%s/%s/%s"; + List pathParams = + Lists.newArrayList(escaper.escape(appId), escaper.escape(cluster), + escaper.escape(namespace)); Map queryParams = Maps.newHashMap(); - if (!Strings.isNullOrEmpty(namespace)) { - path = path + "/%s"; - pathParams.add(escaper.escape(namespace)); - } - if (previousConfig != null) { queryParams.put("releaseKey", escaper.escape(String.valueOf(previousConfig.getReleaseKey()))); } @@ -248,13 +248,10 @@ public class RemoteConfigRepository extends AbstractConfigRepository { final String appId = m_configUtil.getAppId(); final String cluster = m_configUtil.getCluster(); final String dataCenter = m_configUtil.getDataCenter(); - final ExecutorService longPollingService = - Executors.newFixedThreadPool(2, - ApolloThreadFactory.create("RemoteConfigRepository-LongPolling", true)); - longPollingService.submit(new Runnable() { + m_longPollingService.submit(new Runnable() { @Override public void run() { - doLongPollingRefresh(appId, cluster, dataCenter, longPollingService); + doLongPollingRefresh(appId, cluster, dataCenter, m_longPollingService); } }); } -- GitLab