diff --git a/bootstrap/pom.xml b/bootstrap/pom.xml new file mode 100644 index 0000000..4ca982e --- /dev/null +++ b/bootstrap/pom.xml @@ -0,0 +1,58 @@ + + + + nacosctl + com.alibaba.nacos + ${revision} + + 4.0.0 + + nacos-ctl-bootstrap + + + + com.alibaba.nacos + nacos-ctl-core + + + com.alibaba.nacos + nacos-ctl-interaction + + + com.alibaba.nacos + nacos-ctl-command + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + package + + single + + + + + + com.alibaba.nacos.ctl.bootstrap.ClientMain + + + + + jar-with-dependencies + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/alibaba/nacos/cli/ClientMain.java b/bootstrap/src/main/java/com/alibaba/nacos/ctl/bootstrap/ClientMain.java similarity index 78% rename from src/main/java/com/alibaba/nacos/cli/ClientMain.java rename to bootstrap/src/main/java/com/alibaba/nacos/ctl/bootstrap/ClientMain.java index ee3aa9c..9ccd89b 100644 --- a/src/main/java/com/alibaba/nacos/cli/ClientMain.java +++ b/bootstrap/src/main/java/com/alibaba/nacos/ctl/bootstrap/ClientMain.java @@ -1,54 +1,54 @@ -package com.alibaba.nacos.cli; - -import com.alibaba.nacos.cli.commands.NacosCtl; -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.InputGetter; -import com.alibaba.nacos.cli.utils.StringUtils; -import picocli.CommandLine; - -/** - * 黑窗命令行客户端 - * - * @author lehr - */ -public class ClientMain { - - public static void main(String[] args) throws HandlerException { - - System.out.println("NacosCtl Loading...\n"); - InputGetter.init(); - - System.out.println("Loading Nacos client sdk...\n"); - LogicHandler.init(); - - new CommandLine(new NacosCtl()).execute(args); - - loopExecute(InputGetter.getInstance()); - } - - private static void loopExecute(InputGetter in) { - - String[] args; - - // 循环执行命令 - while (true) { - - String line = in.nextLine(); - args = StringUtils.parseInput(line); - // 忽略无效输入 - if (args.length < 1 || args[0].length() < 1) { - continue; - } - // 给Picocli执行命令 - int ret = new CommandLine(new NacosCtl()).execute(args); - // 特殊的流程控制,通过返回值来判断,-1是退出,-2是清屏 - if (ret == -1) { - break; - } - if (ret == -2) { - in.clear(); - } - } - } -} +package com.alibaba.nacos.ctl.bootstrap; + +import com.alibaba.nacos.ctl.command.NacosCtl; +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.InputGetter; +import com.alibaba.nacos.ctl.bootstrap.utils.StringUtils; +import picocli.CommandLine; + +/** + * 黑窗命令行客户端 + * + * @author lehr + */ +public class ClientMain { + + public static void main(String[] args) throws HandlerException { + + System.out.println("NacosCtl Loading...\n"); + InputGetter.init(); + + System.out.println("Loading Nacos client sdk...\n"); + LogicHandler.init(); + + new CommandLine(new NacosCtl()).execute(args); + + loopExecute(InputGetter.getInstance()); + } + + private static void loopExecute(InputGetter in) { + + String[] args; + + // 循环执行命令 + while (true) { + + String line = in.nextLine(); + args = StringUtils.parseInput(line); + // 忽略无效输入 + if (args.length < 1 || args[0].length() < 1) { + continue; + } + // 给Picocli执行命令 + int ret = new CommandLine(new NacosCtl()).execute(args); + // 特殊的流程控制,通过返回值来判断,-1是退出,-2是清屏 + if (ret == -1) { + break; + } + if (ret == -2) { + in.clear(); + } + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/utils/StringUtils.java b/bootstrap/src/main/java/com/alibaba/nacos/ctl/bootstrap/utils/StringUtils.java similarity index 97% rename from src/main/java/com/alibaba/nacos/cli/utils/StringUtils.java rename to bootstrap/src/main/java/com/alibaba/nacos/ctl/bootstrap/utils/StringUtils.java index b6a114b..25a3c24 100644 --- a/src/main/java/com/alibaba/nacos/cli/utils/StringUtils.java +++ b/bootstrap/src/main/java/com/alibaba/nacos/ctl/bootstrap/utils/StringUtils.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.utils; +package com.alibaba.nacos.ctl.bootstrap.utils; import java.util.ArrayList; import java.util.List; diff --git a/bootstrap/src/main/resources/logback.xml b/bootstrap/src/main/resources/logback.xml new file mode 100644 index 0000000..fdf2a43 --- /dev/null +++ b/bootstrap/src/main/resources/logback.xml @@ -0,0 +1,10 @@ + + + + %-4relative [%thread] %-5level %logger{35} - %msg %n + + + + + + \ No newline at end of file diff --git a/command/pom.xml b/command/pom.xml new file mode 100644 index 0000000..d91d3d3 --- /dev/null +++ b/command/pom.xml @@ -0,0 +1,34 @@ + + + + nacosctl + com.alibaba.nacos + ${revision} + + 4.0.0 + + nacos-ctl-command + + + + com.alibaba.nacos + nacos-ctl-core + + + com.alibaba.nacos + nacos-ctl-interaction + + + + info.picocli + picocli + + + de.vandermeer + asciitable + + + + \ No newline at end of file diff --git a/command/src/main/java/com/alibaba/nacos/ctl/command/NacosClear.java b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosClear.java new file mode 100644 index 0000000..355d7ee --- /dev/null +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosClear.java @@ -0,0 +1,29 @@ +package com.alibaba.nacos.ctl.command; + +import picocli.CommandLine; + +import java.util.concurrent.Callable; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_CLEAR; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_CLEAR; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_CLEAR; + +/** + * clear the terminal, it only works with jline input + * + * @author lehr + */ +@CommandLine.Command(name = NAME_CLEAR, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_CLEAR, description = DESCRIPTION_CLEAR) +public class NacosClear implements Callable { + + @Override + public Integer call() throws Exception { + return -2; + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/NacosCtl.java b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosCtl.java similarity index 71% rename from src/main/java/com/alibaba/nacos/cli/commands/NacosCtl.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/NacosCtl.java index df9fbe1..dcf1ad1 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/NacosCtl.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosCtl.java @@ -1,77 +1,77 @@ -package com.alibaba.nacos.cli.commands; - -import com.alibaba.nacos.cli.commands.config.NacosConfig; -import com.alibaba.nacos.cli.commands.instance.NacosInstance; -import com.alibaba.nacos.cli.commands.namespace.NacosNamespace; -import com.alibaba.nacos.cli.commands.service.NacosService; -import com.alibaba.nacos.cli.commands.switches.NacosSwitch; -import com.alibaba.nacos.cli.config.ConfigLoader; -import picocli.CommandLine; -import picocli.CommandLine.Command; - -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.Map; - -import static com.alibaba.nacos.cli.utils.HintUtils.APP_NAME; -import static com.alibaba.nacos.cli.utils.HintUtils.CLI_DESCRIPTION; -import static com.alibaba.nacos.cli.utils.HintUtils.COMMAND_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.FOOTER; -import static com.alibaba.nacos.cli.utils.HintUtils.GREETING; -import static com.alibaba.nacos.cli.utils.HintUtils.MIXIN_STANDARD_HELP_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.VERSION_NAME; - -/** - * the main command, based on picocli - * - * @author lehr - */ -@Command(name = APP_NAME, mixinStandardHelpOptions = MIXIN_STANDARD_HELP_OPTIONS, version = VERSION_NAME, description = CLI_DESCRIPTION, commandListHeading = COMMAND_LIST_HEADING, footer = FOOTER, subcommands = { - CommandLine.HelpCommand.class, NacosQuit.class, NacosClear.class, NacosConfig.class, NacosNamespace.class, - NacosInstance.class, NacosSwitch.class, NacosService.class, - // NacosMetrics.class, - NacosUse.class, - // NacosWatch.class, -}) -public class NacosCtl implements Runnable { - - @CommandLine.Option(names = {"-e", - "--endpoint"}, paramLabel = "", description = "The Nacos-Server host Ip.") - private String host; - - @CommandLine.Option(names = {"-p", "--port"}, paramLabel = "", description = "The port of Nacos-Server.") - private Integer port; - - @CommandLine.Option(names = {"-u", - "--username"}, paramLabel = "", description = "Nacos authentication username.") - private String username; - - @CommandLine.Option(names = {"-pswd", - "--password"}, paramLabel = "", description = "Nacos password username.") - private String password; - - @CommandLine.Option(names = {"-ak", "--accessKey"}, paramLabel = "", description = "Nacos access key.") - private String accessKey; - - @CommandLine.Option(names = {"-sk", "--secretKey"}, paramLabel = "", description = "Nacos secret key.") - private String secretKey; - - @Override - public void run() { - System.out.println(GREETING); - Map confs = new HashMap<>(); - for (Field f : this.getClass().getDeclaredFields()) { - if (f.isAnnotationPresent(CommandLine.Option.class)) { - try { - Object o = f.get(this); - if (o != null) { - confs.put(f.getName(), o.toString()); - } - } catch (Exception e) { - //todo - } - } - } - ConfigLoader.preload(confs); - } -} +package com.alibaba.nacos.ctl.command; + +import com.alibaba.nacos.ctl.command.config.NacosConfig; +import com.alibaba.nacos.ctl.command.instance.NacosInstance; +import com.alibaba.nacos.ctl.command.namespace.NacosNamespace; +import com.alibaba.nacos.ctl.command.service.NacosService; +import com.alibaba.nacos.ctl.command.switches.NacosSwitch; +import com.alibaba.nacos.ctl.core.config.ConfigLoader; +import picocli.CommandLine; +import picocli.CommandLine.Command; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.APP_NAME; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.CLI_DESCRIPTION; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.COMMAND_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.FOOTER; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.GREETING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.MIXIN_STANDARD_HELP_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.VERSION_NAME; + +/** + * the main command, based on picocli + * + * @author lehr + */ +@Command(name = APP_NAME, mixinStandardHelpOptions = MIXIN_STANDARD_HELP_OPTIONS, version = VERSION_NAME, description = CLI_DESCRIPTION, commandListHeading = COMMAND_LIST_HEADING, footer = FOOTER, subcommands = { + CommandLine.HelpCommand.class, NacosQuit.class, NacosClear.class, NacosConfig.class, NacosNamespace.class, + NacosInstance.class, NacosSwitch.class, NacosService.class, + // NacosMetrics.class, + NacosUse.class, + // NacosWatch.class, +}) +public class NacosCtl implements Runnable { + + @CommandLine.Option(names = {"-e", + "--endpoint"}, paramLabel = "", description = "The Nacos-Server host Ip.") + private String host; + + @CommandLine.Option(names = {"-p", "--port"}, paramLabel = "", description = "The port of Nacos-Server.") + private Integer port; + + @CommandLine.Option(names = {"-u", + "--username"}, paramLabel = "", description = "Nacos authentication username.") + private String username; + + @CommandLine.Option(names = {"-pswd", + "--password"}, paramLabel = "", description = "Nacos password username.") + private String password; + + @CommandLine.Option(names = {"-ak", "--accessKey"}, paramLabel = "", description = "Nacos access key.") + private String accessKey; + + @CommandLine.Option(names = {"-sk", "--secretKey"}, paramLabel = "", description = "Nacos secret key.") + private String secretKey; + + @Override + public void run() { + System.out.println(GREETING); + Map confs = new HashMap<>(); + for (Field f : this.getClass().getDeclaredFields()) { + if (f.isAnnotationPresent(CommandLine.Option.class)) { + try { + Object o = f.get(this); + if (o != null) { + confs.put(f.getName(), o.toString()); + } + } catch (Exception e) { + //todo + } + } + } + ConfigLoader.preload(confs); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/NacosMetrics.java b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosMetrics.java similarity index 87% rename from src/main/java/com/alibaba/nacos/cli/commands/NacosMetrics.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/NacosMetrics.java index 734a39e..b606c7d 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/NacosMetrics.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosMetrics.java @@ -1,152 +1,152 @@ -package com.alibaba.nacos.cli.commands; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Stream; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_METRICS; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_METRICS; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_METRICS; - -/** - * get metrics data from nacos prometheus http port - * - * @author lehr - */ -@CommandLine.Command(name = NAME_METRICS, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_METRICS, description = DESCRIPTION_METRICS, subcommands = { - CommandLine.HelpCommand.class}) -@Deprecated -public class NacosMetrics implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "The module name of the metrics") - public Module module; - - @Override - public void run() { - - try { - Stream metrics = LogicHandler.getMetrics(); - metrics.map(this::mapModule).filter(Objects::nonNull).sorted().forEachOrdered(System.out::println); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } - - private enum Module { - /** - * nacos 客户端模块参数 - */ - CLIENT, - /** - * nacos server的参数 - */ - NACOS, - /** - * jvm和gc相关信息 - */ - JVM, - /** - * 异常信息 - */ - EXCEPTION - } - - /** - * translate metrics name to chinese. - * - * @param s - * @return - */ - public String mapModule(String s) { - - String backup = s; - - Map map = enumMap.get(module); - for (Map.Entry e : map.entrySet()) { - if (s.startsWith(e.getKey())) { - s = s.replace(e.getKey(), e.getValue()); - break; - } - } - - if (backup.equals(s)) { - return null; - } else { - return s; - } - } - - private static Map clientMap; - - private static Map exceptionMap; - - private static Map nacosMap; - - private static Map jvmMap; - - private static Map> enumMap = new HashMap<>(); - - static { - jvmMap = new HashMap<>(); - jvmMap.put("system_cpu_usage", "CPU使用率"); - jvmMap.put("system_load_average_1m", "CPU负载"); - jvmMap.put("jvm_memory_used_bytes", "内存使用字节"); - jvmMap.put("jvm_memory_max_bytes", "内存最大字节"); - jvmMap.put("jvm_gc_pause_seconds_count", "GC次数"); - jvmMap.put("jvm_gc_pause_seconds_sum", "GC耗时"); - jvmMap.put("jvm_threads_daemon", "线程数"); - - clientMap = new HashMap<>(); - clientMap.put("nacos_monitor{name='subServiceCount'}", "订阅的服务数"); - clientMap.put("nacos_monitor{name='pubServiceCount'}", "发布的服务数"); - clientMap.put("nacos_monitor{name='configListenSize'}", "监听的配置数"); - clientMap.put("nacos_client_request_seconds_count", "请求次数"); - clientMap.put("nacos_client_request_seconds_sum", "请求总耗时"); - - nacosMap = new HashMap<>(); - nacosMap.put("http_server_requests_seconds_count", "http请求次数"); - nacosMap.put("http_server_requests_seconds_sum", "http请求总耗时"); - nacosMap.put("nacos_timer_seconds_sum", "Nacos config水平通知耗时"); - nacosMap.put("nacos_timer_seconds_count", "Nacos config水平通知次数"); - nacosMap.put("nacos_monitor{module=\"config\",name=\"longPolling\",}", "Nacos config长连接数"); - nacosMap.put("nacos_monitor{module=\"config\",name=\"configCount\",}", "Nacos config配置个数"); - nacosMap.put("nacos_monitor{module=\"config\",name=\"dumpTask\",}", "Nacos config配置落盘任务堆积数"); - nacosMap.put("nacos_monitor{module=\"config\",name=\"notifyTask\",}", "Nacos config配置水平通知任务堆积数"); - nacosMap.put("nacos_monitor{module=\"config\",name=\"getConfig\",}", "Nacos config读配置统计数"); - nacosMap.put("nacos_monitor{module=\"config\",name=\"publish\",}", "Nacos config写配置统计数"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"ipCount\",}", "Nacos naming ip个数"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"domCount\",}", "Nacos naming域名个数"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"failedPush\",}", "Nacos naming推送失败数"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"avgPushCost\",}", "Nacos naming平均推送耗时"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"leaderStatus\",}", "Nacos naming角色状态"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"maxPushCost\",}", "Nacos naming最大推送耗时"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"mysqlhealthCheck\",}", "Nacos naming mysql健康检查次数"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"httpHealthCheck\",}", "Nacos naming http健康检查次数"); - nacosMap.put("nacos_monitor{module=\"naming\",name=\"tcpHealthCheck\",}", "Nacos naming tcp健康检查次数"); - - exceptionMap = new HashMap<>(); - exceptionMap.put("nacos_exception_total{name='db'}", "数据库异常"); - exceptionMap.put("nacos_exception_total{name='configNotify'}", "Nacos config水平通知失败"); - exceptionMap.put("nacos_exception_total{name='unhealth'}", "Nacos config server之间健康检查异常"); - exceptionMap.put("nacos_exception_total{name='disk'}", "Nacos naming写磁盘异常"); - exceptionMap.put("nacos_exception_total{name='leaderSendBeatFailed'}", "Nacos naming leader发送心跳异常"); - exceptionMap.put("nacos_exception_total{name='illegalArgument'}", "请求参数不合法"); - exceptionMap.put("nacos_exception_total{name='nacos'}", "Nacos请求响应内部错误异常"); - - enumMap.put(Module.NACOS, nacosMap); - enumMap.put(Module.JVM, jvmMap); - enumMap.put(Module.EXCEPTION, exceptionMap); - enumMap.put(Module.CLIENT, clientMap); - } -} +package com.alibaba.nacos.ctl.command; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_METRICS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_METRICS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_METRICS; + +/** + * get metrics data from nacos prometheus http port + * + * @author lehr + */ +@CommandLine.Command(name = NAME_METRICS, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_METRICS, description = DESCRIPTION_METRICS, subcommands = { + CommandLine.HelpCommand.class}) +@Deprecated +public class NacosMetrics implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "The module name of the metrics") + public Module module; + + @Override + public void run() { + + try { + Stream metrics = LogicHandler.getMetrics(); + metrics.map(this::mapModule).filter(Objects::nonNull).sorted().forEachOrdered(System.out::println); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } + + private enum Module { + /** + * nacos 客户端模块参数 + */ + CLIENT, + /** + * nacos server的参数 + */ + NACOS, + /** + * jvm和gc相关信息 + */ + JVM, + /** + * 异常信息 + */ + EXCEPTION + } + + /** + * translate metrics name to chinese. + * + * @param s + * @return + */ + public String mapModule(String s) { + + String backup = s; + + Map map = enumMap.get(module); + for (Map.Entry e : map.entrySet()) { + if (s.startsWith(e.getKey())) { + s = s.replace(e.getKey(), e.getValue()); + break; + } + } + + if (backup.equals(s)) { + return null; + } else { + return s; + } + } + + private static Map clientMap; + + private static Map exceptionMap; + + private static Map nacosMap; + + private static Map jvmMap; + + private static Map> enumMap = new HashMap<>(); + + static { + jvmMap = new HashMap<>(); + jvmMap.put("system_cpu_usage", "CPU使用率"); + jvmMap.put("system_load_average_1m", "CPU负载"); + jvmMap.put("jvm_memory_used_bytes", "内存使用字节"); + jvmMap.put("jvm_memory_max_bytes", "内存最大字节"); + jvmMap.put("jvm_gc_pause_seconds_count", "GC次数"); + jvmMap.put("jvm_gc_pause_seconds_sum", "GC耗时"); + jvmMap.put("jvm_threads_daemon", "线程数"); + + clientMap = new HashMap<>(); + clientMap.put("nacos_monitor{name='subServiceCount'}", "订阅的服务数"); + clientMap.put("nacos_monitor{name='pubServiceCount'}", "发布的服务数"); + clientMap.put("nacos_monitor{name='configListenSize'}", "监听的配置数"); + clientMap.put("nacos_client_request_seconds_count", "请求次数"); + clientMap.put("nacos_client_request_seconds_sum", "请求总耗时"); + + nacosMap = new HashMap<>(); + nacosMap.put("http_server_requests_seconds_count", "http请求次数"); + nacosMap.put("http_server_requests_seconds_sum", "http请求总耗时"); + nacosMap.put("nacos_timer_seconds_sum", "Nacos config水平通知耗时"); + nacosMap.put("nacos_timer_seconds_count", "Nacos config水平通知次数"); + nacosMap.put("nacos_monitor{module=\"config\",name=\"longPolling\",}", "Nacos config长连接数"); + nacosMap.put("nacos_monitor{module=\"config\",name=\"configCount\",}", "Nacos config配置个数"); + nacosMap.put("nacos_monitor{module=\"config\",name=\"dumpTask\",}", "Nacos config配置落盘任务堆积数"); + nacosMap.put("nacos_monitor{module=\"config\",name=\"notifyTask\",}", "Nacos config配置水平通知任务堆积数"); + nacosMap.put("nacos_monitor{module=\"config\",name=\"getConfig\",}", "Nacos config读配置统计数"); + nacosMap.put("nacos_monitor{module=\"config\",name=\"publish\",}", "Nacos config写配置统计数"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"ipCount\",}", "Nacos naming ip个数"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"domCount\",}", "Nacos naming域名个数"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"failedPush\",}", "Nacos naming推送失败数"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"avgPushCost\",}", "Nacos naming平均推送耗时"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"leaderStatus\",}", "Nacos naming角色状态"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"maxPushCost\",}", "Nacos naming最大推送耗时"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"mysqlhealthCheck\",}", "Nacos naming mysql健康检查次数"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"httpHealthCheck\",}", "Nacos naming http健康检查次数"); + nacosMap.put("nacos_monitor{module=\"naming\",name=\"tcpHealthCheck\",}", "Nacos naming tcp健康检查次数"); + + exceptionMap = new HashMap<>(); + exceptionMap.put("nacos_exception_total{name='db'}", "数据库异常"); + exceptionMap.put("nacos_exception_total{name='configNotify'}", "Nacos config水平通知失败"); + exceptionMap.put("nacos_exception_total{name='unhealth'}", "Nacos config server之间健康检查异常"); + exceptionMap.put("nacos_exception_total{name='disk'}", "Nacos naming写磁盘异常"); + exceptionMap.put("nacos_exception_total{name='leaderSendBeatFailed'}", "Nacos naming leader发送心跳异常"); + exceptionMap.put("nacos_exception_total{name='illegalArgument'}", "请求参数不合法"); + exceptionMap.put("nacos_exception_total{name='nacos'}", "Nacos请求响应内部错误异常"); + + enumMap.put(Module.NACOS, nacosMap); + enumMap.put(Module.JVM, jvmMap); + enumMap.put(Module.EXCEPTION, exceptionMap); + enumMap.put(Module.CLIENT, clientMap); + } +} diff --git a/command/src/main/java/com/alibaba/nacos/ctl/command/NacosQuit.java b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosQuit.java new file mode 100644 index 0000000..961d2a1 --- /dev/null +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosQuit.java @@ -0,0 +1,37 @@ +package com.alibaba.nacos.ctl.command; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import java.util.concurrent.Callable; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_QUIT; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_QUIT; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_QUIT; + +/** + * quit from cli + * + * @author lehr + */ +@CommandLine.Command(name = NAME_QUIT, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_QUIT, description = DESCRIPTION_QUIT) +public class NacosQuit implements Callable { + + @Override + public Integer call() { + try { + LogicHandler.shutdown(); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + System.out.println("bye!"); + return -1; + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/NacosUse.java b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosUse.java similarity index 50% rename from src/main/java/com/alibaba/nacos/cli/commands/NacosUse.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/NacosUse.java index ff7553f..b2282b0 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/NacosUse.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/NacosUse.java @@ -1,38 +1,38 @@ -package com.alibaba.nacos.cli.commands; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_USE; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_USE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_USE; - -/** - * switch to different namespace - * - * @author lehr - */ -@CommandLine.Command(name = NAME_USE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_USE, description = DESCRIPTION_USE) -public class NacosUse implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Specify a namespace you want to use.") - String namespace; - - - @Override - public void run() { - try { - LogicHandler.useNamespace(namespace); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_USE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_USE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_USE; + +/** + * switch to different namespace + * + * @author lehr + */ +@CommandLine.Command(name = NAME_USE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_USE, description = DESCRIPTION_USE) +public class NacosUse implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Specify a namespace you want to use.") + String namespace; + + + @Override + public void run() { + try { + LogicHandler.useNamespace(namespace); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfig.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfig.java similarity index 52% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfig.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfig.java index 06a9b60..af71003 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfig.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfig.java @@ -1,34 +1,34 @@ -package com.alibaba.nacos.cli.commands.config; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_CONFIG; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_CONFIG; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_CONFIG; - -/** - * config subcommand - * - * @author lehr - */ -@CommandLine.Command(name = NAME_CONFIG, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_CONFIG, description = DESCRIPTION_CONFIG, subcommands = { - CommandLine.HelpCommand.class, NacosConfigAdd.class, NacosConfigDelete.class, NacosConfigGet.class, - // ConfigImport.class, - // ConfigExport.class, - NacosConfigList.class}) -public class NacosConfig implements Runnable { - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.config; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_CONFIG; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_CONFIG; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_CONFIG; + +/** + * config subcommand + * + * @author lehr + */ +@CommandLine.Command(name = NAME_CONFIG, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_CONFIG, description = DESCRIPTION_CONFIG, subcommands = { + CommandLine.HelpCommand.class, NacosConfigAdd.class, NacosConfigDelete.class, NacosConfigGet.class, + // ConfigImport.class, + // ConfigExport.class, + NacosConfigList.class}) +public class NacosConfig implements Runnable { + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigAdd.java similarity index 72% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigAdd.java index a55a1de..ab3ba04 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigAdd.java @@ -1,65 +1,65 @@ -package com.alibaba.nacos.cli.commands.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * add a config - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "publish configurations", description = "It publishes configurations in Nacos.") -public class NacosConfigAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") - String group; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") - String dataId; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration content or file path.") - String content; - - @CommandLine.Option(names = {"-f", "--file"}, description = "If it is a config content from file?") - boolean isFile = false; - - @CommandLine.Option(names = {"-t", "--type"}, paramLabel = "", description = "Configuration type.") - String type; - - - @Override - public void run() { - - if (isFile) { - try { - byte[] bytes = Files.readAllBytes(Paths.get(new File(content).getPath())); - content = new String(bytes); - } catch (IOException e) { - System.out.println("failed to read file"); - return; - } - } - - try { - LogicHandler.postConfig(group, dataId, content, type); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - - } -} +package com.alibaba.nacos.ctl.command.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * add a config + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "publish configurations", description = "It publishes configurations in Nacos.") +public class NacosConfigAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") + String group; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") + String dataId; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration content or file path.") + String content; + + @CommandLine.Option(names = {"-f", "--file"}, description = "If it is a config content from file?") + boolean isFile = false; + + @CommandLine.Option(names = {"-t", "--type"}, paramLabel = "", description = "Configuration type.") + String type; + + + @Override + public void run() { + + if (isFile) { + try { + byte[] bytes = Files.readAllBytes(Paths.get(new File(content).getPath())); + content = new String(bytes); + } catch (IOException e) { + System.out.println("failed to read file"); + return; + } + } + + try { + LogicHandler.postConfig(group, dataId, content, type); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigDelete.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigDelete.java similarity index 58% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigDelete.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigDelete.java index 912a79c..274b95a 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigDelete.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigDelete.java @@ -1,45 +1,45 @@ -package com.alibaba.nacos.cli.commands.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.InputGetter; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_DELETE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * delete a config - * - * @author lehr - */ -@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "delete configurations", description = "It deletes configurations in Nacos.") -public class NacosConfigDelete implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") - String group; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") - String dataId; - - - @Override - public void run() { - - if (InputGetter.cancelConfirm()) { - return; - } - - try { - LogicHandler.deleteConfig(group, dataId); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.InputGetter; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_DELETE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * delete a config + * + * @author lehr + */ +@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "delete configurations", description = "It deletes configurations in Nacos.") +public class NacosConfigDelete implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") + String group; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") + String dataId; + + + @Override + public void run() { + + if (InputGetter.cancelConfirm()) { + return; + } + + try { + LogicHandler.deleteConfig(group, dataId); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigExport.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigExport.java similarity index 71% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigExport.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigExport.java index 402e367..e5d39da 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigExport.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigExport.java @@ -1,61 +1,61 @@ -package com.alibaba.nacos.cli.commands.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.google.common.io.Files; -import picocli.CommandLine; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_EXPORT; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get a config from nacos server and export it as a file - * - * @author lehr - */ -@Deprecated -@CommandLine.Command(name = NAME_EXPORT, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "export configurations", description = "Get a config from nacos server and export it as a file.") -public class NacosConfigExport implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") - String group; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") - String dataId; - - @CommandLine.Parameters(paramLabel = "", description = "The config file path you wanna export.") - File file; - - - @Override - public void run() { - - try { - Files.touch(file); - } catch (IOException e) { - System.out.println("directory not exist!"); - return; - } - - try (FileOutputStream fos = new FileOutputStream(file)) { - byte[] bytes = LogicHandler.getConfig(group, dataId).getBytes(); - fos.write(bytes); - } catch (FileNotFoundException e) { - System.out.println("file not exists!"); - } catch (IOException e) { - System.out.println("failed to write file"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.google.common.io.Files; +import picocli.CommandLine; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_EXPORT; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get a config from nacos server and export it as a file + * + * @author lehr + */ +@Deprecated +@CommandLine.Command(name = NAME_EXPORT, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "export configurations", description = "Get a config from nacos server and export it as a file.") +public class NacosConfigExport implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") + String group; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") + String dataId; + + @CommandLine.Parameters(paramLabel = "", description = "The config file path you wanna export.") + File file; + + + @Override + public void run() { + + try { + Files.touch(file); + } catch (IOException e) { + System.out.println("directory not exist!"); + return; + } + + try (FileOutputStream fos = new FileOutputStream(file)) { + byte[] bytes = LogicHandler.getConfig(group, dataId).getBytes(); + fos.write(bytes); + } catch (FileNotFoundException e) { + System.out.println("file not exists!"); + } catch (IOException e) { + System.out.println("failed to write file"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigGet.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigGet.java similarity index 72% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigGet.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigGet.java index c778679..1f88308 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigGet.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigGet.java @@ -1,67 +1,67 @@ -package com.alibaba.nacos.cli.commands.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.google.common.io.Files; -import picocli.CommandLine; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_GET; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get a config - * - * @author lehr - */ -@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get configurations", description = "This API is used to get configurations in Nacos.") -public class NacosConfigGet implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") - String group; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") - String dataId; - - @CommandLine.Option(names = {"-f", - "--file"}, paramLabel = "", description = "The config file path you wanna export.") - File file; - - - @Override - public void run() { - try { - String content = LogicHandler.getConfig(group, dataId); - if (file == null) { - System.out.println(content); - } else { - - try { - Files.touch(file); - } catch (IOException e) { - System.out.println("directory not exist!"); - return; - } - - try { - Files.write(content.getBytes(), file); - } catch (FileNotFoundException e) { - System.out.println("file not exists!"); - } catch (IOException e) { - System.out.println("failed to write file"); - } - } - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - - } -} +package com.alibaba.nacos.ctl.command.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.google.common.io.Files; +import picocli.CommandLine; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_GET; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get a config + * + * @author lehr + */ +@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get configurations", description = "This API is used to get configurations in Nacos.") +public class NacosConfigGet implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") + String group; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") + String dataId; + + @CommandLine.Option(names = {"-f", + "--file"}, paramLabel = "", description = "The config file path you wanna export.") + File file; + + + @Override + public void run() { + try { + String content = LogicHandler.getConfig(group, dataId); + if (file == null) { + System.out.println(content); + } else { + + try { + Files.touch(file); + } catch (IOException e) { + System.out.println("directory not exist!"); + return; + } + + try { + Files.write(content.getBytes(), file); + } catch (FileNotFoundException e) { + System.out.println("file not exists!"); + } catch (IOException e) { + System.out.println("failed to write file"); + } + } + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigImport.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigImport.java similarity index 71% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigImport.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigImport.java index da2ecec..ea65baa 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigImport.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigImport.java @@ -1,58 +1,58 @@ -package com.alibaba.nacos.cli.commands.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_IMPORT; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * create a config by uploading a local file - * - * @author lehr - */ -@Deprecated -@CommandLine.Command(name = NAME_IMPORT, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "import configurations", description = "Create a config by uploading a local file.") -public class NacosConfigImport implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") - String group; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") - String dataId; - - @CommandLine.Parameters(paramLabel = "", description = "The config file path you wanna import.") - File file; - - @CommandLine.Option(names = {"-t", "--type"}, paramLabel = "", description = "Configuration type.") - String type; - - @Override - public void run() { - - try (FileInputStream fis = new FileInputStream(file)) { - int length = fis.available(); - byte[] bytes = new byte[length]; - fis.read(bytes); - String content = new String(bytes); - LogicHandler.postConfig(group, dataId, content, type); - } catch (FileNotFoundException e) { - System.out.println("file not exists!"); - } catch (IOException e) { - System.out.println("failed to read file"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_IMPORT; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * create a config by uploading a local file + * + * @author lehr + */ +@Deprecated +@CommandLine.Command(name = NAME_IMPORT, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "import configurations", description = "Create a config by uploading a local file.") +public class NacosConfigImport implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") + String group; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") + String dataId; + + @CommandLine.Parameters(paramLabel = "", description = "The config file path you wanna import.") + File file; + + @CommandLine.Option(names = {"-t", "--type"}, paramLabel = "", description = "Configuration type.") + String type; + + @Override + public void run() { + + try (FileInputStream fis = new FileInputStream(file)) { + int length = fis.available(); + byte[] bytes = new byte[length]; + fis.read(bytes); + String content = new String(bytes); + LogicHandler.postConfig(group, dataId, content, type); + } catch (FileNotFoundException e) { + System.out.println("file not exists!"); + } catch (IOException e) { + System.out.println("failed to read file"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigList.java b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigList.java similarity index 70% rename from src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigList.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigList.java index 99f9689..48d89fb 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/config/NacosConfigList.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/config/NacosConfigList.java @@ -1,60 +1,60 @@ -package com.alibaba.nacos.cli.commands.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.bean.ConfigVO; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import de.vandermeer.asciitable.AsciiTable; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_LIST; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * list config - * - * @author lehr - */ -@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list configurations", description = "List configurations from server.") -public class NacosConfigList implements Runnable { - - @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Configuration group.") - String group = ""; - - @CommandLine.Option(names = {"-d", "--dataId"}, paramLabel = "", description = "Configuration ID.") - String dataId = ""; - - @CommandLine.Option(names = {"-n", "--pageNo"}, paramLabel = "", description = "Page number.") - Integer pageNo = 1; - - @CommandLine.Option(names = {"-i", "--pageSize"}, paramLabel = "", description = "Page size.") - Integer pageSize = 20; - - @Override - public void run() { - - try { - List list = LogicHandler.listConfigs(dataId, group, pageNo, pageSize); - int counter = 1; - AsciiTable at = new AsciiTable(); - at.getContext().setWidth(60); - at.addRule(); - at.addRow("", "Data Id", "Group Id"); - at.addRule(); - for (ConfigVO bean : list) { - at.addRow(counter++, bean.getDataId(), bean.getGroupName()); - } - at.addRule(); - System.out.println(at.render()); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - - } -} +package com.alibaba.nacos.ctl.command.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.bean.ConfigVO; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import de.vandermeer.asciitable.AsciiTable; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_LIST; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * list config + * + * @author lehr + */ +@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list configurations", description = "List configurations from server.") +public class NacosConfigList implements Runnable { + + @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Configuration group.") + String group = ""; + + @CommandLine.Option(names = {"-d", "--dataId"}, paramLabel = "", description = "Configuration ID.") + String dataId = ""; + + @CommandLine.Option(names = {"-n", "--pageNo"}, paramLabel = "", description = "Page number.") + Integer pageNo = 1; + + @CommandLine.Option(names = {"-i", "--pageSize"}, paramLabel = "", description = "Page size.") + Integer pageSize = 20; + + @Override + public void run() { + + try { + List list = LogicHandler.listConfigs(dataId, group, pageNo, pageSize); + int counter = 1; + AsciiTable at = new AsciiTable(); + at.getContext().setWidth(60); + at.addRule(); + at.addRow("", "Data Id", "Group Id"); + at.addRule(); + for (ConfigVO bean : list) { + at.addRow(counter++, bean.getDataId(), bean.getGroupName()); + } + at.addRule(); + System.out.println(at.render()); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstance.java b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstance.java similarity index 51% rename from src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstance.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstance.java index 0833c1d..2d2a5dc 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstance.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstance.java @@ -1,33 +1,33 @@ -package com.alibaba.nacos.cli.commands.instance; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_INSTANCE; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_INSTANCE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_INSTANCE; - -/** - * instance subcommand - * - * @author lehr - */ -@CommandLine.Command(name = NAME_INSTANCE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_INSTANCE, description = DESCRIPTION_INSTANCE, subcommands = { - CommandLine.HelpCommand.class, NacosInstanceAdd.class, NacosInstanceDelete.class, NacosInstanceUpdate.class, - NacosInstanceGet.class}) -public class NacosInstance implements Runnable { - - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.instance; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_INSTANCE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_INSTANCE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_INSTANCE; + +/** + * instance subcommand + * + * @author lehr + */ +@CommandLine.Command(name = NAME_INSTANCE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_INSTANCE, description = DESCRIPTION_INSTANCE, subcommands = { + CommandLine.HelpCommand.class, NacosInstanceAdd.class, NacosInstanceDelete.class, NacosInstanceUpdate.class, + NacosInstanceGet.class}) +public class NacosInstance implements Runnable { + + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceAdd.java similarity index 75% rename from src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceAdd.java index 65ff5a8..47d25c4 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceAdd.java @@ -1,66 +1,66 @@ -package com.alibaba.nacos.cli.commands.instance; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * add an instance - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add an instance.", description = "Register an instance to service.") -public class NacosInstanceAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "IP of instance.") - String ip; - - @CommandLine.Parameters(paramLabel = "", description = "Port of instance.") - Integer port; - - @CommandLine.Parameters(paramLabel = "", description = "Instance service name") - String serviceName; - - @CommandLine.Option(names = {"-w", "--weight"}, paramLabel = "", description = "Weight") - Double weight; - - @CommandLine.Option(names = {"-e", "--enabled"}, description = "Not Enable.") - boolean enabled = true; - - @CommandLine.Option(names = {"-h", - "--health"}, description = "Healthy or not. Default value is 'true', adding '-h' means 'false'.") - boolean health = true; - - @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Extended information.") - String metadata; - - @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") - String clusterName; - - @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") - String groupName; - - @CommandLine.Option(names = {"-p", - "--ephemeral"}, paramLabel = "", description = "If instance is ephemeral.") - boolean ephemeral = true; - - - @Override - public void run() { - try { - LogicHandler.addInstance(ip, port, weight, enabled, health, metadata, clusterName, serviceName, groupName, - ephemeral); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.instance; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * add an instance + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add an instance.", description = "Register an instance to service.") +public class NacosInstanceAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "IP of instance.") + String ip; + + @CommandLine.Parameters(paramLabel = "", description = "Port of instance.") + Integer port; + + @CommandLine.Parameters(paramLabel = "", description = "Instance service name") + String serviceName; + + @CommandLine.Option(names = {"-w", "--weight"}, paramLabel = "", description = "Weight") + Double weight; + + @CommandLine.Option(names = {"-e", "--enabled"}, description = "Not Enable.") + boolean enabled = true; + + @CommandLine.Option(names = {"-h", + "--health"}, description = "Healthy or not. Default value is 'true', adding '-h' means 'false'.") + boolean health = true; + + @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Extended information.") + String metadata; + + @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") + String clusterName; + + @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") + String groupName; + + @CommandLine.Option(names = {"-p", + "--ephemeral"}, paramLabel = "", description = "If instance is ephemeral.") + boolean ephemeral = true; + + + @Override + public void run() { + try { + LogicHandler.addInstance(ip, port, weight, enabled, health, metadata, clusterName, serviceName, groupName, + ephemeral); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceDelete.java b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceDelete.java similarity index 67% rename from src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceDelete.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceDelete.java index e1e8678..a1f545b 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceDelete.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceDelete.java @@ -1,56 +1,56 @@ -package com.alibaba.nacos.cli.commands.instance; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.InputGetter; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_DELETE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * delete an instance - * - * @author lehr - */ -@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "deregister instance", description = "Delete instance from service.") -public class NacosInstanceDelete implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "IP of instance.") - String ip; - - @CommandLine.Parameters(paramLabel = "", description = "Port of instance.") - Integer port; - - @CommandLine.Parameters(paramLabel = "", description = "Instance service name") - String serviceName; - - @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") - String clusterName; - - @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") - String groupName; - - @CommandLine.Option(names = {"-p", "--ephemeral"}, description = "If instance is ephemeral.") - boolean ephemeral = true; - - @Override - public void run() { - - if (InputGetter.cancelConfirm()) { - return; - } - - try { - LogicHandler.deleteInstance(ip, port, clusterName, serviceName, groupName, ephemeral); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.instance; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.InputGetter; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_DELETE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * delete an instance + * + * @author lehr + */ +@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "deregister instance", description = "Delete instance from service.") +public class NacosInstanceDelete implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "IP of instance.") + String ip; + + @CommandLine.Parameters(paramLabel = "", description = "Port of instance.") + Integer port; + + @CommandLine.Parameters(paramLabel = "", description = "Instance service name") + String serviceName; + + @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") + String clusterName; + + @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") + String groupName; + + @CommandLine.Option(names = {"-p", "--ephemeral"}, description = "If instance is ephemeral.") + boolean ephemeral = true; + + @Override + public void run() { + + if (InputGetter.cancelConfirm()) { + return; + } + + try { + LogicHandler.deleteInstance(ip, port, clusterName, serviceName, groupName, ephemeral); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceGet.java b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceGet.java similarity index 71% rename from src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceGet.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceGet.java index d27a2fa..bd835af 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceGet.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceGet.java @@ -1,58 +1,58 @@ -package com.alibaba.nacos.cli.commands.instance; - -import com.alibaba.nacos.api.naming.pojo.Instance; -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_GET; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get instances - * - * @author lehr - */ -@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get instances", description = "Get instances from server.") -public class NacosInstanceGet implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Instance service name") - String serviceName; - - @CommandLine.Option(names = {"-s", "--subscribed"}, description = "Subscribed.") - boolean subscribed = false; - - @CommandLine.Option(names = {"-h", - "--health"}, description = "Healthy or not. Default value is 'true', adding '-h' means 'false'.") - boolean health = true; - - - @CommandLine.Option(names = {"-c", - "--cluster"}, paramLabel = "", description = "Cluster name. use -c multi times to set multi value") - List clusters; - - @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") - String groupName; - - - @Override - public void run() { - try { - List instances = LogicHandler.getInstances(serviceName, groupName, clusters, health, subscribed); - System.out.println("Instances:"); - for (Instance in : instances) { - System.out.println(in); - } - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - - } -} +package com.alibaba.nacos.ctl.command.instance; + +import com.alibaba.nacos.api.naming.pojo.Instance; +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_GET; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get instances + * + * @author lehr + */ +@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get instances", description = "Get instances from server.") +public class NacosInstanceGet implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Instance service name") + String serviceName; + + @CommandLine.Option(names = {"-s", "--subscribed"}, description = "Subscribed.") + boolean subscribed = false; + + @CommandLine.Option(names = {"-h", + "--health"}, description = "Healthy or not. Default value is 'true', adding '-h' means 'false'.") + boolean health = true; + + + @CommandLine.Option(names = {"-c", + "--cluster"}, paramLabel = "", description = "Cluster name. use -c multi times to set multi value") + List clusters; + + @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") + String groupName; + + + @Override + public void run() { + try { + List instances = LogicHandler.getInstances(serviceName, groupName, clusters, health, subscribed); + System.out.println("Instances:"); + for (Instance in : instances) { + System.out.println(in); + } + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceUpdate.java b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceUpdate.java similarity index 73% rename from src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceUpdate.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceUpdate.java index cb40deb..f0c1de4 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/instance/NacosInstanceUpdate.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/instance/NacosInstanceUpdate.java @@ -1,60 +1,60 @@ -package com.alibaba.nacos.cli.commands.instance; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_UPDATE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * update an instance - * - * @author lehr - */ -@CommandLine.Command(name = NAME_UPDATE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "modify instance", description = "Modify an instance of service.") -public class NacosInstanceUpdate implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "IP of instance.") - String ip; - - @CommandLine.Parameters(paramLabel = "", description = "Port of instance.") - Integer port; - - @CommandLine.Parameters(paramLabel = "", description = "Instance service name") - String serviceName; - - @CommandLine.Option(names = {"-w", "--weight"}, paramLabel = "", description = "Weight") - Double weight; - - @CommandLine.Option(names = {"-e", "--enabled"}, description = "Enabled or not.") - boolean enabled = true; - - @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Extended information.") - String metadata; - - @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") - String clusterName; - - @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") - String groupName; - - @CommandLine.Option(names = {"-p", "--ephemeral"}, description = "If instance is ephemeral.") - boolean ephemeral = true; - - @Override - public void run() { - try { - LogicHandler.updateInstance(ip, port, weight, enabled, metadata, clusterName, serviceName, groupName, - ephemeral); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.instance; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_UPDATE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * update an instance + * + * @author lehr + */ +@CommandLine.Command(name = NAME_UPDATE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "modify instance", description = "Modify an instance of service.") +public class NacosInstanceUpdate implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "IP of instance.") + String ip; + + @CommandLine.Parameters(paramLabel = "", description = "Port of instance.") + Integer port; + + @CommandLine.Parameters(paramLabel = "", description = "Instance service name") + String serviceName; + + @CommandLine.Option(names = {"-w", "--weight"}, paramLabel = "", description = "Weight") + Double weight; + + @CommandLine.Option(names = {"-e", "--enabled"}, description = "Enabled or not.") + boolean enabled = true; + + @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Extended information.") + String metadata; + + @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") + String clusterName; + + @CommandLine.Option(names = {"-g", "--group"}, paramLabel = "", description = "Group name.") + String groupName; + + @CommandLine.Option(names = {"-p", "--ephemeral"}, description = "If instance is ephemeral.") + boolean ephemeral = true; + + @Override + public void run() { + try { + LogicHandler.updateInstance(ip, port, weight, enabled, metadata, clusterName, serviceName, groupName, + ephemeral); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespace.java b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespace.java similarity index 51% rename from src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespace.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespace.java index f52459b..bbbc47a 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespace.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespace.java @@ -1,32 +1,32 @@ -package com.alibaba.nacos.cli.commands.namespace; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_NAMESPACE; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_NAMESPACE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_NAMESPACE; - -/** - * namespace subcommand - * - * @author lehr - */ -@CommandLine.Command(name = NAME_NAMESPACE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_NAMESPACE, description = DESCRIPTION_NAMESPACE, subcommands = { - CommandLine.HelpCommand.class, NacosNamespaceAdd.class, NacosNamespaceList.class, NacosNamespaceDelete.class, - NacosNamespaceUpdate.class,}) -public class NacosNamespace implements Runnable { - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.namespace; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_NAMESPACE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_NAMESPACE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_NAMESPACE; + +/** + * namespace subcommand + * + * @author lehr + */ +@CommandLine.Command(name = NAME_NAMESPACE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_NAMESPACE, description = DESCRIPTION_NAMESPACE, subcommands = { + CommandLine.HelpCommand.class, NacosNamespaceAdd.class, NacosNamespaceList.class, NacosNamespaceDelete.class, + NacosNamespaceUpdate.class,}) +public class NacosNamespace implements Runnable { + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceAdd.java similarity index 62% rename from src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceAdd.java index 58bd365..4615348 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceAdd.java @@ -1,43 +1,43 @@ -package com.alibaba.nacos.cli.commands.namespace; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * create a namespace - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "create namespace", description = "This API is used to create a namespace in Nacos.") -public class NacosNamespaceAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Namespace show name.") - String name; - - @CommandLine.Parameters(paramLabel = "", description = "Namespace Id.") - String id; - - @CommandLine.Option(names = {"-d", - "--description"}, paramLabel = "", description = "Description of the namespace.") - String description; - - - @Override - public void run() { - try { - LogicHandler.addNamespace(name, id, description); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.namespace; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * create a namespace + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "create namespace", description = "This API is used to create a namespace in Nacos.") +public class NacosNamespaceAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Namespace show name.") + String name; + + @CommandLine.Parameters(paramLabel = "", description = "Namespace Id.") + String id; + + @CommandLine.Option(names = {"-d", + "--description"}, paramLabel = "", description = "Description of the namespace.") + String description; + + + @Override + public void run() { + try { + LogicHandler.addNamespace(name, id, description); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceDelete.java b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceDelete.java similarity index 55% rename from src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceDelete.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceDelete.java index a1c6a7c..6a5b780 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceDelete.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceDelete.java @@ -1,42 +1,42 @@ -package com.alibaba.nacos.cli.commands.namespace; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.InputGetter; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_DELETE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * delete a namespace - * - * @author lehr - */ -@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "delete namespace", description = "This API is used to remove a namespace in Nacos.") -public class NacosNamespaceDelete implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Namespace Id.") - String id; - - - @Override - public void run() { - - if (InputGetter.cancelConfirm()) { - return; - } - - try { - LogicHandler.deleteNamespace(id); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.namespace; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.InputGetter; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_DELETE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * delete a namespace + * + * @author lehr + */ +@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "delete namespace", description = "This API is used to remove a namespace in Nacos.") +public class NacosNamespaceDelete implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Namespace Id.") + String id; + + + @Override + public void run() { + + if (InputGetter.cancelConfirm()) { + return; + } + + try { + LogicHandler.deleteNamespace(id); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceList.java b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceList.java similarity index 60% rename from src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceList.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceList.java index e23e561..3794af5 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceList.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceList.java @@ -1,44 +1,44 @@ -package com.alibaba.nacos.cli.commands.namespace; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.bean.NamespaceVO; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import de.vandermeer.asciitable.AsciiTable; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_LIST; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get the list of all the namespaces from the server. - * - * @author lehr - */ -@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list all namespaces", description = "This API is used to get all namespaces.") -public class NacosNamespaceList implements Runnable { - - @Override - public void run() { - try { - List list = LogicHandler.listNamespaces(); - AsciiTable at = new AsciiTable(); - at.addRule(); - at.addRow("Namespace Name", "Namespace Id"); - at.addRule(); - for (NamespaceVO bean : list) { - at.addRow(bean.getName(), bean.getId()); - } - at.addRule(); - System.out.println(at.render(80)); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.namespace; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.bean.NamespaceVO; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import de.vandermeer.asciitable.AsciiTable; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_LIST; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get the list of all the namespaces from the server. + * + * @author lehr + */ +@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list all namespaces", description = "This API is used to get all namespaces.") +public class NacosNamespaceList implements Runnable { + + @Override + public void run() { + try { + List list = LogicHandler.listNamespaces(); + AsciiTable at = new AsciiTable(); + at.addRule(); + at.addRow("Namespace Name", "Namespace Id"); + at.addRule(); + for (NamespaceVO bean : list) { + at.addRow(bean.getName(), bean.getId()); + } + at.addRule(); + System.out.println(at.render(80)); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceUpdate.java b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceUpdate.java similarity index 60% rename from src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceUpdate.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceUpdate.java index b97f3e2..3f0e0a7 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/namespace/NacosNamespaceUpdate.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/namespace/NacosNamespaceUpdate.java @@ -1,41 +1,41 @@ -package com.alibaba.nacos.cli.commands.namespace; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_UPDATE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * update a namespace - * - * @author lehr - */ -@CommandLine.Command(name = NAME_UPDATE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "update a namespace", description = "This API is used to modify a namespace.") -public class NacosNamespaceUpdate implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Namespace show name.") - String name; - - @CommandLine.Parameters(paramLabel = "", description = "Namespace Id.") - String id; - - @CommandLine.Parameters(paramLabel = "", description = "Description you gonna update.") - String description; - - @Override - public void run() { - try { - LogicHandler.updateNamespace(name, id, description); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.namespace; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_UPDATE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * update a namespace + * + * @author lehr + */ +@CommandLine.Command(name = NAME_UPDATE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "update a namespace", description = "This API is used to modify a namespace.") +public class NacosNamespaceUpdate implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Namespace show name.") + String name; + + @CommandLine.Parameters(paramLabel = "", description = "Namespace Id.") + String id; + + @CommandLine.Parameters(paramLabel = "", description = "Description you gonna update.") + String description; + + @Override + public void run() { + try { + LogicHandler.updateNamespace(name, id, description); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosService.java b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosService.java similarity index 51% rename from src/main/java/com/alibaba/nacos/cli/commands/service/NacosService.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosService.java index dbde27e..3b74ddd 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosService.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosService.java @@ -1,32 +1,32 @@ -package com.alibaba.nacos.cli.commands.service; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_SERVICE; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_SERVICE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_SERVICE; - -/** - * service subcommand - * - * @author lehr - */ -@CommandLine.Command(name = NAME_SERVICE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_SERVICE, description = DESCRIPTION_SERVICE, subcommands = { - CommandLine.HelpCommand.class, NacosServiceAdd.class, NacosServiceGet.class, NacosServiceDelete.class, - NacosServiceUpdate.class, NacosServiceList.class}) -public class NacosService implements Runnable { - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.service; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_SERVICE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_SERVICE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_SERVICE; + +/** + * service subcommand + * + * @author lehr + */ +@CommandLine.Command(name = NAME_SERVICE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_SERVICE, description = DESCRIPTION_SERVICE, subcommands = { + CommandLine.HelpCommand.class, NacosServiceAdd.class, NacosServiceGet.class, NacosServiceDelete.class, + NacosServiceUpdate.class, NacosServiceList.class}) +public class NacosService implements Runnable { + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceAdd.java similarity index 68% rename from src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceAdd.java index 8227341..387e8cc 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceAdd.java @@ -1,49 +1,49 @@ -package com.alibaba.nacos.cli.commands.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * add a service - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add a service", description = "This API is used to create a new empty service.") -public class NacosServiceAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Service name.") - String serviceName; - - @CommandLine.Option(names = {"-s", - "--selector"}, paramLabel = "", description = "Visit strategy, please input JSON string.") - String selector; - - @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") - String groupName; - - @CommandLine.Option(names = {"-t", - "--threshold"}, paramLabel = "", description = "Set value from 0 to 1, default 0.") - float threshold; - - @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Metadata of service.") - String metadata; - - @Override - public void run() { - - try { - System.out.println(LogicHandler.addService(groupName, serviceName, threshold, metadata, selector)); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * add a service + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add a service", description = "This API is used to create a new empty service.") +public class NacosServiceAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Service name.") + String serviceName; + + @CommandLine.Option(names = {"-s", + "--selector"}, paramLabel = "", description = "Visit strategy, please input JSON string.") + String selector; + + @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") + String groupName; + + @CommandLine.Option(names = {"-t", + "--threshold"}, paramLabel = "", description = "Set value from 0 to 1, default 0.") + float threshold; + + @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Metadata of service.") + String metadata; + + @Override + public void run() { + + try { + System.out.println(LogicHandler.addService(groupName, serviceName, threshold, metadata, selector)); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceDelete.java b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceDelete.java similarity index 58% rename from src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceDelete.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceDelete.java index 6558e5f..6ee95b8 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceDelete.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceDelete.java @@ -1,44 +1,44 @@ -package com.alibaba.nacos.cli.commands.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.InputGetter; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_DELETE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * delete a service - * - * @author lehr - */ -@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "delete service", description = "This API is used to remove a service.") -public class NacosServiceDelete implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Service name.") - String serviceName; - - @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") - String groupName; - - @Override - public void run() { - - if (InputGetter.cancelConfirm()) { - return; - } - - try { - LogicHandler.deleteService(groupName, serviceName); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.InputGetter; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_DELETE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * delete a service + * + * @author lehr + */ +@CommandLine.Command(name = NAME_DELETE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "delete service", description = "This API is used to remove a service.") +public class NacosServiceDelete implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Service name.") + String serviceName; + + @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") + String groupName; + + @Override + public void run() { + + if (InputGetter.cancelConfirm()) { + return; + } + + try { + LogicHandler.deleteService(groupName, serviceName); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceGet.java b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceGet.java similarity index 58% rename from src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceGet.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceGet.java index dc58ecf..20638ba 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceGet.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceGet.java @@ -1,37 +1,37 @@ -package com.alibaba.nacos.cli.commands.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_GET; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get a service - * - * @author lehr - */ -@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get service", description = "This API is used to get a service info.") -public class NacosServiceGet implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Service name.") - String serviceName; - - @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") - String groupName; - - @Override - public void run() { - try { - System.out.println(LogicHandler.getService(groupName, serviceName)); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_GET; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get a service + * + * @author lehr + */ +@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get service", description = "This API is used to get a service info.") +public class NacosServiceGet implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Service name.") + String serviceName; + + @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") + String groupName; + + @Override + public void run() { + try { + System.out.println(LogicHandler.getService(groupName, serviceName)); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceList.java b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceList.java similarity index 72% rename from src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceList.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceList.java index 5b3a216..aa827d0 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceList.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceList.java @@ -1,59 +1,59 @@ -package com.alibaba.nacos.cli.commands.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.bean.ServiceVO; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import de.vandermeer.asciitable.AsciiTable; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_LIST; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * list some services intro - * - * @author lehr - */ -@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list service intro", description = "Get a quick look of current services on the nacos-server. If you want to get detail about certain service, please use 'service get' command.") -public class NacosServiceList implements Runnable { - - @CommandLine.Option(names = {"-s", "--serviceName"}, paramLabel = "", description = "Service name.") - String serviceName; - - @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") - String groupName; - - @CommandLine.Option(names = {"-n", "--pageNo"}, paramLabel = "", description = "Page number.") - Integer pageNo = 1; - - @CommandLine.Option(names = {"-i", "--pageSize"}, paramLabel = "", description = "Page size.") - Integer pageSize = 20; - - @Override - public void run() { - - try { - List list = LogicHandler.listServices(serviceName, groupName, pageNo, pageSize); - int counter = 1; - AsciiTable at = new AsciiTable(); - at.getContext().setWidth(100); - at.addRule(); - at.addRow("", "Service Name", "Group Name", "Healthy Instance Count"); - at.addRule(); - for (ServiceVO bean : list) { - at.addRow(counter++, bean.getName(), bean.getGroup(), bean.getHealthCount()); - } - at.addRule(); - System.out.println(at.render()); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.bean.ServiceVO; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import de.vandermeer.asciitable.AsciiTable; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_LIST; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * list some services intro + * + * @author lehr + */ +@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list service intro", description = "Get a quick look of current services on the nacos-server. If you want to get detail about certain service, please use 'service get' command.") +public class NacosServiceList implements Runnable { + + @CommandLine.Option(names = {"-s", "--serviceName"}, paramLabel = "", description = "Service name.") + String serviceName; + + @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") + String groupName; + + @CommandLine.Option(names = {"-n", "--pageNo"}, paramLabel = "", description = "Page number.") + Integer pageNo = 1; + + @CommandLine.Option(names = {"-i", "--pageSize"}, paramLabel = "", description = "Page size.") + Integer pageSize = 20; + + @Override + public void run() { + + try { + List list = LogicHandler.listServices(serviceName, groupName, pageNo, pageSize); + int counter = 1; + AsciiTable at = new AsciiTable(); + at.getContext().setWidth(100); + at.addRule(); + at.addRow("", "Service Name", "Group Name", "Healthy Instance Count"); + at.addRule(); + for (ServiceVO bean : list) { + at.addRow(counter++, bean.getName(), bean.getGroup(), bean.getHealthCount()); + } + at.addRule(); + System.out.println(at.render()); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceUpdate.java b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceUpdate.java similarity index 68% rename from src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceUpdate.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceUpdate.java index 7e654d5..ccb030a 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/service/NacosServiceUpdate.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/service/NacosServiceUpdate.java @@ -1,49 +1,49 @@ -package com.alibaba.nacos.cli.commands.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_UPDATE; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * update a service - * - * @author lehr - */ -@CommandLine.Command(name = NAME_UPDATE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "update a service", description = "This API is used to modify a service info.") -public class NacosServiceUpdate implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Service name.") - String serviceName; - - @CommandLine.Option(names = {"-s", - "--selector"}, paramLabel = "", description = "Visit strategy, please input JSON string.") - String selector; - - @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") - String groupName; - - @CommandLine.Option(names = {"-t", - "--threshold"}, paramLabel = "", description = "Set value from 0 to 1, default 0.") - float threshold; - - @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Metadata of service.") - String metadata; - - @Override - public void run() { - try { - LogicHandler.updateService(groupName, serviceName, threshold, metadata, selector); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_UPDATE; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * update a service + * + * @author lehr + */ +@CommandLine.Command(name = NAME_UPDATE, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "update a service", description = "This API is used to modify a service info.") +public class NacosServiceUpdate implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Service name.") + String serviceName; + + @CommandLine.Option(names = {"-s", + "--selector"}, paramLabel = "", description = "Visit strategy, please input JSON string.") + String selector; + + @CommandLine.Option(names = {"-g", "--groupName"}, paramLabel = "", description = "Group name.") + String groupName; + + @CommandLine.Option(names = {"-t", + "--threshold"}, paramLabel = "", description = "Set value from 0 to 1, default 0.") + float threshold; + + @CommandLine.Option(names = {"-m", "--metadata"}, paramLabel = "", description = "Metadata of service.") + String metadata; + + @Override + public void run() { + try { + LogicHandler.updateService(groupName, serviceName, threshold, metadata, selector); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitch.java b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitch.java similarity index 50% rename from src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitch.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitch.java index 8d76688..7bb0e67 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitch.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitch.java @@ -1,32 +1,32 @@ -package com.alibaba.nacos.cli.commands.switches; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_SWITCH; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_SWITCH; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_SWITCH; - -/** - * switch subcommand - * - * @author lehr - */ -@CommandLine.Command(name = NAME_SWITCH, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_SWITCH, description = DESCRIPTION_SWITCH, subcommands = { - CommandLine.HelpCommand.class, NacosSwitchGet.class, NacosSwitchSet.class, NacosSwitchAdd.class, - NacosSwitchRemove.class}) -public class NacosSwitch implements Runnable { - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.switches; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_SWITCH; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_SWITCH; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_SWITCH; + +/** + * switch subcommand + * + * @author lehr + */ +@CommandLine.Command(name = NAME_SWITCH, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_SWITCH, description = DESCRIPTION_SWITCH, subcommands = { + CommandLine.HelpCommand.class, NacosSwitchGet.class, NacosSwitchSet.class, NacosSwitchAdd.class, + NacosSwitchRemove.class}) +public class NacosSwitch implements Runnable { + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchAdd.java similarity index 66% rename from src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchAdd.java index 3f2ba85..8762f51 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchAdd.java @@ -1,46 +1,46 @@ -package com.alibaba.nacos.cli.commands.switches; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * for some switches in the type of map and list, add an element - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add an element to a switch", description = "For some switches in the type of map and list, add an element.") -public class NacosSwitchAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Switch name") - String entry; - - @CommandLine.Parameters(paramLabel = "", description = "Switch value") - String key; - - @CommandLine.Parameters(paramLabel = "", description = "Switch value") - String value; - - @CommandLine.Option(names = {"-d", - "--debug"}, paramLabel = "", description = "Input \"-d\" to use debug mode, if affect the local server, true means yes, false means no, default true") - boolean debug = true; - - @Override - public void run() { - - try { - LogicHandler.updateSwitchMap(entry, key, value, debug, "add"); - System.out.println("done"); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.switches; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * for some switches in the type of map and list, add an element + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add an element to a switch", description = "For some switches in the type of map and list, add an element.") +public class NacosSwitchAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Switch name") + String entry; + + @CommandLine.Parameters(paramLabel = "", description = "Switch value") + String key; + + @CommandLine.Parameters(paramLabel = "", description = "Switch value") + String value; + + @CommandLine.Option(names = {"-d", + "--debug"}, paramLabel = "", description = "Input \"-d\" to use debug mode, if affect the local server, true means yes, false means no, default true") + boolean debug = true; + + @Override + public void run() { + + try { + LogicHandler.updateSwitchMap(entry, key, value, debug, "add"); + System.out.println("done"); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchGet.java b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchGet.java similarity index 61% rename from src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchGet.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchGet.java index b4bec78..5c224fa 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchGet.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchGet.java @@ -1,46 +1,46 @@ -package com.alibaba.nacos.cli.commands.switches; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import java.util.Map; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_GET; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get the value of a switch - * - * @author lehr - */ -@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get switch value", description = "Get the value of a switch") -public class NacosSwitchGet implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Switch name, input 'all' to get all switches.") - String grep = ""; - - @Override - public void run() { - - try { - Map switchMap = LogicHandler.getSwitches(); - - if ("all".equals(grep)) { - grep = ""; - } - switchMap.forEach((k, v) -> { - if (k.contains(grep)) { - System.out.println(k + ":" + v); - } - }); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.switches; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import java.util.Map; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_GET; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get the value of a switch + * + * @author lehr + */ +@CommandLine.Command(name = NAME_GET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "get switch value", description = "Get the value of a switch") +public class NacosSwitchGet implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Switch name, input 'all' to get all switches.") + String grep = ""; + + @Override + public void run() { + + try { + Map switchMap = LogicHandler.getSwitches(); + + if ("all".equals(grep)) { + grep = ""; + } + switchMap.forEach((k, v) -> { + if (k.contains(grep)) { + System.out.println(k + ":" + v); + } + }); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchRemove.java b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchRemove.java similarity index 66% rename from src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchRemove.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchRemove.java index f664368..6e2360d 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchRemove.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchRemove.java @@ -1,46 +1,46 @@ -package com.alibaba.nacos.cli.commands.switches; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.InputGetter; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * for some switches in the type of map and list, remove an element - * - * @author lehr - */ -@CommandLine.Command(name = "remove", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "remove an element to a switch", description = "For some switches in the type of map and list, remove an element.") -public class NacosSwitchRemove implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Switch name") - String entry; - - @CommandLine.Parameters(paramLabel = "", description = "Switch value") - String key; - - @CommandLine.Option(names = {"-d", - "--debug"}, paramLabel = "", description = "Input \"-d\" to use debug mode, if affect the local server, true means yes, false means no, default true") - boolean debug = true; - - @Override - public void run() { - - if (InputGetter.cancelConfirm()) { - return; - } - - try { - System.out.println(LogicHandler.updateSwitchMap(entry, key, null, debug, "remove")); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.switches; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.InputGetter; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * for some switches in the type of map and list, remove an element + * + * @author lehr + */ +@CommandLine.Command(name = "remove", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "remove an element to a switch", description = "For some switches in the type of map and list, remove an element.") +public class NacosSwitchRemove implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Switch name") + String entry; + + @CommandLine.Parameters(paramLabel = "", description = "Switch value") + String key; + + @CommandLine.Option(names = {"-d", + "--debug"}, paramLabel = "", description = "Input \"-d\" to use debug mode, if affect the local server, true means yes, false means no, default true") + boolean debug = true; + + @Override + public void run() { + + if (InputGetter.cancelConfirm()) { + return; + } + + try { + System.out.println(LogicHandler.updateSwitchMap(entry, key, null, debug, "remove")); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchSet.java b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchSet.java similarity index 63% rename from src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchSet.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchSet.java index 5d10a90..6a1ad97 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/switches/NacosSwitchSet.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/switches/NacosSwitchSet.java @@ -1,42 +1,42 @@ -package com.alibaba.nacos.cli.commands.switches; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_SET; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * set the value of the switch - * - * @author lehr - */ -@CommandLine.Command(name = NAME_SET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "set the switch value", description = "Set the switch value.(For some switch in the type of map and list, please use add/remove)") -public class NacosSwitchSet implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Switch name") - String entry; - - @CommandLine.Parameters(paramLabel = "", description = "Switch value") - String value; - - @CommandLine.Option(names = {"-d", - "--debug"}, paramLabel = "", description = "Input \"-d\" to use debug mode, if affect the local server, true means yes, false means no, default true") - boolean debug = true; - - @Override - public void run() { - - try { - System.out.println(LogicHandler.updateSwitch(entry, value, debug)); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - } -} +package com.alibaba.nacos.ctl.command.switches; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_SET; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * set the value of the switch + * + * @author lehr + */ +@CommandLine.Command(name = NAME_SET, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "set the switch value", description = "Set the switch value.(For some switch in the type of map and list, please use add/remove)") +public class NacosSwitchSet implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Switch name") + String entry; + + @CommandLine.Parameters(paramLabel = "", description = "Switch value") + String value; + + @CommandLine.Option(names = {"-d", + "--debug"}, paramLabel = "", description = "Input \"-d\" to use debug mode, if affect the local server, true means yes, false means no, default true") + boolean debug = true; + + @Override + public void run() { + + try { + System.out.println(LogicHandler.updateSwitch(entry, value, debug)); + } catch (HandlerException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/utils/HintUtils.java b/command/src/main/java/com/alibaba/nacos/ctl/command/utils/HintUtils.java similarity index 97% rename from src/main/java/com/alibaba/nacos/cli/utils/HintUtils.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/utils/HintUtils.java index a52b600..94869fd 100644 --- a/src/main/java/com/alibaba/nacos/cli/utils/HintUtils.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/utils/HintUtils.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.utils; +package com.alibaba.nacos.ctl.command.utils; /** * @author lehr 用来统一记录各种指令的提示信息的,方便编辑和浏览所以写一起了 @@ -10,7 +10,7 @@ public class HintUtils { */ public static final String APP_NAME = "nacosctl"; - public static final String VERSION_NAME = "v1.0.0-Beta"; + public static final String VERSION_NAME = "v1.0.1-Beta"; public static final String CLI_DESCRIPTION = "NacosCtl is a fast, scalable, helpful client that can let you connect to nacos-server easily."; diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/NacosWatch.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/NacosWatch.java similarity index 53% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/NacosWatch.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/NacosWatch.java index fb2bd33..e34272c 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/NacosWatch.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/NacosWatch.java @@ -1,31 +1,31 @@ -package com.alibaba.nacos.cli.commands.watch; - -import com.alibaba.nacos.cli.commands.watch.config.NacosWatchConfig; -import com.alibaba.nacos.cli.commands.watch.service.NacosWatchInstance; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * watch subcommand - * - * @author lehr - */ -@CommandLine.Command(name = "watch", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "watch service/config.", description = "Set a listener to watch service/config changes.", subcommands = { - CommandLine.HelpCommand.class, NacosWatchConfig.class, NacosWatchInstance.class}) -public class NacosWatch implements Runnable { - - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.watch; + +import com.alibaba.nacos.ctl.command.watch.config.NacosWatchConfig; +import com.alibaba.nacos.ctl.command.watch.service.NacosWatchInstance; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * watch subcommand + * + * @author lehr + */ +@CommandLine.Command(name = "watch", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "watch service/config.", description = "Set a listener to watch service/config changes.", subcommands = { + CommandLine.HelpCommand.class, NacosWatchConfig.class, NacosWatchInstance.class}) +public class NacosWatch implements Runnable { + + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfig.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfig.java similarity index 59% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfig.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfig.java index 6ec9a90..e68d2c3 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfig.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfig.java @@ -1,30 +1,30 @@ -package com.alibaba.nacos.cli.commands.watch.config; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * watch config subcommand - * - * @author lehr - */ -@CommandLine.Command(name = "config", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "watch config", description = "watch config", subcommands = { - CommandLine.HelpCommand.class, NacosWatchConfigAdd.class, NacosWatchConfigList.class, - NacosWatchConfigRemove.class}) -@Deprecated -public class NacosWatchConfig implements Runnable { - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.watch.config; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * watch config subcommand + * + * @author lehr + */ +@CommandLine.Command(name = "config", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "watch config", description = "watch config", subcommands = { + CommandLine.HelpCommand.class, NacosWatchConfigAdd.class, NacosWatchConfigList.class, + NacosWatchConfigRemove.class}) +@Deprecated +public class NacosWatchConfig implements Runnable { + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigAdd.java similarity index 56% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigAdd.java index 522873b..763e96e 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigAdd.java @@ -1,35 +1,35 @@ -package com.alibaba.nacos.cli.commands.watch.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * add config listener - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add a watcher", description = "Add a watcher.") -@Deprecated -public class NacosWatchConfigAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") - String group; - - @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") - String dataId; - - @Override - public void run() { - - System.out.println(LogicHandler.watchConfig(dataId, group)); - - } -} +package com.alibaba.nacos.ctl.command.watch.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * add config listener + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add a watcher", description = "Add a watcher.") +@Deprecated +public class NacosWatchConfigAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Configuration group.") + String group; + + @CommandLine.Parameters(paramLabel = "", description = "Configuration ID.") + String dataId; + + @Override + public void run() { + + System.out.println(LogicHandler.watchConfig(dataId, group)); + + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigList.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigList.java similarity index 52% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigList.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigList.java index d5b1039..0ac6d55 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigList.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigList.java @@ -1,33 +1,33 @@ -package com.alibaba.nacos.cli.commands.watch.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_LIST; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get the watcher list - * - * @author lehr - */ -@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list all watchers", description = "List all watchers") -@Deprecated -public class NacosWatchConfigList implements Runnable { - - @Override - public void run() { - - List list = LogicHandler.listConfigWatches(); - list.forEach(l -> { - System.out.println(l); - }); - } -} +package com.alibaba.nacos.ctl.command.watch.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_LIST; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get the watcher list + * + * @author lehr + */ +@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list all watchers", description = "List all watchers") +@Deprecated +public class NacosWatchConfigList implements Runnable { + + @Override + public void run() { + + List list = LogicHandler.listConfigWatches(); + list.forEach(l -> { + System.out.println(l); + }); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigRemove.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigRemove.java similarity index 55% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigRemove.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigRemove.java index 50b98ff..8ac6e30 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/config/NacosWatchConfigRemove.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/config/NacosWatchConfigRemove.java @@ -1,30 +1,30 @@ -package com.alibaba.nacos.cli.commands.watch.config; - -import com.alibaba.nacos.cli.core.LogicHandler; -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * remove a watcher - * - * @author lehr - */ -@CommandLine.Command(name = "remove", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "remove watcher", description = "Remove a config watcher.") -@Deprecated -public class NacosWatchConfigRemove implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Listener Id. (Press `Tab` to list Ids)") - String id; - - @Override - public void run() { - - System.out.println(LogicHandler.unwatchConfig(id)); - } -} +package com.alibaba.nacos.ctl.command.watch.config; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * remove a watcher + * + * @author lehr + */ +@CommandLine.Command(name = "remove", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "remove watcher", description = "Remove a config watcher.") +@Deprecated +public class NacosWatchConfigRemove implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Listener Id. (Press `Tab` to list Ids)") + String id; + + @Override + public void run() { + + System.out.println(LogicHandler.unwatchConfig(id)); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstance.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstance.java similarity index 54% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstance.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstance.java index 1691308..1c1d932 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstance.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstance.java @@ -1,33 +1,33 @@ -package com.alibaba.nacos.cli.commands.watch.service; - -import picocli.CommandLine; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_SWITCH; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_SWITCH; - -/** - * watch instance subcommand - * - * @author lehr - */ -@CommandLine.Command(name = "instance", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_SWITCH, description = DESCRIPTION_SWITCH, subcommands = { - CommandLine.HelpCommand.class, NacosWatchInstanceAdd.class, NacosWatchInstanceList.class, - NacosWatchInstanceRemove.class}) -@Deprecated -public class NacosWatchInstance implements Runnable { - - - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - spec.commandLine().usage(System.err); - } -} +package com.alibaba.nacos.ctl.command.watch.service; + +import picocli.CommandLine; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_SWITCH; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.USAGE_SWITCH; + +/** + * watch instance subcommand + * + * @author lehr + */ +@CommandLine.Command(name = "instance", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_SWITCH, description = DESCRIPTION_SWITCH, subcommands = { + CommandLine.HelpCommand.class, NacosWatchInstanceAdd.class, NacosWatchInstanceList.class, + NacosWatchInstanceRemove.class}) +@Deprecated +public class NacosWatchInstance implements Runnable { + + + @CommandLine.Spec + CommandLine.Model.CommandSpec spec; + + @Override + public void run() { + spec.commandLine().usage(System.err); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceAdd.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceAdd.java similarity index 62% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceAdd.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceAdd.java index 6f15a85..14648e3 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceAdd.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceAdd.java @@ -1,40 +1,40 @@ -package com.alibaba.nacos.cli.commands.watch.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_ADD; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * add a listener to instance - * - * @author lehr - */ -@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add a watcher", description = "Add a watcher.") -@Deprecated -public class NacosWatchInstanceAdd implements Runnable { - - @CommandLine.Parameters(paramLabel = "", description = "Instance service name") - String serviceName; - - @CommandLine.Parameters(paramLabel = "", description = "Instance group name") - String groupName; - - @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") - List clusters; - - @Override - public void run() { - - System.out.println(LogicHandler.watchService(serviceName, groupName, clusters)); - - } -} +package com.alibaba.nacos.ctl.command.watch.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_ADD; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * add a listener to instance + * + * @author lehr + */ +@CommandLine.Command(name = NAME_ADD, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "add a watcher", description = "Add a watcher.") +@Deprecated +public class NacosWatchInstanceAdd implements Runnable { + + @CommandLine.Parameters(paramLabel = "", description = "Instance service name") + String serviceName; + + @CommandLine.Parameters(paramLabel = "", description = "Instance group name") + String groupName; + + @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") + List clusters; + + @Override + public void run() { + + System.out.println(LogicHandler.watchService(serviceName, groupName, clusters)); + + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceList.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceList.java similarity index 50% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceList.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceList.java index 64e0632..9224880 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceList.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceList.java @@ -1,31 +1,31 @@ -package com.alibaba.nacos.cli.commands.watch.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_LIST; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * get the watcher list - * - * @author lehr - */ -@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list all watchers", description = "List all watchers") -@Deprecated -public class NacosWatchInstanceList implements Runnable { - - @Override - public void run() { - - List list = LogicHandler.listServiceWatches(); - list.forEach(System.out::println); - } -} +package com.alibaba.nacos.ctl.command.watch.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.NAME_LIST; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * get the watcher list + * + * @author lehr + */ +@CommandLine.Command(name = NAME_LIST, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "list all watchers", description = "List all watchers") +@Deprecated +public class NacosWatchInstanceList implements Runnable { + + @Override + public void run() { + + List list = LogicHandler.listServiceWatches(); + list.forEach(System.out::println); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceRemove.java b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceRemove.java similarity index 65% rename from src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceRemove.java rename to command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceRemove.java index dd81986..53106d3 100644 --- a/src/main/java/com/alibaba/nacos/cli/commands/watch/service/NacosWatchInstanceRemove.java +++ b/command/src/main/java/com/alibaba/nacos/ctl/command/watch/service/NacosWatchInstanceRemove.java @@ -1,40 +1,40 @@ -package com.alibaba.nacos.cli.commands.watch.service; - -import com.alibaba.nacos.cli.core.LogicHandler; -import picocli.CommandLine; - -import java.util.List; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; - -/** - * remove a watcher - * - * @author lehr - */ -@CommandLine.Command(name = "remove", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "remove watcher", description = "Remove an instance watcher.") -@Deprecated -public class NacosWatchInstanceRemove implements Runnable { - - - @CommandLine.Parameters(paramLabel = "", description = "Instance service name") - String serviceName; - - @CommandLine.Parameters(paramLabel = "", description = "Instance group name") - String groupName; - - @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") - List clusters; - - @Override - public void run() { - - System.out.println(LogicHandler.unwatchService(serviceName, groupName, clusters)); - - } -} +package com.alibaba.nacos.ctl.command.watch.service; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import picocli.CommandLine; + +import java.util.List; + +import static com.alibaba.nacos.ctl.command.utils.HintUtils.DESCRIPTION_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.HEADER_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.OPTION_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.PARAMETER_LIST_HEADING; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SORT_OPTIONS; +import static com.alibaba.nacos.ctl.command.utils.HintUtils.SYNOPSIS_HEADING; + +/** + * remove a watcher + * + * @author lehr + */ +@CommandLine.Command(name = "remove", sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = "remove watcher", description = "Remove an instance watcher.") +@Deprecated +public class NacosWatchInstanceRemove implements Runnable { + + + @CommandLine.Parameters(paramLabel = "", description = "Instance service name") + String serviceName; + + @CommandLine.Parameters(paramLabel = "", description = "Instance group name") + String groupName; + + @CommandLine.Option(names = {"-c", "--cluster"}, paramLabel = "", description = "Cluster name.") + List clusters; + + @Override + public void run() { + + System.out.println(LogicHandler.unwatchService(serviceName, groupName, clusters)); + + } +} diff --git a/core/pom.xml b/core/pom.xml new file mode 100644 index 0000000..27cd0fe --- /dev/null +++ b/core/pom.xml @@ -0,0 +1,28 @@ + + + + nacosctl + com.alibaba.nacos + ${revision} + + 4.0.0 + + nacos-ctl-core + + + + com.alibaba.nacos + nacos-client + + + org.apache.httpcomponents + httpclient + + + com.google.code.gson + gson + + + \ No newline at end of file diff --git a/src/main/java/com/alibaba/nacos/cli/core/LogicHandler.java b/core/src/main/java/com/alibaba/nacos/ctl/core/LogicHandler.java similarity index 93% rename from src/main/java/com/alibaba/nacos/cli/core/LogicHandler.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/LogicHandler.java index 4b1291d..478aa5a 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/LogicHandler.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/LogicHandler.java @@ -1,15 +1,15 @@ -package com.alibaba.nacos.cli.core; +package com.alibaba.nacos.ctl.core; import com.alibaba.nacos.api.naming.pojo.Instance; -import com.alibaba.nacos.cli.config.GlobalConfig; -import com.alibaba.nacos.cli.core.bean.ConfigVO; -import com.alibaba.nacos.cli.core.bean.NamespaceVO; -import com.alibaba.nacos.cli.core.bean.ServiceVO; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.core.service.openapi.OpenApiService; -import com.alibaba.nacos.cli.core.service.sdk.SdkConfigService; -import com.alibaba.nacos.cli.core.service.sdk.SdkNamingService; -import com.alibaba.nacos.cli.utils.SwitchUtils; +import com.alibaba.nacos.ctl.core.config.GlobalConfig; +import com.alibaba.nacos.ctl.core.bean.ConfigVO; +import com.alibaba.nacos.ctl.core.bean.NamespaceVO; +import com.alibaba.nacos.ctl.core.bean.ServiceVO; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.core.service.openapi.OpenApiService; +import com.alibaba.nacos.ctl.core.service.sdk.SdkConfigService; +import com.alibaba.nacos.ctl.core.service.sdk.SdkNamingService; +import com.alibaba.nacos.ctl.core.utils.SwitchUtils; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/alibaba/nacos/cli/core/bean/ConfigVO.java b/core/src/main/java/com/alibaba/nacos/ctl/core/bean/ConfigVO.java similarity index 94% rename from src/main/java/com/alibaba/nacos/cli/core/bean/ConfigVO.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/bean/ConfigVO.java index 74c1e4e..c213e3a 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/bean/ConfigVO.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/bean/ConfigVO.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.core.bean; +package com.alibaba.nacos.ctl.core.bean; /** * @author lehr diff --git a/src/main/java/com/alibaba/nacos/cli/core/bean/NamespaceVO.java b/core/src/main/java/com/alibaba/nacos/ctl/core/bean/NamespaceVO.java similarity index 93% rename from src/main/java/com/alibaba/nacos/cli/core/bean/NamespaceVO.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/bean/NamespaceVO.java index 8a7d93e..ce1e272 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/bean/NamespaceVO.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/bean/NamespaceVO.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.core.bean; +package com.alibaba.nacos.ctl.core.bean; /** * @author lehr diff --git a/src/main/java/com/alibaba/nacos/cli/core/bean/ServiceVO.java b/core/src/main/java/com/alibaba/nacos/ctl/core/bean/ServiceVO.java similarity index 96% rename from src/main/java/com/alibaba/nacos/cli/core/bean/ServiceVO.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/bean/ServiceVO.java index 69648ae..d67503d 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/bean/ServiceVO.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/bean/ServiceVO.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.core.bean; +package com.alibaba.nacos.ctl.core.bean; /** * @author lehr diff --git a/src/main/java/com/alibaba/nacos/cli/config/ConfigLoader.java b/core/src/main/java/com/alibaba/nacos/ctl/core/config/ConfigLoader.java similarity index 98% rename from src/main/java/com/alibaba/nacos/cli/config/ConfigLoader.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/config/ConfigLoader.java index 2f9d4f2..2e969c7 100644 --- a/src/main/java/com/alibaba/nacos/cli/config/ConfigLoader.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/config/ConfigLoader.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.config; +package com.alibaba.nacos.ctl.core.config; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; diff --git a/src/main/java/com/alibaba/nacos/cli/config/GlobalConfig.java b/core/src/main/java/com/alibaba/nacos/ctl/core/config/GlobalConfig.java similarity index 96% rename from src/main/java/com/alibaba/nacos/cli/config/GlobalConfig.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/config/GlobalConfig.java index 6d28614..7a36a92 100644 --- a/src/main/java/com/alibaba/nacos/cli/config/GlobalConfig.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/config/GlobalConfig.java @@ -1,6 +1,6 @@ -package com.alibaba.nacos.cli.config; +package com.alibaba.nacos.ctl.core.config; -import com.alibaba.nacos.cli.config.ConfigLoader.FromPropertie; +import com.alibaba.nacos.ctl.core.config.ConfigLoader.FromPropertie; import java.util.Properties; diff --git a/src/main/java/com/alibaba/nacos/cli/core/exception/HandlerException.java b/core/src/main/java/com/alibaba/nacos/ctl/core/exception/HandlerException.java similarity index 84% rename from src/main/java/com/alibaba/nacos/cli/core/exception/HandlerException.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/exception/HandlerException.java index 91a7374..dc3bc3a 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/exception/HandlerException.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/exception/HandlerException.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.core.exception; +package com.alibaba.nacos.ctl.core.exception; /** * @author lehr diff --git a/src/main/java/com/alibaba/nacos/cli/core/service/openapi/OpenApiService.java b/core/src/main/java/com/alibaba/nacos/ctl/core/service/openapi/OpenApiService.java similarity index 94% rename from src/main/java/com/alibaba/nacos/cli/core/service/openapi/OpenApiService.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/service/openapi/OpenApiService.java index 0f0a0a1..6967caf 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/service/openapi/OpenApiService.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/service/openapi/OpenApiService.java @@ -1,11 +1,11 @@ -package com.alibaba.nacos.cli.core.service.openapi; +package com.alibaba.nacos.ctl.core.service.openapi; -import com.alibaba.nacos.cli.config.GlobalConfig; -import com.alibaba.nacos.cli.core.bean.ConfigVO; -import com.alibaba.nacos.cli.core.bean.NamespaceVO; -import com.alibaba.nacos.cli.core.bean.ServiceVO; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider; +import com.alibaba.nacos.ctl.core.config.GlobalConfig; +import com.alibaba.nacos.ctl.core.bean.ConfigVO; +import com.alibaba.nacos.ctl.core.bean.NamespaceVO; +import com.alibaba.nacos.ctl.core.bean.ServiceVO; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -17,10 +17,10 @@ import java.util.Map; import java.util.stream.Stream; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.DELETE; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.GET; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.POST; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.PUT; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.DELETE; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.GET; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.POST; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.PUT; /** * @author lehr Access the server by nacos http open-api diff --git a/src/main/java/com/alibaba/nacos/cli/core/service/openapi/network/HttpProvider.java b/core/src/main/java/com/alibaba/nacos/ctl/core/service/openapi/network/HttpProvider.java similarity index 92% rename from src/main/java/com/alibaba/nacos/cli/core/service/openapi/network/HttpProvider.java rename to core/src/main/java/com/alibaba/nacos/ctl/core/service/openapi/network/HttpProvider.java index e7bde8f..d7d04bc 100644 --- a/src/main/java/com/alibaba/nacos/cli/core/service/openapi/network/HttpProvider.java +++ b/core/src/main/java/com/alibaba/nacos/ctl/core/service/openapi/network/HttpProvider.java @@ -1,8 +1,8 @@ -package com.alibaba.nacos.cli.core.service.openapi.network; +package com.alibaba.nacos.ctl.core.service.openapi.network; -import com.alibaba.nacos.cli.config.GlobalConfig; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.core.service.openapi.network.bean.HttpDelete; +import com.alibaba.nacos.ctl.core.config.GlobalConfig; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.core.service.openapi.network.bean.HttpDelete; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.apache.http.NameValuePair; @@ -25,10 +25,10 @@ import java.util.List; import java.util.Map; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.DELETE; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.GET; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.POST; -import static com.alibaba.nacos.cli.core.service.openapi.network.HttpProvider.Method.PUT; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.DELETE; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.GET; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.POST; +import static com.alibaba.nacos.ctl.core.service.openapi.network.HttpProvider.Method.PUT; import static org.apache.http.client.config.RequestConfig.custom; /** @@ -158,7 +158,7 @@ private HttpRequestBase generateRequest(Method method, String url, List + + release + false + + dir + tar.gz + + + + + conf/** + + + + + bin/* + + 0755 + + + + + + ../bootstrap/target/nacos-ctl-bootstrap-${project.version}-jar-with-dependencies.jar + target/ + nacosctl.jar + + + \ No newline at end of file diff --git a/distrobution/bin/nacosctl.sh b/distrobution/bin/nacosctl.sh new file mode 100755 index 0000000..f150c7f --- /dev/null +++ b/distrobution/bin/nacosctl.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +cygwin=false +darwin=false +os400=false +case "`uname`" in +CYGWIN*) cygwin=true;; +Darwin*) darwin=true;; +OS400*) os400=true;; +esac +error_exit () +{ + echo "ERROR: $1 !!" + exit 1 +} +[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java +[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java +[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java +[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME + +if [ -z "$JAVA_HOME" ]; then + if $darwin; then + + if [ -x '/usr/libexec/java_home' ] ; then + export JAVA_HOME=`/usr/libexec/java_home` + + elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then + export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" + fi + else + JAVA_PATH=`dirname $(readlink -f $(which javac))` + if [ "x$JAVA_PATH" != "x" ]; then + export JAVA_HOME=`dirname $JAVA_PATH 2>/dev/null` + fi + fi + if [ -z "$JAVA_HOME" ]; then + error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!" + fi +fi + +export SERVER="nacosctl" + +export JAVA_HOME +export JAVA="$JAVA_HOME/bin/java" +export BASE_DIR=`cd $(dirname $0)/..; pwd` + +#=========================================================================================== +# JVM Configuration +#=========================================================================================== + +JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m" + +JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p') +if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then + JAVA_OPT_EXT_FIX="" +else + JAVA_OPT_EXT_FIX="-Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext" +fi + +JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${SERVER}.jar" +JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}" +JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/logback.xml" + +if [ ! -d "${BASE_DIR}/logs" ]; then + mkdir ${BASE_DIR}/logs +fi + +echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT} $@" + +# check the start.out log output file +if [ ! -f "${BASE_DIR}/logs/start.out" ]; then + touch "${BASE_DIR}/logs/start.out" +fi + +if [[ "$JAVA_OPT_EXT_FIX" == "" ]]; then + "$JAVA" ${JAVA_OPT} "$@" +else + "$JAVA" "$JAVA_OPT_EXT_FIX" ${JAVA_OPT} "$@" +fi diff --git a/distrobution/conf/conf.properties b/distrobution/conf/conf.properties new file mode 100644 index 0000000..0b43126 --- /dev/null +++ b/distrobution/conf/conf.properties @@ -0,0 +1,7 @@ +#username = nacos +#password = nacos +#confirmEnabled = true +#accessKey = ? +#secrectKey = ? +#host=localhost +#port=8848 \ No newline at end of file diff --git a/distrobution/pom.xml b/distrobution/pom.xml new file mode 100644 index 0000000..e003414 --- /dev/null +++ b/distrobution/pom.xml @@ -0,0 +1,46 @@ + + + + + nacosctl + com.alibaba.nacos + ${revision} + + 4.0.0 + + distrobution + + + + com.alibaba.nacos + nacos-ctl-bootstrap + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + assembly/release.xml + + posix + + + + assembly + package + + single + + + + + + + + \ No newline at end of file diff --git a/interaction/pom.xml b/interaction/pom.xml new file mode 100644 index 0000000..06df7f8 --- /dev/null +++ b/interaction/pom.xml @@ -0,0 +1,26 @@ + + + + nacosctl + com.alibaba.nacos + ${revision} + + 4.0.0 + + nacos-ctl-interaction + + + + com.alibaba.nacos + nacos-ctl-core + + + + jline + jline + + + + \ No newline at end of file diff --git a/src/main/java/com/alibaba/nacos/cli/input/InputGetter.java b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/InputGetter.java similarity index 88% rename from src/main/java/com/alibaba/nacos/cli/input/InputGetter.java rename to interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/InputGetter.java index fa3c291..64129e9 100644 --- a/src/main/java/com/alibaba/nacos/cli/input/InputGetter.java +++ b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/InputGetter.java @@ -1,92 +1,92 @@ -package com.alibaba.nacos.cli.input; - -import com.alibaba.nacos.cli.config.GlobalConfig; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import com.alibaba.nacos.cli.input.completer.NacosCtlCompleter; -import jline.console.ConsoleReader; - -import java.io.IOException; - -/** - * JLine实现的输入行 - * - *

有可能会出现创建出错的情况,那样的话只能用默认的Scanner来 - * - *

整个的补全逻辑都在completer包下,自己写了一整套补全逻辑 - * - * @author lehr - */ -public class InputGetter { - - private static InputGetter instance = new InputGetter(); - - public static InputGetter getInstance() { - return instance; - } - - private ConsoleReader console; - - private GlobalConfig config = GlobalConfig.getInstance(); - - public static void init() throws HandlerException { - try { - instance.console = new ConsoleReader(); - instance.console.addCompleter(new NacosCtlCompleter()); - } catch (IOException e) { - throw new HandlerException("Failed to load JLine", e); - } - } - - /** - * 对于删除等请求,需要让用户再确认下 - * - * @return - */ - public static boolean cancelConfirm() { - - if (!GlobalConfig.getInstance().isConfirmEnabled()) { - return false; - } - - try { - String s = instance.console.readLine("confirm operation? (y/n) ").trim(); - boolean cancel = !("yes".equals(s) || "y".equals(s)); - if (cancel) { - System.out.println("operation canceled!"); - } - return cancel; - } catch (IOException e) { - return true; - } - } - - public String nextLine() { - - try { - return console.readLine(getPrompt()); - } catch (IOException e) { - return ""; - } - } - - - public void clear() { - try { - console.clearScreen(); - } catch (IOException e) { - System.out.println("fail to clear screen"); - } - } - - /** - * 给客户端提供prompt文字(每次刷新一次信息) - * - * @return - */ - public String getPrompt() { - StringBuffer sb = new StringBuffer(); - sb.append("[NacosCtl:").append(config.getHostAddress()).append("(").append(config.getNamespaceName()) - .append(")]>"); - return sb.toString(); - } -} +package com.alibaba.nacos.ctl.intraction.input; + +import com.alibaba.nacos.ctl.core.config.GlobalConfig; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import com.alibaba.nacos.ctl.intraction.input.completer.NacosCtlCompleter; +import jline.console.ConsoleReader; + +import java.io.IOException; + +/** + * JLine实现的输入行 + * + *

有可能会出现创建出错的情况,那样的话只能用默认的Scanner来 + * + *

整个的补全逻辑都在completer包下,自己写了一整套补全逻辑 + * + * @author lehr + */ +public class InputGetter { + + private static InputGetter instance = new InputGetter(); + + public static InputGetter getInstance() { + return instance; + } + + private ConsoleReader console; + + private GlobalConfig config = GlobalConfig.getInstance(); + + public static void init() throws HandlerException { + try { + instance.console = new ConsoleReader(); + instance.console.addCompleter(new NacosCtlCompleter()); + } catch (IOException e) { + throw new HandlerException("Failed to load JLine", e); + } + } + + /** + * 对于删除等请求,需要让用户再确认下 + * + * @return + */ + public static boolean cancelConfirm() { + + if (!GlobalConfig.getInstance().isConfirmEnabled()) { + return false; + } + + try { + String s = instance.console.readLine("confirm operation? (y/n) ").trim(); + boolean cancel = !("yes".equals(s) || "y".equals(s)); + if (cancel) { + System.out.println("operation canceled!"); + } + return cancel; + } catch (IOException e) { + return true; + } + } + + public String nextLine() { + + try { + return console.readLine(getPrompt()); + } catch (IOException e) { + return ""; + } + } + + + public void clear() { + try { + console.clearScreen(); + } catch (IOException e) { + System.out.println("fail to clear screen"); + } + } + + /** + * 给客户端提供prompt文字(每次刷新一次信息) + * + * @return + */ + public String getPrompt() { + StringBuffer sb = new StringBuffer(); + sb.append("[NacosCtl:").append(config.getHostAddress()).append("(").append(config.getNamespaceName()) + .append(")]>"); + return sb.toString(); + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/input/completer/CompleterFactory.java b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/CompleterFactory.java similarity index 98% rename from src/main/java/com/alibaba/nacos/cli/input/completer/CompleterFactory.java rename to interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/CompleterFactory.java index 3193802..46e28c6 100644 --- a/src/main/java/com/alibaba/nacos/cli/input/completer/CompleterFactory.java +++ b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/CompleterFactory.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.cli.input.completer; +package com.alibaba.nacos.ctl.intraction.input.completer; import jline.console.completer.ArgumentCompleter; import jline.console.completer.Completer; diff --git a/src/main/java/com/alibaba/nacos/cli/input/completer/NacosCtlCompleter.java b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosCtlCompleter.java similarity index 92% rename from src/main/java/com/alibaba/nacos/cli/input/completer/NacosCtlCompleter.java rename to interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosCtlCompleter.java index 569f968..dae1687 100644 --- a/src/main/java/com/alibaba/nacos/cli/input/completer/NacosCtlCompleter.java +++ b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosCtlCompleter.java @@ -1,74 +1,74 @@ -package com.alibaba.nacos.cli.input.completer; - -import com.alibaba.nacos.cli.core.exception.HandlerException; -import jline.console.completer.Completer; -import jline.internal.Preconditions; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -/** - * NacosCtl全局指令自动补全器 - * - *

整个程序的各种子指令的补全逻辑都在这里拼接 - * - * @author lehr - */ -public class NacosCtlCompleter implements Completer { - - private List completers; - - public NacosCtlCompleter() throws HandlerException { - try { - completers = CompleterFactory.loadAll(); - } catch (Exception e) { - throw new HandlerException("failed to load completer groups", e); - } - } - - @Override - public int complete(String buffer, int cursor, List candidates) { - Preconditions.checkNotNull(candidates); - List completions = new ArrayList(this.completers.size()); - int max = -1; - Iterator var6 = this.completers.iterator(); - - while (var6.hasNext()) { - Completer completer = (Completer) var6.next(); - Completion completion = new Completion(candidates); - completion.complete(completer, buffer, cursor); - max = Math.max(max, completion.cursor); - completions.add(completion); - } - - var6 = completions.iterator(); - - while (var6.hasNext()) { - Completion completion = (Completion) var6.next(); - if (completion.cursor == max) { - candidates.addAll(completion.candidates); - } - } - - return max; - } - - private class Completion { - - public final List candidates; - - public int cursor; - - public Completion(List candidates) { - Preconditions.checkNotNull(candidates); - this.candidates = new LinkedList(candidates); - } - - public void complete(Completer completer, String buffer, int cursor) { - Preconditions.checkNotNull(completer); - this.cursor = completer.complete(buffer, cursor, this.candidates); - } - } -} +package com.alibaba.nacos.ctl.intraction.input.completer; + +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import jline.console.completer.Completer; +import jline.internal.Preconditions; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +/** + * NacosCtl全局指令自动补全器 + * + *

整个程序的各种子指令的补全逻辑都在这里拼接 + * + * @author lehr + */ +public class NacosCtlCompleter implements Completer { + + private List completers; + + public NacosCtlCompleter() throws HandlerException { + try { + completers = CompleterFactory.loadAll(); + } catch (Exception e) { + throw new HandlerException("failed to load completer groups", e); + } + } + + @Override + public int complete(String buffer, int cursor, List candidates) { + Preconditions.checkNotNull(candidates); + List completions = new ArrayList(this.completers.size()); + int max = -1; + Iterator var6 = this.completers.iterator(); + + while (var6.hasNext()) { + Completer completer = (Completer) var6.next(); + Completion completion = new Completion(candidates); + completion.complete(completer, buffer, cursor); + max = Math.max(max, completion.cursor); + completions.add(completion); + } + + var6 = completions.iterator(); + + while (var6.hasNext()) { + Completion completion = (Completion) var6.next(); + if (completion.cursor == max) { + candidates.addAll(completion.candidates); + } + } + + return max; + } + + private class Completion { + + public final List candidates; + + public int cursor; + + public Completion(List candidates) { + Preconditions.checkNotNull(candidates); + this.candidates = new LinkedList(candidates); + } + + public void complete(Completer completer, String buffer, int cursor) { + Preconditions.checkNotNull(completer); + this.cursor = completer.complete(buffer, cursor, this.candidates); + } + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/input/completer/NacosSwitchSetCompleter.java b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosSwitchSetCompleter.java similarity index 86% rename from src/main/java/com/alibaba/nacos/cli/input/completer/NacosSwitchSetCompleter.java rename to interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosSwitchSetCompleter.java index 206eef8..ff5e3c7 100644 --- a/src/main/java/com/alibaba/nacos/cli/input/completer/NacosSwitchSetCompleter.java +++ b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosSwitchSetCompleter.java @@ -1,50 +1,50 @@ -package com.alibaba.nacos.cli.input.completer; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import jline.console.completer.Completer; - -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.SortedSet; -import java.util.TreeSet; - -/** - * Use命令自动补全可用的namespace - */ -class NacosSwitchSetCompleter implements Completer { - - private SortedSet strings = new TreeSet(); - - - @Override - public int complete(final String buffer, final int cursor, final List candidates) { - - // 找服务器刷新可访问的数据类型 - if (strings.isEmpty()) { - Map switches = null; - try { - switches = LogicHandler.getSwitches(); - } catch (HandlerException e) { - switches = Collections.emptyMap(); - } - strings.addAll(switches.keySet()); - strings.add("all"); - } - - // 如果目前没有输入,则列出所有选项 - if (buffer == null) { - candidates.addAll(strings); - } else { - // 进行前缀匹配,把match的加入进去 - for (String match : strings.tailSet(buffer)) { - if (!match.startsWith(buffer)) { - break; - } - candidates.add(match); - } - } - return candidates.isEmpty() ? -1 : 0; - } -} +package com.alibaba.nacos.ctl.intraction.input.completer; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import jline.console.completer.Completer; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; + +/** + * Use命令自动补全可用的namespace + */ +class NacosSwitchSetCompleter implements Completer { + + private SortedSet strings = new TreeSet(); + + + @Override + public int complete(final String buffer, final int cursor, final List candidates) { + + // 找服务器刷新可访问的数据类型 + if (strings.isEmpty()) { + Map switches = null; + try { + switches = LogicHandler.getSwitches(); + } catch (HandlerException e) { + switches = Collections.emptyMap(); + } + strings.addAll(switches.keySet()); + strings.add("all"); + } + + // 如果目前没有输入,则列出所有选项 + if (buffer == null) { + candidates.addAll(strings); + } else { + // 进行前缀匹配,把match的加入进去 + for (String match : strings.tailSet(buffer)) { + if (!match.startsWith(buffer)) { + break; + } + candidates.add(match); + } + } + return candidates.isEmpty() ? -1 : 0; + } +} diff --git a/src/main/java/com/alibaba/nacos/cli/input/completer/NacosUseCompleter.java b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosUseCompleter.java similarity index 84% rename from src/main/java/com/alibaba/nacos/cli/input/completer/NacosUseCompleter.java rename to interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosUseCompleter.java index 516c314..86cd6a5 100644 --- a/src/main/java/com/alibaba/nacos/cli/input/completer/NacosUseCompleter.java +++ b/interaction/src/main/java/com/alibaba/nacos/ctl/intraction/input/completer/NacosUseCompleter.java @@ -1,50 +1,50 @@ -package com.alibaba.nacos.cli.input.completer; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.bean.NamespaceVO; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import jline.console.completer.Completer; - -import java.util.Collections; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.stream.Collectors; - -/** - * Use命令自动补全可用的namespace - */ -class NacosUseCompleter implements Completer { - - private SortedSet strings = new TreeSet(); - - - @Override - public int complete(final String buffer, final int cursor, final List candidates) { - - // 找服务器刷新可访问的数据类型 - strings.clear(); - List namespaces = null; - try { - namespaces = LogicHandler.listNamespaces(); - } catch (HandlerException e) { - namespaces = Collections.EMPTY_LIST; - } - - strings.addAll(namespaces.stream().map(NamespaceVO::toString).collect(Collectors.toList())); - - // 如果目前没有输入,则列出所有选项 - if (buffer == null) { - candidates.addAll(strings); - } else { - // 进行前缀匹配,把match的加入进去 - for (String match : strings.tailSet(buffer)) { - if (!match.startsWith(buffer)) { - break; - } - candidates.add(match); - } - } - return candidates.isEmpty() ? -1 : 0; - } -} +package com.alibaba.nacos.ctl.intraction.input.completer; + +import com.alibaba.nacos.ctl.core.LogicHandler; +import com.alibaba.nacos.ctl.core.bean.NamespaceVO; +import com.alibaba.nacos.ctl.core.exception.HandlerException; +import jline.console.completer.Completer; + +import java.util.Collections; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.stream.Collectors; + +/** + * Use命令自动补全可用的namespace + */ +class NacosUseCompleter implements Completer { + + private SortedSet strings = new TreeSet(); + + + @Override + public int complete(final String buffer, final int cursor, final List candidates) { + + // 找服务器刷新可访问的数据类型 + strings.clear(); + List namespaces = null; + try { + namespaces = LogicHandler.listNamespaces(); + } catch (HandlerException e) { + namespaces = Collections.EMPTY_LIST; + } + + strings.addAll(namespaces.stream().map(NamespaceVO::toString).collect(Collectors.toList())); + + // 如果目前没有输入,则列出所有选项 + if (buffer == null) { + candidates.addAll(strings); + } else { + // 进行前缀匹配,把match的加入进去 + for (String match : strings.tailSet(buffer)) { + if (!match.startsWith(buffer)) { + break; + } + candidates.add(match); + } + } + return candidates.isEmpty() ? -1 : 0; + } +} diff --git a/pom.xml b/pom.xml index 6b18d32..70c3bd9 100644 --- a/pom.xml +++ b/pom.xml @@ -1,100 +1,196 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - + com.alibaba.nacos nacosctl - 1.0.0 - + pom + ${revision} + + distrobution + core + interaction + command + bootstrap + + + 1.0.1-SNAPSHOT + UTF-8 8 8 + 1.4.4 + 4.6.3 + 0.3.2 + 2.14.6 + 4.5.14 + 2.8.9 + 1.7.36 + 1.2.11 + + 4.13.2 + 4.0.0 + + 3.3.0 + 3.4.2 + 1.1.0 - + + + + + com.alibaba.nacos + nacos-ctl-core + ${project.version} + + + com.alibaba.nacos + nacos-ctl-interaction + ${project.version} + + + com.alibaba.nacos + nacos-ctl-command + ${project.version} + + + com.alibaba.nacos + nacos-ctl-bootstrap + ${project.version} + + + + info.picocli + picocli + ${picocli.version} + + + com.alibaba.nacos + nacos-client + ${nacos.client.version} + + + de.vandermeer + asciitable + ${asciitable.version} + + + jline + jline + ${jline.version} + + + org.apache.httpcomponents + httpclient + ${httpcomponents.version} + + + com.google.code.gson + gson + ${gson.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + junit + junit + ${junit.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + + org.mockito + mockito-inline + ${mockito.version} + test + + + + - - - info.picocli - picocli - 4.6.1 - - - - com.alibaba.nacos - nacos-client - 1.4.2 - - - de.vandermeer - asciitable - 0.3.2 - - - - jline - jline - 2.14.6 - - - - org.apache.httpcomponents - httpclient - 4.5.5 + org.slf4j + slf4j-api - - commons-codec - commons-codec - 1.11 + ch.qos.logback + logback-classic + - com.google.code.gson - gson - 2.8.5 + junit + junit - - org.slf4j - slf4j-api - 1.7.22 + org.mockito + mockito-inline - ch.qos.logback - logback-classic - 1.1.7 + org.mockito + mockito-junit-jupiter - - - - + + + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + - org.apache.maven.plugins - maven-assembly-plugin - 2.2-beta-5 + maven-resources-plugin + ${maven-resources-plugin.version} + + + ${project.build.sourceEncoding} + + + + org.codehaus.mojo + flatten-maven-plugin + ${maven-flatten-version} + + true + resolveCiFriendliesOnly + + expand + + - package + flatten + process-resources + + flatten + + + + flatten.clean + clean - single + clean - - - - - com.alibaba.nacos.cli.ClientMain - - - - - jar-with-dependencies - - diff --git a/src/main/java/com/alibaba/nacos/cli/commands/NacosClear.java b/src/main/java/com/alibaba/nacos/cli/commands/NacosClear.java deleted file mode 100644 index 5c61b3a..0000000 --- a/src/main/java/com/alibaba/nacos/cli/commands/NacosClear.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.alibaba.nacos.cli.commands; - -import picocli.CommandLine; - -import java.util.concurrent.Callable; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_CLEAR; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_CLEAR; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_CLEAR; - -/** - * clear the terminal, it only works with jline input - * - * @author lehr - */ -@CommandLine.Command(name = NAME_CLEAR, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_CLEAR, description = DESCRIPTION_CLEAR) -public class NacosClear implements Callable { - - @Override - public Integer call() throws Exception { - return -2; - } -} diff --git a/src/main/java/com/alibaba/nacos/cli/commands/NacosQuit.java b/src/main/java/com/alibaba/nacos/cli/commands/NacosQuit.java deleted file mode 100644 index 7a26b2b..0000000 --- a/src/main/java/com/alibaba/nacos/cli/commands/NacosQuit.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.alibaba.nacos.cli.commands; - -import com.alibaba.nacos.cli.core.LogicHandler; -import com.alibaba.nacos.cli.core.exception.HandlerException; -import picocli.CommandLine; - -import java.util.concurrent.Callable; - -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.DESCRIPTION_QUIT; -import static com.alibaba.nacos.cli.utils.HintUtils.HEADER_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.NAME_QUIT; -import static com.alibaba.nacos.cli.utils.HintUtils.OPTION_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.PARAMETER_LIST_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.SORT_OPTIONS; -import static com.alibaba.nacos.cli.utils.HintUtils.SYNOPSIS_HEADING; -import static com.alibaba.nacos.cli.utils.HintUtils.USAGE_QUIT; - -/** - * quit from cli - * - * @author lehr - */ -@CommandLine.Command(name = NAME_QUIT, sortOptions = SORT_OPTIONS, headerHeading = HEADER_HEADING, synopsisHeading = SYNOPSIS_HEADING, descriptionHeading = DESCRIPTION_HEADING, parameterListHeading = PARAMETER_LIST_HEADING, optionListHeading = OPTION_LIST_HEADING, header = USAGE_QUIT, description = DESCRIPTION_QUIT) -public class NacosQuit implements Callable { - - - @Override - public Integer call() { - try { - LogicHandler.shutdown(); - } catch (HandlerException e) { - System.out.println(e.getMessage()); - } - System.out.println("bye!"); - return -1; - } -} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml deleted file mode 100644 index a08127c..0000000 --- a/src/main/resources/logback.xml +++ /dev/null @@ -1,10 +0,0 @@ - -     -       -          %-4relative [%thread] %-5level %logger{35} - %msg %n -       -     -     -        -     - \ No newline at end of file