osgi 学习系列(三)自定义osgi控制台命令

为了后面demo的结果显示需要先说下自定义osgi控制台命令,自定义命令的类必须实现org.eclipse.osgi.framework.console.CommandProvider接口

该接口中只有一个方法public String getHelp()用于在help方法中添加我们自定义命令的描述

自定义命令也很简单,只要写一个以下划线+命令的方法即可,比如我想自定义一个say命令

public void _say(CommandInterpreter ci) {
     ci.print("said:" + ci.nextArgument());
}

这个CommandInterpreter参数必须要,否则找不到命令,ci.nextArgument()获取osgi控制台命令后跟的参数

通过getHelp方法就可以把该自定义命令的描述加到osgi控制台help命令中

@Override
public String getHelp() {
     return "\tsay – say what you input\n";
}

下面建个bundle来演示一下

New-->Plug-inProject



Finish完成

打开MANIFEST.MF文件,导入org.eclipse.osgi.framework.console和org.osgi.framework包


创建一个类并实现CommandProvider和BundleActivator接口


类代码如下

public class CustomizedCommand implements CommandProvider, BundleActivator {

	@Override
	public void start(BundleContext context) throws Exception {
		context.registerService(CommandProvider.class.getName(),
			    new CustomizedCommand(), null);
	}

	@Override
	public void stop(BundleContext arg0) throws Exception {
	}
	
	public void _say(CommandInterpreter ci) {
		 ci.print("said:" + ci.nextArgument());
	}

	@Override
	public String getHelp() {
		return "\tsay – say what you input\n";
	}
}

打开MANIFEST.MF,添加Bundle-Activator



Run运行后,在osgi控制台输入ss会看到我们建的bundle处于运行状态


这里自定义的bundle的id比较大,是因为configuraton的缓存没有清理,我们可以在settings中把Clear the configuration area before launching勾上


输入自定义命令say后会调用 _say方法

http://

在help方法中也能找到我们自定义的命令描述


osgi控制台自定义命令就说到这,这个demo中用到的jar包为

org.eclipse.osgi_3.7.2.v20120110-1415.jar

对于刚接触osgi,流程可能不太熟悉所以前面几章截图比较多,后面章节对基础的东西就不多加赘述。


点击下载demo代码



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值