change: 调整jline检测逻辑, 移除ip-provider相关单元测试.

This commit is contained in:
2025-01-15 15:50:26 +08:00
parent 79216c27bb
commit b3c79f49a0
2 changed files with 30 additions and 51 deletions

View File

@@ -14,6 +14,8 @@ import org.jline.reader.impl.history.DefaultHistory;
import org.jline.terminal.Terminal; import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder; import org.jline.terminal.TerminalBuilder;
import java.io.IOException;
/** /**
* 启动类 * 启动类
* *
@@ -36,7 +38,7 @@ public final class ManagerLite {
*/ */
private static SystemInitializer systemInitializer; private static SystemInitializer systemInitializer;
public static void main(String[] args) throws Exception { public static void main(String[] args) {
// 配置初始化 // 配置初始化
initConfiguration(args); initConfiguration(args);
@@ -47,7 +49,16 @@ public final class ManagerLite {
// 系统初始化 // 系统初始化
initSystem(); initSystem();
Terminal terminal = TerminalBuilder.builder().system(true).build(); Terminal terminal;
try {
terminal = TerminalBuilder.builder()
.system(true)
.build();
} catch (IOException e) {
// 不应该发生
System.exit(0);
throw new RuntimeException(e);
}
LineReader lineReader = LineReaderBuilder.builder() LineReader lineReader = LineReaderBuilder.builder()
.terminal(terminal) .terminal(terminal)
// 如果想记录历史命令,可以配置一个 History // 如果想记录历史命令,可以配置一个 History
@@ -60,19 +71,26 @@ public final class ManagerLite {
while (true) { while (true) {
// 该方法会阻塞,直到用户敲回车 // 该方法会阻塞,直到用户敲回车
String line = lineReader.readLine(prompt); try {
String cmd = lineReader.readLine(prompt);
// 当用户输入 exit 或 quit就退出循环 // 当用户输入 exit 或 quit就退出循环
if ("exit".equalsIgnoreCase(line) if ("exit".equalsIgnoreCase(cmd)) {
|| "quit".equalsIgnoreCase(line)) { break;
break; }
// 在这里可以对用户输入做进一步处理
terminal.flush();
} catch (Exception e) {
System.exit(0);
} }
// 在这里可以对用户输入做进一步处理
terminal.writer().println("You entered: " + line);
terminal.flush();
} }
terminal.close(); try {
System.exit(0);
terminal.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
} }
/** /**

View File

@@ -1,17 +1,8 @@
package com.serliunx.ddns.test.support; package com.serliunx.ddns.test.support;
import com.serliunx.ddns.support.ipprovider.IcanhazipProvider;
import com.serliunx.ddns.support.ipprovider.IpApiProvider;
import com.serliunx.ddns.support.ipprovider.Provider;
import com.serliunx.ddns.support.ipprovider.ScheduledProvider;
import org.junit.Test;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/** /**
* 供应器测试 * 供应器测试
* //TODO 暂时移除,待重写单元测试
* *
* @author <a href="mailto:serliunx@yeah.net">SerLiunx</a> * @author <a href="mailto:serliunx@yeah.net">SerLiunx</a>
* @version 1.0.3 * @version 1.0.3
@@ -19,34 +10,4 @@ import java.util.concurrent.TimeUnit;
*/ */
public class ProviderTest { public class ProviderTest {
@Test
public void testIpApiProvider() {
Provider provider = new IpApiProvider();
System.out.println(provider.get());
}
@Test
public void testScheduledProvider() throws Exception {
ScheduledProvider provider = new ScheduledProvider(new IpApiProvider(), 3);
String ip = provider.get();
System.out.println(ip);
}
@Test
public void testIcanhazipProvider() {
Provider provider = new IcanhazipProvider();
System.out.println(provider.get());
}
@Test
public void testScheduledProviderForRunnable() throws InterruptedException {
ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
ScheduledProvider provider = new ScheduledProvider(new IpApiProvider(), 3);
provider.close();
ses.scheduleAtFixedRate(provider, 0, 1000, TimeUnit.MILLISECONDS);
provider.whenUpdate(ip -> System.out.println("ip update: " + ip));
TimeUnit.SECONDS.sleep(120);
}
} }