開發(fā)
1、分支:command-tool
2、創(chuàng)建命令(查詢元信息命令)implements Command
public class MetaInfoCmd implements Command {
private static final String NAMESPACE = "syscmd";
private static final String ACTION_NAME = "metaInfo";
@Override
public Descriptor getDescriptor() {
return new Descriptor() {
//...
//命令描述
};
}
@Override
public Object execute(Context ctx) {
//執(zhí)行命令
}
}
3、pom文件加上配置,jar包打到dapeng-command-tool模塊的dist/plugins目錄下。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<outputDirectory>${project.basedir}/dist/plugins</outputDirectory>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
4、修改dist目錄下的配置文件cli.config,在controller的inputPattern加上對應(yīng)命令metaInfo
"controllers":{
"org.clamshellcli.impl.CmdController":{
"enabled":"true",
"inputPattern":"\\s*(exit|help|sysinfo|time|metaInfo)\\b.*",
"expectedInputs":[]
}
}
5、resource的META-INF/service下org.clamshellcli.api.Plugin 加上對應(yīng)的Commandcom.isuwang.dapeng.tools.commands.MetaInfoCmd
6、進(jìn)入dist目錄,執(zhí)行 java -jar cli.jar

功能
1、能設(shè)置某個zk節(jié)點(diǎn)的值, 參數(shù)包括zk目錄路徑, 以及設(shè)置的值
2、通過指定服務(wù)名,或服務(wù)名+版本號,獲取對應(yīng)的服務(wù)的容器ip和端口
3、通過服務(wù)名和版本號,獲取元信息
4、通過json文件,請求對應(yīng)服務(wù),并打印結(jié)果
5、通過xml文件,請求對應(yīng)服務(wù),并打印結(jié)果:
6、通過系統(tǒng)參數(shù),json文件,調(diào)用指定服務(wù)器的服務(wù)并打印結(jié)果
7、通過系統(tǒng)參數(shù),xml文件,調(diào)用指定服務(wù)器的服務(wù)并打印結(jié)果
8、通過服務(wù)名/版本號/方法名,獲取請求json的示例
9、通過服務(wù)名/版本號/方法名,獲取請求xml的示例
10、獲取當(dāng)前zookeeper中的服務(wù)路由信息
11、指定配置文件,設(shè)置路由信息
12、獲取指定的zookeeper上所有運(yùn)行的服務(wù)列表