博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
osgi实战学习之路:5.生命周期及利用命令、装饰者模式实现基于socket交互Bundle命令demo...
阅读量:7022 次
发布时间:2019-06-28

本文共 1779 字,大约阅读时间需要 5 分钟。

生命周期中关键3个类:

BundleActivator

入口点,类似main方法

BundleContext

Bundle上下文对象,在执行期间,为应用程序提供操作osgi框架的方法

Bundle

代表一个已安装的Bundle

接口说明:

BundleActivator:

public interface BundleActivator {	public void start(BundleContext context) throws Exception;	public void stop(BundleContext context) throws Exception;}
BundleContext:

public interface BundleContext {   ...   String getProperty(String key);   Bundle getBundle();   Bundle installBundle(String location, InputStream input)   throws BundleException;   Bundle installBundle(String location) throws BundleException;   Bundle getBundle(long id);   Bundle[] getBundles();   void addBundleListener(BundleListener listener);   void removeBundleListener(BundleListener listener);   void addFrameworkListener(FrameworkListener listener);   void removeFrameworkListener(FrameworkListener listener);   ...}
Bundle:

...BundleContext getBundleContext();long getBundleId();Dictionary getHeaders();Dictionary getHeaders(String locale);String getLocation();int getState();String getSymbolicName();Version getVersion();void start(int options) throws BundleException;void start() throws BundleException;void stop(int options) throws BundleException;void stop() throws BundleException;void update(InputStream input) throws BundleException;void update() throws BundleException;void uninstall() throws BundleException;

Bundle状态图:

demo:

准备:

在karaf_home下新建config、logs目录

将my-shell下的server.properties拷贝到karaf_home/config下

增加log4j日志配置,

部署Bundle

bundle:install -s mvn:com.demo.shell/my-shell/1.0.0-SNAPSHOT

打开window命令行输入:

telnet localhost 7080

输入help,能够查看全部命令帮助

输入install命令,部署外部Bundle:

install http://localhost:9090/testweb/bundle/user-model-0.0.1-SNAPSHOT.jar

在karaf中输入list,能够查看已经部署的bundle id

在window命令行输入命令,启动bundle

start bundle_id
在karaf中输入list,查看已部署的Bundle处于Active状态

你可能感兴趣的文章
深入的聊聊 Java NIO
查看>>
什么?Linux 终端也可以用来看女神照片?
查看>>
JavaScript常见知识点总结
查看>>
npm更新和nodejs更新
查看>>
CentOS 7安装nginx+php+mysql环境
查看>>
基于SpringBoot+STOMP协议实现的web聊天室
查看>>
Promise 快速入门学习笔记
查看>>
知乎 Android 客户端组件化实践
查看>>
github 命令行
查看>>
Android 面试题问题与答案个人整理(动画篇)
查看>>
VARCHART XGantt .NET的最佳实践:通过表交互式交换任务
查看>>
关于TIME_WAIT状态的理解
查看>>
2019最新Linux云计算学习教程(学习路线+课程大纲+面试题+视频教程+网盘下载)...
查看>>
在 Ubuntu 中使用 Slimbook Battery Optimizer 切换电源模式
查看>>
导出和导入
查看>>
java B2B2C Springcloud仿淘宝电子商城系统-Spring Cloud的核心特性
查看>>
阿里云前端周刊 - 第 27 期
查看>>
Android攻城狮前端遇坑指南
查看>>
RN語法雜記
查看>>
记录下工作俩月内用到的一些知识
查看>>