提交 894554d0 编写于 作者: O o2null

Merge branch 'feature/index' into 'develop'

更新cetner输出.

See merge request o2oa/o2oa!831
......@@ -9,9 +9,12 @@ import com.x.base.core.project.tools.NumberTools;
public class Node extends ConfigObject {
private static final long serialVersionUID = -6598734923326779693L;
private static final Integer DEFAULT_NODEAGENTPORT = 20010;
private static final String DEFAULT_BANNER = "O2OA";
private static final Boolean DEFAULT_SELFHEALTHCHECKENABLE = false;
//private static final Integer DEFAULT_ORDER = 0;
public static Node defaultInstance() {
Node o = new Node();
......@@ -28,11 +31,14 @@ public class Node extends ConfigObject {
o.nodeAgentPort = DEFAULT_NODEAGENTPORT;
o.autoStart = true;
o.selfHealthCheckEnable = DEFAULT_SELFHEALTHCHECKENABLE;
//o.order = DEFAULT_ORDER;
return o;
}
@FieldDescribe("是否启用")
private Boolean enable;
@FieldDescribe("节点顺序,节点选举顺序0,1,2...")
private Integer order;
@FieldDescribe("Center服务器配置")
private CenterServer center;
@FieldDescribe("Application服务器配置")
......@@ -62,6 +68,10 @@ public class Node extends ConfigObject {
@FieldDescribe("是否启用节点上模块健康自检查,如果启用在提交到center之前将进行模块的健康检查.默认false")
private Boolean selfHealthCheckEnable;
// public Integer getOrder() {
// return order == null ? DEFAULT_ORDER : this.order;
// }
public Boolean getSelfHealthCheckEnable() {
return BooleanUtils.isTrue(selfHealthCheckEnable);
}
......
......@@ -2,7 +2,6 @@ package com.x.base.core.project.config;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -13,10 +12,8 @@ import java.util.Objects;
import java.util.Random;
import java.util.concurrent.ConcurrentSkipListMap;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
......@@ -27,8 +24,6 @@ public class WebServers extends ConcurrentSkipListMap<String, WebServer> {
private static final long serialVersionUID = -706102090064680898L;
private static final String MAP_LOGINPAGE = "loginPage";
private static final Random RANDOM = new SecureRandom();
public WebServers() {
......@@ -61,66 +56,34 @@ public class WebServers extends ConcurrentSkipListMap<String, WebServer> {
File dir = new File(Config.base(), "servers/webServer/x_desktop/res/config");
FileUtils.forceMkdir(dir);
File file = new File(dir, "config.json");
Gson gson = XGsonBuilder.instance();
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
/**
* 覆盖掉配置的参数
* <p>
* 先取本节点的center如果没有那么取第一个center
*/
com.x.base.core.project.config.CenterServer centerServerConfig = Config.currentNode().getCenter();
List<Map<String, String>> centers = new ArrayList<>();
map.put("center", centers);
if ((null == centerServerConfig) || BooleanUtils.isNotTrue(centerServerConfig.getEnable())) {
Entry<String, CenterServer> entry = Config.nodes().centerServers().orderedEntry().get(0);
centerServerConfig = entry.getValue();
// 三服务器合一运行不需要输出centers,否则需要输出centers
if ((!Objects.equals(Config.currentNode().getWeb().getPort(), Config.currentNode().getApplication().getPort()))
|| (!Objects.equals(Config.currentNode().getWeb().getPort(),
Config.currentNode().getCenter().getPort()))) {
List<Map<String, String>> centers = new ArrayList<>();
map.put("center", centers);
Map<String, String> center = new HashMap<>();
center.put("host", entry.getKey());
center.put("port", centerServerConfig.getPort().toString());
center.put("host", "");
center.put("port", Config.currentNode().getWeb().getPort().toString());
centers.add(center);
if (StringUtils.isNotEmpty(centerServerConfig.getProxyHost())) {
if (!Objects.equals(Config.currentNode().getWeb().getProxyPort(),
Config.currentNode().getWeb().getPort())) {
center = new HashMap<>();
center.put("host", centerServerConfig.getProxyHost());
center.put("port", centerServerConfig.getProxyPort().toString());
center.put("host", "");
center.put("port", Config.currentNode().getWeb().getProxyPort().toString());
centers.add(center);
}
if (!Objects.equals(centerServerConfig.getProxyPort(), centerServerConfig.getPort())) {
center = new HashMap<>();
center.put("host", entry.getKey());
center.put("port", centerServerConfig.getProxyPort().toString());
centers.add(center);
}
}
Map<String, String> center = new HashMap<>();
center.put("host", "");
center.put("port", centerServerConfig.getPort().toString());
centers.add(center);
if (!Objects.equals(centerServerConfig.getProxyPort(), centerServerConfig.getPort())) {
center = new HashMap<>();
center.put("host", "");
center.put("port", centerServerConfig.getProxyPort().toString());
centers.add(center);
}
// map.putAll(centerServerConfig.getConfig());
/** 写入systemName */
// 写入systemName
map.put("footer", Config.collect().getFooter());
map.put("title", Config.collect().getTitle());
map.put("version", Config.version());
map.put("appUrl", Config.collect().getAppUrl());
/**
* if (BooleanUtils.isTrue(centerServerConfig.getSslEnable())) { //
* map.put("app_protocol", "https:"); // } else { // map.put("app_protocol",
* "http:"); // } 上面的无效
*/
map.put("app_protocol", "auto");
if ((null != Config.portal().getLoginPage())
&& (BooleanUtils.isTrue(Config.portal().getLoginPage().getEnable()))) {
map.put(MAP_LOGINPAGE, Config.portal().getLoginPage());
} else {
map.put(MAP_LOGINPAGE, Config.portal().getLoginPage());
}
map.put("loginPage", Config.portal().getLoginPage());
map.put("indexPage", Config.portal().getIndexPage());
writeWebServerConfigPasswordPolicy(map);
......@@ -133,10 +96,11 @@ public class WebServers extends ConcurrentSkipListMap<String, WebServer> {
for (Entry<String, JsonElement> en : Config.web().entrySet()) {
map.put(en.getKey(), en.getValue());
}
for (Entry<String, JsonElement> en : Config.mock().entrySet()) {
map.put(en.getKey(), en.getValue());
}
writeWebServerConfigProxyEnable(map, Config.currentNode().getWeb());
FileUtils.writeStringToFile(file, gson.toJson(map), DefaultCharset.charset);
}
......@@ -202,14 +166,14 @@ public class WebServers extends ConcurrentSkipListMap<String, WebServer> {
map.put("passwordRegexHint", Config.person().getPasswordRegexHint());
}
/**
* 写入是否启用了center和application的代理
*
* @param o
* @param webServer
*/
private static void writeWebServerConfigProxyEnable(Map<String, Object> o, WebServer webServer) {
o.put("proxyApplicationEnable", webServer.getProxyApplicationEnable());
o.put("proxyCenterEnable", webServer.getProxyCenterEnable());
}
// /**
// * 写入是否启用了center和application的代理
// *
// * @param o
// * @param webServer
// */
// private static void writeWebServerConfigProxyEnable(Map<String, Object> o, WebServer webServer) {
// o.put("proxyApplicationEnable", webServer.getProxyApplicationEnable());
// o.put("proxyCenterEnable", webServer.getProxyCenterEnable());
// }
}
......@@ -59,7 +59,6 @@ public class CenterServerTools extends JettySeverTools {
modified(war, dir);
if (Objects.equals(Config.currentNode().getApplication().getPort(), centerServer.getPort())) {
// return startInApplication(centerServer);
return null;
} else {
return startStandalone(centerServer);
......
......@@ -243,4 +243,5 @@ public class WebServerTools extends JettySeverTools {
FileUtils.copyDirectory(p.toFile(), Config.path_servers_webServer(true).toFile());
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册