OSGI学习(1) - HelloWorld

工作后第一个项目就用的OSGI。连Java都不怎么会,一下子就用OSGI,各种概念名词都不懂,而且没有时间去深入学习,只能在已经搭好的框架上写交易,写业务流程,数据库的增删改查,过了很久才慢慢理解。

这个系列的笔记主要以实例的方式介绍我们项目中用到的OSGI技术和原理,主要包括OSGI的HelloWorld,OSGI的服务封装与发布,OSGI与Spring的结合SpringDM,OSGI的类加载原理,OSGI的测试。

OSGI HelloWorld



(1) 打开Eclipse,新开一个Workspace,新建一个Plug-in Project

(2) 需要选择一个FrameWork

(3) 选择生成一个activator

(4) 不用选模板,直接Finish

(5) 一个OSGI的bundle就建好了。

(6) 修改Activator的代码

public class
Activator implements BundleActivator {
 
    private static BundleContext context;
 
    static BundleContext getContext() {
        return context;
    }
 
    public
    void start(BundleContext bundleContext) 
          throws Exception {
        Activator.context = bundleContext;
        System.out.println("Hello World");
    }
 
    public
    void stop(BundleContext bundleContext) 
        throws Exception {
        Activator.context = null;
        System.out.println("Goodbye World");
    } 
}

(7) 点击Run->Debug Configuration,新建一个OSGI的configuration

(8) 把图中的Target Platform了的bundle选中,然后Debug

(9) 程序起来了,使用ss命令查看bundle状态,然后停止我们自己写的bundle,再启动,就看到Hello World和Goodbye World了。

时间: 2024-08-07 23:14:19

OSGI学习(1) - HelloWorld的相关文章

storm记录--5-- Storm学习的HelloWorld

Storm学习的HelloWorld 1.下载Storm-start(https://github.com/nathanmarz/storm-starter/archive/master.zip) 2.进入下载目录,对zip文件解压 3.进入解压后的文件目录,修改m2-pom.xml(将twitter4j-core和twitter4j-stream替换为下面的部分) <dependency> <groupId>org.twitter4j</groupId> <ar

AspectJ基础学习之三HelloWorld(转载)

AspectJ基础学习之三HelloWorld(转载) 一.创建项目 我们将project命名为:aspectjDemo.然后我们新建2个package:com.aspectj.demo.aspect 和 com.aspectj.demo.test 前者用来方apsect.后者用来放测试类.如果你仔细的话,你会发现Aspectj的项目上面有个AJ的标志. 二.创建Aspect 首先我们创建HelloWorld.java.他包含main()方法,但是没有方法体,代码如下: [java] view

osgi学习

osgi是一个Java的开源框架,是一个基于java的组件框架. 第一点,    基于OSGI 的应用程序可动态更改运行状态和行为.在OSGI框架中,每一个Bundle 实际上都是可热插拔的,因此,对一个特定的Bundle 进行修改不会影响到容器中的所有应用,运行的大部分应用还是可以照常工作.当你将修改后的Bundle 再部署上去的时候,容器从来没有重新启过.这种可动态更改状态的特性在一些及时性很强的系统中尤其重要. 第二点,       它是一个稳定高效的系统.OSGI是一个微核的系统,所谓微

OSGI学习总结---Equinox各种命令

OSGJ:Equinox for Eclipse(Luna) 命令 launch - start the OSGi Frameworkshutdown - shutdown the OSGi Frameworkclose - shutdown and exitexit - exit immediately (System.exit)init - uninstall all bundlessetprop <key>=<value> - set the OSGi property --

从零开始学习C#——HelloWorld(一)

从零开始学习C# 老规矩Hello World 您的第一个程序 visual studio 如何使用就不说了 //编程的开始,Hello World! program in C# using System; namespace HelloWorld { class Hello { static void Main() { System.Console.WriteLine("Hello World!");//编程人生就是从这里开始的 System.Console.ReadKey();//

OSGi 学习之路 - 概述什么是OSGi框架

现在越来越多的Java开发人员在谈论OSGi是有其道理的.在几年前上学的时候我进行了比较多的Eclipse插件开发,当时就亲身感觉到Eclipse插件体系的灵活与强大,而该体系与OSGi也可谓一脉相承.同气连枝.最近打算重新系统的研究一下OSGi,一边学习一边写一个OSGi探秘系列作为总结,和大家分享,也请大家多给评价和建议. 在这一篇里面,我想先回答一个基本的问题:什么是OSGi?其实如果要很好地回答这个问题,也许先明白是什么导致了OSGi的产生和发展会有些帮助. 相信每个Java程序员都知道

OSGI学习总结

最近的一项研究了解了一下OSGI技术,感觉OSGI尽管有一定的学习难度.可是终于掌握和推广之后将是一项对系统开发比較实用的技术.在此和大家分享一下自己的感悟. 1.什么是OSGI OSGI直译为"开放服务网关",是一个由OSGI联盟发起的以Java为技术平台的动态模块化规范.眼下基本的实现有:apache的Felix.Eclipse的Equinox等 2.使用OSGI的优点 OSGI可以看作是一种做系统架构的工具和方法论.可以让系统开发和设计人员以模块化的思想来开发和设计系统. 在以往

【Todo】OSGi学习

经常听到.见到OSGi这个名字.那么就单开一篇文章记录一下对OSGi的学习吧. 主要是做一些概念上面的学习.暂时不打算深入实践. 主要参考:http://www.osgi.com.cn/article/7289520 这篇文章吧.

Emit学习(1) - HelloWorld

之前看过Dapper(使用到了Emit), CYQ.Data(另一种思路,没有使用Emit)类的框架之后, 也想自己做一个小框架玩一下, 不过此时能力太过欠缺, 做不了Cyq.Data或者PDF.Net此类的框架, 所以开始了学习之路. 先制定一个能达到的小目标吧, 从Emit开始. 一.使用场景 Emit的使用场景了,通常我们在下面几种情形时可以选择使用Emit来实现: 1.  运行中动态的创建类型.模块等,同时又需要提高效率(可以动态编译一次,然后就不用再处理了). 2 .延迟绑定对象的使用