现在的位置: 首页 > 综合 > 正文

OSGI(四)Hello World

2014年05月27日 ⁄ 综合 ⁄ 共 1323字 ⁄ 字号 评论关闭

       OSGI的基础知识有了一点了解之后,我们进行第一个程序:Hello
World

   我们通过最简单的控制台代码来看一下OSGI实现的具体流程:
   首先新建项目:


将生成路径修改一下:


添加引用:


添加类库文件,其实就是咱们要做的一个插件:


ps:要添加的控制台程序文件夹下的bin--Plugin文件夹下;

 

添加同样的引用,修改生成路径;

 

下面开始编写代码:

控制台程序program文件代码:

using UIShell.OSGi;
namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {

            using (BundleRuntime bundleRuntime = new BundleRuntime())
            {
                bundleRuntime.Start();
                Console.WriteLine("Press enter to exit.....");
                Console.ReadLine();
            }
        }
    }
}

HelloWorldOne下的class1重命名为:Activator,并让他实现接口IBundleActivator

using UIShell.OSGi;
namespace HelloWorldOut
{
    public class Activator:IBundleActivator
    {

        public void Start(IBundleContext context)
        {
            Console.WriteLine("Hello World!!!");
        }
        public void Stop(IBundleContext context)
        {
            //todo;
        }
    }
}

最后一步,在类库中添加Manifest.xml文件;并进行如下书写:

<Bundle xmlns="urn:uiosp-bundle-manifest-2.0" SymbolicName="HelloWorldOut" Name="HelloWorldOut" Version="1.0.0.0" InitializedState="Active">
  <Activator Type="HelloWorldOut.Activator"/>
  <Runtime>
    <Assembly Path="bin\HelloWorldOut.dll"/>
  </Runtime>
</Bundle>

     讲解一下,通过简单的HelloWorld,我们可以看出OSGI系统的流程,通过调用bundleRuntimestart方法,到Activator文件中;执行Start方法代码;最后执行完成之后,执行stop方法,OSGI整个流程完毕。

     那么可能有人要问了,“如果我有好几个插件会同时启用吗?”这个可以设置,可以通过设置启动级别来控制插件启动顺序,或许还是有疑问“我有几个插件,我不需要同时全部启用,如果我能自定义启用最好了”,这个也是可以通过设置Policy来设置的,这些都是可以通过我们伟大的Manifest文件进行设置、修改(Manifest文件在之前的博客中有讲如何使用)。

       以上就是我们OSGI的第一个小程序——HelloWorld


    下篇开始讲通过iopenwork制作界面插件,谢谢关注~~~



抱歉!评论已关闭.