diff --git a/scca-persistence-db/src/main/java/com/didispace/scca/service/persistence/db/DbPersistenceService.java b/scca-persistence-db/src/main/java/com/didispace/scca/service/persistence/db/DbPersistenceService.java index 52e12ac..a27f363 100644 --- a/scca-persistence-db/src/main/java/com/didispace/scca/service/persistence/db/DbPersistenceService.java +++ b/scca-persistence-db/src/main/java/com/didispace/scca/service/persistence/db/DbPersistenceService.java @@ -1,12 +1,20 @@ package com.didispace.scca.service.persistence.db; +import com.didispace.scca.core.config.SccaConfigServerProperties; import com.didispace.scca.core.domain.Env; import com.didispace.scca.core.domain.EnvRepo; import com.didispace.scca.core.domain.Label; import com.didispace.scca.core.service.PersistenceService; import com.didispace.scca.core.service.UrlMakerService; import lombok.extern.slf4j.Slf4j; +import okhttp3.Credentials; + import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import java.util.Properties; @@ -14,79 +22,104 @@ /** * Created by 程序猿DD/翟永超 on 2018/4/24. *
- * Blog: http://blog.didispace.com/
- * Github: https://github.com/dyc87112/
+ * Blog: http://blog.didispace.com/ Github: https://github.com/dyc87112/
*/
@Slf4j
public class DbPersistenceService implements PersistenceService {
- @Autowired
- private UrlMakerService urlMakerService;
-
- private RestTemplate restTemplate = new RestTemplate();
-
- @Autowired
- private EnvRepo envRepo;
-
- @Override
- public Properties readProperties(String application, String profile, String label) {
- String url = urlMakerService.configServerBaseUrl(profile) + "/readProperties?application={1}&profile={2}&label={3}";
- Properties properties = restTemplate.getForObject(url, Properties.class, application, profile, label);
- return properties;
- }
-
- @Override
- public void deletePropertiesByEnv(String profile) {
- // 删除某个环境下的所有配置
- String url = urlMakerService.configServerBaseUrl(profile) + "/deletePropertiesByEnv?profile={1}";
- Integer rows = restTemplate.getForObject(url, Integer.class, profile);
- log.info("delete env [{}] property rows {}", profile, rows);
- }
-
- @Override
- public void deletePropertiesByProject(String application) {
- // 删除某个项目所有环境下的配置
- for(Env env : envRepo.findAll()) {
- String url = urlMakerService.configServerBaseUrl(env.getName()) + "/deletePropertiesByProject?application={1}";
- Integer rows = restTemplate.getForObject(url, Integer.class, application);
- log.info("delete project [{}] in env [{}] property rows {}", application, rows);
- }
- }
-
- @Override
- public void deletePropertiesByProjectAndEnv(String application, String profile) {
- String url = urlMakerService.configServerBaseUrl(profile) + "/deletePropertiesByProjectAndEnv?application={1}&profile={2}";
- Integer rows = restTemplate.getForObject(url, Integer.class, application, profile);
- log.info("delete project [{}] in env [{}] property rows {}", application, profile, rows);
- }
-
- @Override
- public void deletePropertiesByLabel(Label label) {
- // TODO
-// int rows = propertyRepo.deleteAllByLabel(label);
-// log.info("delete project [{}] label [{}] property rows {}",
-// label.getProject().getName(), label.getName(), rows);
- }
-
- @Override
- public void deletePropertiesByProjectAndEnvAndLabel(String application, String profile, String label) {
- String url = urlMakerService.configServerBaseUrl(profile) + "/deletePropertiesByProjectAndEnvAndLabel?application={1}&profile={2}&label={3}";
- Integer rows = restTemplate.getForObject(url, Integer.class, application, profile, label);
- log.info("delete {}-{}-{} property rows {}", application, profile, label, rows);
- }
-
- @Override
- public void saveProperties(String application, String profile, String label, Properties update) {
- String url = urlMakerService.configServerBaseUrl(profile) + "/saveProperties?application={1}&profile={2}&label={3}";
- Integer rows = restTemplate.postForObject(url, update, Integer.class, application, profile, label);
- log.info("add {}-{}-{} rows {}", application, profile, label, rows);
- }
-
- @Override
- public void updateProfileName(String oldName, String newName) {
- String url = urlMakerService.configServerBaseUrl(oldName) + "/updateProfileName?oldName={1}&newName={2}";
- Integer rows = restTemplate.getForObject(url, Integer.class, oldName, newName);
- log.info("update profile name {} -> {}, change property rows {}", oldName, newName, rows);
- }
+ @Autowired
+ private UrlMakerService urlMakerService;
+
+ private RestTemplate restTemplate = new RestTemplate();
+
+ @Autowired
+ private EnvRepo envRepo;
+
+ @Autowired
+ protected SccaConfigServerProperties sccaConfigServerProperties;
+
+ @Override
+ public Properties readProperties(String application, String profile, String label) {
+ String url = urlMakerService.configServerBaseUrl(profile)
+ + "/readProperties?application={1}&profile={2}&label={3}";
+
+ return getForObject(url, Properties.class, application, profile, label);
+ }
+
+ @Override
+ public void deletePropertiesByEnv(String profile) {
+ // 删除某个环境下的所有配置
+ String url = urlMakerService.configServerBaseUrl(profile) + "/deletePropertiesByEnv?profile={1}";
+ Integer rows = getForObject(url, Integer.class, profile);
+ log.info("delete env [{}] property rows {}", profile, rows);
+ }
+
+ @Override
+ public void deletePropertiesByProject(String application) {
+ // 删除某个项目所有环境下的配置
+ for (Env env : envRepo.findAll()) {
+ String url = urlMakerService.configServerBaseUrl(env.getName())
+ + "/deletePropertiesByProject?application={1}";
+ Integer rows = getForObject(url, Integer.class, application);
+ log.info("delete project [{}] in env [{}] property rows {}", application, rows);
+ }
+ }
+
+ @Override
+ public void deletePropertiesByProjectAndEnv(String application, String profile) {
+ String url = urlMakerService.configServerBaseUrl(profile)
+ + "/deletePropertiesByProjectAndEnv?application={1}&profile={2}";
+ Integer rows = getForObject(url, Integer.class, profile);
+ log.info("delete project [{}] in env [{}] property rows {}", application, profile, rows);
+ }
+
+ @Override
+ public void deletePropertiesByLabel(Label label) {
+ // TODO
+ // int rows = propertyRepo.deleteAllByLabel(label);
+ // log.info("delete project [{}] label [{}] property rows {}",
+ // label.getProject().getName(), label.getName(), rows);
+ }
+
+ @Override
+ public void deletePropertiesByProjectAndEnvAndLabel(String application, String profile, String label) {
+ String url = urlMakerService.configServerBaseUrl(profile)
+ + "/deletePropertiesByProjectAndEnvAndLabel?application={1}&profile={2}&label={3}";
+ Integer rows = getForObject(url, Integer.class, application, profile, label);
+ log.info("delete {}-{}-{} property rows {}", application, profile, label, rows);
+ }
+
+ @Override
+ public void saveProperties(String application, String profile, String label, Properties update) {
+ String url = urlMakerService.configServerBaseUrl(profile)
+ + "/saveProperties?application={1}&profile={2}&label={3}";
+ Integer rows = postForObject(url, update, Integer.class, application, profile, label);
+ log.info("add {}-{}-{} rows {}", application, profile, label, rows);
+ }
+
+ @Override
+ public void updateProfileName(String oldName, String newName) {
+ String url = urlMakerService.configServerBaseUrl(oldName) + "/updateProfileName?oldName={1}&newName={2}";
+ Integer rows = postForObject(url, null, Integer.class, oldName, newName);
+ log.info("update profile name {} -> {}, change property rows {}", oldName, newName, rows);
+ }
+
+ private