ConsoleMain.java
package io.extact.rms.client.console;
import static io.extact.rms.client.console.ui.ClientConstants.*;
import java.util.logging.LogManager;
import jakarta.enterprise.inject.spi.CDI;
import org.slf4j.bridge.SLF4JBridgeHandler;
import lombok.extern.slf4j.Slf4j;
import io.extact.rms.client.console.ui.ScreenController;
import io.extact.rms.client.console.ui.textio.TextIoUtils;
import io.extact.rms.platform.env.Environment;
@Slf4j
public class ConsoleMain {
private static final String START_UP_LOGO ="""
____ __ ___ _____
/ __ \\ / |/ / / ___/
/ /_/ / / /|_/ / \\__ \\
/ _, _/ / / / /_ ___/ /
/_/ |_(_)_/ /_/(_)____(_)
""";
public static void main(String[] args) throws Exception {
// Fiddlerの設定
// System.setProperty("http.proxyHost", "localhost");
// System.setProperty("http.proxyPort", "8888");
// System.setProperty("web-api/mp-rest/url", "http://pmr216n.primo.mamezou.com:7001");
// System.err.println("★Fiddlerの設定が入ってるのでFiddler立ち上げてね!");
// System.err.println("★あと宛先アドレスはlocalhostではなくFQCN指定の方に変えてね!");
try {
// java.util.loggingの出力をSLF4Jへdelegate
LogManager.getLogManager().reset();
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
// CDIコンテナの起動
io.helidon.microprofile.cdi.Main.main(args);
startupLog();
startupLogo();
ScreenController controller = CDI.current().select(ScreenController.class).get();
while (true) {
try {
controller.start();
break;
} catch (Exception e) {
log.error("Back to start..", e);
TextIoUtils.printErrorInformation(UNKNOWN_ERROR_INFORMATION);
}
}
// swingコンソールはmainプロセスが残るためexitする
System.exit(0);
} catch (Throwable e) {
log.error("error occured.", e);
throw e;
}
}
private static void startupLog() {
var mainJarInfo = Environment.getMainJarInfo();
log.info(System.lineSeparator() +
"Startup-Module:" + mainJarInfo.startupModuleInfo() + System.lineSeparator() +
"Version:" + mainJarInfo.getVersion() + System.lineSeparator() +
"Build-Time:" + mainJarInfo.getBuildtimeInfo()
);
}
private static void startupLogo() {
TextIoUtils.println(START_UP_LOGO);
}
}