提交 5ebe366e 编写于 作者: Y Yiming Liu

Ingore empty item when build release

上级 a5ff9a98
......@@ -64,6 +64,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
......
......@@ -15,6 +15,7 @@ import com.ctrip.apollo.biz.repository.ItemRepository;
import com.ctrip.apollo.biz.repository.NamespaceRepository;
import com.ctrip.apollo.biz.repository.ReleaseRepository;
import com.ctrip.apollo.core.exception.NotFoundException;
import com.ctrip.apollo.core.utils.StringUtils;
import com.google.gson.Gson;
/**
......@@ -50,6 +51,9 @@ public class ReleaseService {
List<Item> items = itemRepository.findByNamespaceIdOrderByLineNumAsc(namespace.getId());
Map<String, String> configurations = new HashMap<String, String>();
for (Item item : items) {
if (StringUtils.isEmpty(item.getKey())) {
continue;
}
configurations.put(item.getKey(), item.getValue());
}
......
......@@ -76,7 +76,7 @@ public class AdminServiceAPI {
public List<ItemDTO> findItems(String appId, Env env, String clusterName, String namespace) {
if (StringUtils.isContainEmpty(appId, clusterName, namespace)) {
return Collections.EMPTY_LIST;
return Collections.emptyList();
}
return Arrays.asList(restTemplate.getForObject(getAdminServiceHost(env) + String
......
......@@ -11,7 +11,6 @@ import com.ctrip.apollo.portal.entity.form.NamespaceReleaseModel;
import com.ctrip.apollo.portal.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -39,7 +38,7 @@ public class ConfigController {
@RequestMapping(value = "/apps/{appId}/env/{env}/clusters/{clusterName}/namespaces/{namespaceName}/items", method = RequestMethod.PUT, consumes = {
"application/json"})
public ResponseEntity modifyItems(@PathVariable String appId, @PathVariable String env,
public void modifyItems(@PathVariable String appId, @PathVariable String env,
@PathVariable String clusterName, @PathVariable String namespaceName,
@RequestBody NamespaceTextModel model) {
......@@ -56,7 +55,6 @@ public class ConfigController {
}
configService.updateConfigItemByText(model);
return ResponseEntity.ok().build();
}
@RequestMapping(value = "/apps/{appId}/env/{env}/clusters/{clusterName}/namespaces/{namespaceName}/release", method = RequestMethod.POST, consumes = {
......
package com.ctrip.apollo.portal.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -47,6 +46,7 @@ public class ConfigService {
/**
* load cluster all namespace info with items
*
* @param appId
* @param env
* @param clusterName
......@@ -56,7 +56,7 @@ public class ConfigService {
List<NamespaceDTO> namespaces = groupAPI.findGroupsByAppAndCluster(appId, env, clusterName);
if (namespaces == null || namespaces.size() == 0) {
return Collections.EMPTY_LIST;
return Collections.emptyList();
}
List<NamespaceVO> namespaceVOs = new LinkedList<>();
......@@ -67,8 +67,8 @@ public class ConfigService {
namespaceVO = parseNamespace(appId, env, clusterName, namespace);
namespaceVOs.add(namespaceVO);
} catch (Exception e) {
logger.error("parse namespace error. app id:{}, env:{}, clusterName:{}, namespace:{}", appId, env, clusterName,
namespace.getNamespaceName(), e);
logger.error("parse namespace error. app id:{}, env:{}, clusterName:{}, namespace:{}",
appId, env, clusterName, namespace.getNamespaceName(), e);
return namespaceVOs;
}
}
......@@ -76,8 +76,8 @@ public class ConfigService {
return namespaceVOs;
}
@SuppressWarnings("unchecked")
private NamespaceVO parseNamespace(String appId, Env env, String clusterName, NamespaceDTO namespace) {
NamespaceVO namespaceVO = new NamespaceVO();
namespaceVO.setNamespace(namespace);
......@@ -133,7 +133,8 @@ public class ConfigService {
/**
* parse config text and update config items
* @return parse result
*
* @return parse result
*/
public void updateConfigItemByText(NamespaceTextModel model) {
String appId = model.getAppId();
......@@ -143,8 +144,8 @@ public class ConfigService {
long namespaceId = model.getNamespaceId();
String configText = model.getConfigText();
ItemChangeSets changeSets =
resolver.resolve(namespaceId, configText, itemAPI.findItems(appId, env, clusterName, namespaceName));
ItemChangeSets changeSets = resolver.resolve(namespaceId, configText,
itemAPI.findItems(appId, env, clusterName, namespaceName));
try {
changeSets.setModifyBy(model.getModifyBy());
enrichChangeSetBaseInfo(changeSets);
......@@ -155,18 +156,19 @@ public class ConfigService {
}
private void enrichChangeSetBaseInfo(ItemChangeSets changeSets){
for (ItemDTO item: changeSets.getCreateItems()){
private void enrichChangeSetBaseInfo(ItemChangeSets changeSets) {
for (ItemDTO item : changeSets.getCreateItems()) {
item.setDataChangeCreatedTime(new Date());
}
}
/**
* createRelease config items
*
* @return
*/
public ReleaseDTO createRelease(NamespaceReleaseModel model){
return releaseAPI.release(model.getAppId(), model.getEnv(), model.getClusterName(), model.getNamespaceName(),
model.getReleaseBy(), model.getReleaseComment());
public ReleaseDTO createRelease(NamespaceReleaseModel model) {
return releaseAPI.release(model.getAppId(), model.getEnv(), model.getClusterName(),
model.getNamespaceName(), model.getReleaseBy(), model.getReleaseComment());
}
}
......@@ -45,7 +45,7 @@ public class PropertyResolver implements ConfigTextResolver {
}
ItemChangeSets changeSets = new ItemChangeSets();
Map<Integer, String> newLineNumMapItem = new HashMap();//use for delete blank and comment item
Map<Integer, String> newLineNumMapItem = new HashMap<Integer, String>();//use for delete blank and comment item
int lineCounter = 1;
for (String newItem : newItems) {
newItem = newItem.trim();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册