diff --git a/core/src/main/java/com/taobao/arthas/core/command/basic1000/EchoCommand.java b/core/src/main/java/com/taobao/arthas/core/command/basic1000/EchoCommand.java index 89cc62f46..b1db3f084 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/basic1000/EchoCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/basic1000/EchoCommand.java @@ -1,6 +1,8 @@ package com.taobao.arthas.core.command.basic1000; import com.taobao.arthas.core.command.Constants; +import com.taobao.arthas.core.command.model.EchoModel; +import com.taobao.arthas.core.command.model.MessageModel; import com.taobao.arthas.core.shell.command.AnnotatedCommand; import com.taobao.arthas.core.shell.command.CommandProcess; import com.taobao.middleware.cli.annotations.Argument; @@ -30,8 +32,7 @@ public class EchoCommand extends AnnotatedCommand { @Override public void process(CommandProcess process) { if (message != null) { - process.write(message); - process.write("\n"); + process.appendResult(new EchoModel(message)); } process.end(); diff --git a/core/src/main/java/com/taobao/arthas/core/command/basic1000/VersionCommand.java b/core/src/main/java/com/taobao/arthas/core/command/basic1000/VersionCommand.java index 04b607736..b46ed80b8 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/basic1000/VersionCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/basic1000/VersionCommand.java @@ -1,6 +1,7 @@ package com.taobao.arthas.core.command.basic1000; +import com.taobao.arthas.core.command.model.VersionModel; import com.taobao.arthas.core.shell.command.AnnotatedCommand; import com.taobao.arthas.core.shell.command.CommandProcess; import com.taobao.arthas.core.util.ArthasBanner; @@ -15,8 +16,13 @@ import com.taobao.middleware.cli.annotations.Summary; @Name("version") @Summary("Display Arthas version") public class VersionCommand extends AnnotatedCommand { + @Override public void process(CommandProcess process) { - process.write(ArthasBanner.version()).write("\n").end(); + VersionModel result = new VersionModel(); + result.setVersion(ArthasBanner.version()); + process.appendResult(result); + process.end(); } + } diff --git a/core/src/main/java/com/taobao/arthas/core/command/model/EchoModel.java b/core/src/main/java/com/taobao/arthas/core/command/model/EchoModel.java new file mode 100644 index 000000000..0b0287d87 --- /dev/null +++ b/core/src/main/java/com/taobao/arthas/core/command/model/EchoModel.java @@ -0,0 +1,29 @@ +package com.taobao.arthas.core.command.model; + +/** + * @author gongdewei 2020/5/11 + */ +public class EchoModel extends ResultModel { + + private String content; + + public EchoModel() { + } + + public EchoModel(String content) { + this.content = content; + } + + @Override + public String getType() { + return "echo"; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } +} diff --git a/core/src/main/java/com/taobao/arthas/core/command/model/VersionModel.java b/core/src/main/java/com/taobao/arthas/core/command/model/VersionModel.java new file mode 100644 index 000000000..ea2624133 --- /dev/null +++ b/core/src/main/java/com/taobao/arthas/core/command/model/VersionModel.java @@ -0,0 +1,20 @@ +package com.taobao.arthas.core.command.model; + +public class VersionModel extends ResultModel { + + private String version; + + @Override + public String getType() { + return "version"; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + +} diff --git a/core/src/main/java/com/taobao/arthas/core/command/view/EchoView.java b/core/src/main/java/com/taobao/arthas/core/command/view/EchoView.java new file mode 100644 index 000000000..0178af5c9 --- /dev/null +++ b/core/src/main/java/com/taobao/arthas/core/command/view/EchoView.java @@ -0,0 +1,14 @@ +package com.taobao.arthas.core.command.view; + +import com.taobao.arthas.core.command.model.EchoModel; +import com.taobao.arthas.core.shell.command.CommandProcess; + +/** + * @author gongdewei 2020/5/11 + */ +public class EchoView extends ResultView { + @Override + public void draw(CommandProcess process, EchoModel result) { + process.write(result.getContent()).write("\n"); + } +} diff --git a/core/src/main/java/com/taobao/arthas/core/command/view/VersionView.java b/core/src/main/java/com/taobao/arthas/core/command/view/VersionView.java new file mode 100644 index 000000000..dd6bf34e1 --- /dev/null +++ b/core/src/main/java/com/taobao/arthas/core/command/view/VersionView.java @@ -0,0 +1,16 @@ +package com.taobao.arthas.core.command.view; + +import com.taobao.arthas.core.command.model.VersionModel; +import com.taobao.arthas.core.shell.command.CommandProcess; + +/** + * @author gongdewei 2020/3/27 + */ +public class VersionView extends ResultView { + + @Override + public void draw(CommandProcess process, VersionModel result) { + writeln(process, result.getVersion()); + } + +}