Browse Source

REPORT-96107 8.0和11.0.2能双开,8.0和11.0.14不能双开--方案调整

newui
John.Ying-应志浩 2 years ago
parent
commit
69dbfa1da6
  1. 2
      designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
  2. 19
      designer-base/src/main/java/com/fr/design/utils/DesignUtils.java

2
designer-base/src/main/java/com/fr/design/DesignerEnvManager.java

@ -2309,7 +2309,6 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
writeUUID(writer); writeUUID(writer);
writeActiveStatus(writer); writeActiveStatus(writer);
writeHttpsParas(writer); writeHttpsParas(writer);
writeDesignerPort(writer);
writeAlphaFineAttr(writer); writeAlphaFineAttr(writer);
writeEnvDetectorConfig(writer); writeEnvDetectorConfig(writer);
writeStartupConfig(writer); writeStartupConfig(writer);
@ -2317,6 +2316,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
writeOpenDebug(writer); writeOpenDebug(writer);
writeDesignerPushUpdateAttr(writer); writeDesignerPushUpdateAttr(writer);
writeVcsAttr(writer); writeVcsAttr(writer);
writeDesignerPort(writer);
writeSnapChatConfig(writer); writeSnapChatConfig(writer);
writeComponentReuseNotificationInfo(writer); writeComponentReuseNotificationInfo(writer);
writeDesignerLoginAttr(writer); writeDesignerLoginAttr(writer);

19
designer-base/src/main/java/com/fr/design/utils/DesignUtils.java

@ -66,7 +66,8 @@ import java.util.concurrent.TimeoutException;
* Some util method of Designer * Some util method of Designer
*/ */
public class DesignUtils { public class DesignUtils {
private static int port = DesignerPort.getInstance().getMessagePort();
private static Integer port;
private static boolean started = false; private static boolean started = false;
@ -80,6 +81,13 @@ public class DesignUtils {
} }
public synchronized static int getPort() { public synchronized static int getPort() {
if (port == null) {
if (ComparatorUtils.equals("true", System.getProperty("debug"))) {
setPort(DesignerPort.getInstance().getDebugMessagePort());
} else {
setPort(DesignerPort.getInstance().getMessagePort());
}
}
return port; return port;
} }
@ -93,7 +101,6 @@ public class DesignUtils {
return started; return started;
} }
/** /**
* 判断设计器端口是否被其他程序占用 * 判断设计器端口是否被其他程序占用
* 尝试去通信无回应就是其他程序占用端口否则需要继续判断是否为设计器进程未关闭 * 尝试去通信无回应就是其他程序占用端口否则需要继续判断是否为设计器进程未关闭
@ -103,7 +110,7 @@ public class DesignUtils {
public static boolean isPortOccupied() { public static boolean isPortOccupied() {
ExecutorService executor = null; ExecutorService executor = null;
Future<String> future = null; Future<String> future = null;
try (Socket socket = new Socket("localhost", port); try (Socket socket = new Socket("localhost", getPort());
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8)))) { PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8)))) {
writer.println("check"); writer.println("check");
@ -167,7 +174,7 @@ public class DesignUtils {
if (lines == null || lines.length == 0) { if (lines == null || lines.length == 0) {
return; return;
} }
try (Socket socket = new Socket("localhost", port)) { try (Socket socket = new Socket("localhost", getPort())) {
clientSend(lines, socket); clientSend(lines, socket);
} catch (Exception ignore) { } catch (Exception ignore) {
@ -190,7 +197,7 @@ public class DesignUtils {
try { try {
serverSocket = new ServerSocket(startPort); serverSocket = new ServerSocket(startPort);
} catch (IOException e1) { } catch (IOException e1) {
FineLoggerFactory.getLogger().error("Cannot create server socket on " + port); FineLoggerFactory.getLogger().error("Cannot create server socket on " + getPort());
} }
while (true) { while (true) {
try { try {
@ -250,7 +257,7 @@ public class DesignUtils {
reader.close(); reader.close();
socket.close(); socket.close();
} else { } else {
FineLoggerFactory.getLogger().error("Cannot create server socket on " + port); FineLoggerFactory.getLogger().error("Cannot create server socket on " + getPort());
break; break;
} }
} catch (IOException ignored) { } catch (IOException ignored) {

Loading…
Cancel
Save