OSGi HelloWorld】的更多相关文章

1.创建项目 2.Debug Configurations,配好之后,可以点一下右下角的Validate Bundles验证一下是否有问题 3.Debug…
OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范.简单来说,OSGi可以认为是Java平台的模块层. OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境.Java提供在多个平台支持产品的可移植性.OSGi技术提供允许应用程序使用精炼.可重用和可协作的组件构建的标准化原语,这些组件能…
基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 OSGI 盟已经开发了为例如象HTTP服务器.配置.日志.安全.用户管理.XML等很多公共功能标准组件接口.这些组件的兼容性插件实现可以从进行了不同优化和使用代价的不同计算机服务提供商得到.然而,服务接口能够基于专有权基础上开发. 因为OSGi技术为集成提供了预建立和预测试的组件子系统,所以OSGi技…
1 OSGi开发环境的建立 1.1 Equinox是什么 从代码角度来看,Equinox其实就是OSGi核心标准的完整实现,并且还在这个基础上增加了一些额外的功能(比如为框架增加了命令行和程序执行的入口).我们在之前入门篇讲解的都东西其实都是OSGi核心标准的一小部分.其实它的核心就是一个jar包,这个jar包既能执行(作为标准Java包的特性),也是一个bundle(Manifest里面含有OSGi bundle特有的元数据).我们能够利用Equinox项目的代码来运行一个实实在在的OSGi框…
上篇文章中,我们完成了在OSGI应用中整合Spring和Mybatis框架的准备工作,本节我们继续Spring和Mybatis框架的整合. 一.解决OSGI整合Spring中的Placeholder问题 使用Spring框架的朋友应该都知道,我们可以在Bean的配置文件中,使用${key}的形式访问properties文件中对应的value值,需要用到Spring中的PropertyPlaceholderConfigurer类,使用方式如下,首先需要配置placeholder,例如: <bean…
上篇文章介绍了标准的Blueprint 规范与 Gemini Blueprint如何自定义Bean配置文件路径,本文接着上篇文章继续介绍Blueprint的使用. 一.Bean的配置 前面提到过,Gemini Blueprint即实现了Blueprint 规范,又兼容Spring DM风格的配置,本节我们再来了解一下Blueprint与Spring DM在Bean的配置上的差异,具体如下表所示: (注意:这两种风格Gemini Blueprint都支持.) 如上图所示,Spring DM风格的B…
上篇文章介绍了如何使用Blueprint將Spring框架整合到OSGI应用的Bundle中,从上篇文章中我们大概了解了Blueprint与Gemini Blueprint的关系,简单的说,Blueprint是OSGI Alliance借鉴了Spring Dynamic Modules 的思想,为OSGI制定的依赖注入(DI)规范,而Gemini Blueprint的前生是Spring DM,它即兼容之前的Spring DM,又实现了Blueprint规范.本篇文章开始,我们就来了解一下Gemi…
1 OSGi开发环境的建立 1.1 Equinox是什么 从代码角度来看,Equinox其实就是OSGi核心标准的完整实现,并且还在这个基础上增加了一些额外的功能(比如为框架增加了命令行和程序执行的入口).我们在之前入门篇讲解的都东西其实都是OSGi核心标准的一小部分.其实它的核心就是一个jar包,这个jar包既能执行(作为标准Java包的特性),也是一个bundle(Manifest里面含有OSGi bundle特有的元数据).我们能够利用Equinox项目的代码来运行一个实实在在的OSGi框…
一手资料来源于“开放工厂”,以下程序将会引用到一个核心文件UIShell.OSGi.dll 目前我对于OSGi这个框架的理解就是,主程序搜索并加载插件,以插件方式开放,便于扩展. 现在开始正式的旅程. 首先新建一个C#控制台应用程序(.NET 4.0)按照惯例取名HelloWorld 添加OSGi.NET的引用(上述dll文件),设置输出目录为bin(建议这样做) 这个程序的主函数(Main)中只做一件事,就是启动插件框架,完整代码如下 using System; using UIShell.O…
按照网上教程创建OSGI HelloWorld实例配置run configuration时出现Could not find bundle: org.eclipse.equinox.console 和Could not resolve module: org.eclipse.equinox.console 错误,是因为Target Platform中少勾选了以下几个bundle: 勾选这几个bundle之后再运行就不会再报错.…
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wanghuan203/article/details/13631713 本次介绍的 HelloWorld 例子程序主要的功能是在启动和停止一个 Bundle 的时候输出开始和结束信息.下面我们就来完成第一个 Bundle. 第一步,创建 Bundle 工程. 在 Eclipse 中创建一个 Plug-in 工程. 输入工程相关的信息,这里和创建普通的 Java工程唯一的不同点就是要选择 this…
基于 OSGi 的面向服务的组件编程 OSGi(Open Services Gateway Initiative,开放服务网关协议)提供了一个面向服务组件的编程模型,基于 OSGi 编程,具有模块化,标准化,面向服务,动态性,易复用,易扩展,易部署等诸多优点,本文介绍了基于 OSGi 开发一个应用程序的过程,读者可以学习如何基于 OSGi 开发自己的应用,并从中体会 OSGi 上述的优点. 一. OSGi 简史 OSGi 是由 1999 年成立的 OSGi 联盟提出的一个开放的服务规范,最初的目…
环境准备: jdk版本号 jdk:1.7 karaf: 版本号:apache-karaf-3.0.1 下载地址: http://pan.baidu.com/s/1qWM4Y1u http://karaf.apache.org/ 配置本地仓库: 參考:http://blog.csdn.net/wobendiankun/article/details/25333113 启动karaf: karaf_home/bin/karaf.bat 启动成功例如以下: 安装 mvn-hello-provider…
开发环境分为三个部份 osgi_provider: bundle开发环境,对外提供服务 osgi_consumer: 引用其他bundle osgi_main: 执行測试 项目主要内容 : common.xml: <?xml version="1.0" encoding="UTF-8"?> <project name="common"> <!-- 属性定义 --> <dirname property=&q…
OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文介绍模块层的一些基础知识,以及OSGi联盟在设计模块层时所做的一些考虑.OSGi标准走到今天,并不是凭空想出来的,它的产生恰恰是为了弥补之前一些技术的缺陷. 模块化其实就是计算机科学中常见的一个概念: “将一个大型系统分解为多个较小的互相协作的逻辑单元,通过强制设定模块之间的逻辑边界来改善系统的维护…
OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或者两者的结合),并且给了应用本身很大的动态性. 这一章里,我们介绍生命周期层的基本特性和如何有效的使用这些特性.当然按照惯例,我们依然会先讲清楚什么是生命周期管理以及OSGi需要生命周期管理的原因,然后再讲解生命周期层的一些基本内容. 1 什么是生命周期管理 一般来说,程序(或者程序的一部分)都一定…
Helloworld入门 准备: eclipse 3.4 需要jar,—— eclipse 自带的,plugin下面有很多,抛开里面的jar,很多都是当前项目不需要的,如果不适用eclipse而是直接在jre上运行的话,估计只需要org.eclipse.osgi_3.2.0.v20060601.jar 就ok了吧 通过eclipse想到创建最简单的项目: 新建plugin项目,输入项目名字AAA(默认情况,向导会以这个为包名等等)——Target Platform一定要选择 an osgi fr…
几种OSGi框架 Several independently implemented OSGi frameworks exist today, including four that are available as open source software. Equinox  is the most widely deployed OSGi framework today owing to its use in the core runtime of Eclipse. It can also…
底层代码可见性控制 Java提供了private,public,protected和package private(无修饰符)这四种访问控制级别,不过这仅仅提供了底层的OO数据封装特性.包这个概念确实是起到了分割代码的作用,但是如果包中的代码需要对包外可见,那么必须设置为public(或者protected,如果是使用了继承的话). 这样的话就可能出现一个问题: 首先大家看看下面的例子,其中有三个java文件:  org.serc.helloworld.Hello.java:定义了一个接口 pa…
<深入理解OSGi:Equinox原理.应用与最佳实践>笔记_1_运行最简单的bundlehelloworld 买了周大大的OSGI的书看 先前完全没有基础 就靠这本书看看学学 顺便记一些笔记 今天先跳到了第5章的equinox启航部分 第一个简单的helloworld就遇到了问题.... 因为eclipse版本和书中不同 用书中所说得到的全是异常.... 搜索有关资料以后可以运行正常了 以此来记录一下: 在较新版本的eclipse中 不能通过java -jar org.eclipse.osg…
OpenDayLight——HelloWorld 既然学习OpenDayLight编程这个鬼,就得像学语言一样来一个HelloWorld来试试水,经过几天的折腾,总算成功输出HelloWorld了,这里记录下整个过程以供后续参考. 一.实验环境描述 本次实验是在win7 64位+8G内存环境下实现:java版本为1.8.0_131:maven版本为3.5.0:这些安装过程就不记录了! 二.构建项目 1.执行如下命令构建项目: mvn archetype:generate -DarchetypeG…
Develop and register service, lookup and use service! Android Design on service's publish-find-bind model. What is OSGi(Open Service Gateway Initiative)?: http://www.osgi.org/Technology/WhatIsOSGi http://dz.prosyst.com/pdoc/mBS_R5_SDK_7.3.0_beta/gett…
我们可能都学过Socket通信/io/nio/aio等的编程.如果想把Socket真正的用于实际工作中去,那么还需要不断的完善.扩展和优化.比如很经典的Tcp读包写包问题,或者是数据接收的大小,实际的通信读取与应答的处理逻辑等等.当细节问题需要我们认真的去思考,而这些我们都需要大量的时间和精力,以及丰富的经验. 所以想学好socket通信不是件容易的事情.那么现在,我们就需要学习一门新的技术Netty. 我们为什么选择Netty?原因是它简单.我们再也不需要去编写复杂的代码和逻辑去实现通信:我们…
开发一个简单的Hello World的OSGi Bundle(OSGi绑定包) 在OSGi中,软件是以Bundle的形式发布的.一个Bundle由Java类和其它资源构成,它可为其它的Bundle提供服务,也可以导入其它Bundle中的Java包:同时,OSGi的Bundle也可以为其所在的设备提供一些功能.Eclipse为开发OSGiBundle提供了优秀的支持,它不仅提供了向导来创建OSGi Bundle,而且还提供了内嵌的Equinox容器,您可以使用该容器执行和调试OSGi插件.请注意每…
OpenDaylight开发hello-world项目之开发环境搭建 OpenDaylight开发hello-world项目之开发工具安装 OpenDaylight开发hello-world项目之代码框架搭建 OpenDaylight开发hello-world项目之功能实现 来到最后的功能实现的步骤,功能实现其实很简单,添加一个yang文件,编译,添加接口实现代码,编译,ok,搞定收工. yang文件编写 yang文件简单理解为是定义接口和传入参数的文件,在hello world项目中定了一个接…
本文主要描述使用Spring.DM2.0,创建OSGi的HelloWorld演示程序,理解Spring.DM的OSGi框架实现机制.   环境描述: 项目 版本 Eclipse 3.7.x JDK 1.6.x Sprng.DM spring-osgi-2.0.0.M1-with-dependencies 下载地址 一.环境准备 将spring-osgi-2.0.0.M1-with-dependencies ,解压到一个文件夹中,你能看到以下目录: 在Eclipse中点击菜单:File->Impo…
下面列出了主要的控制台命令: 表 1. Equinox OSGi 主要的控制台命令表 类别 命令 含义 控制框架 launch 启动框架 shutdown 停止框架 close 关闭.退出框架 exit 立即退出,相当于 System.exit init 卸载所有 bundle(前提是已经 shutdown) setprop 设置属性,在运行时进行 控制 bundle Install 安装 uninstall 卸载 Start 启动 Stop 停止 Refresh 刷新 Update 更新 展示…
今天学习OSGI的过程中按照书上所述搭建好第一个helloworld插件工程,运行的过程中出现下面所示的错误: !SESSION 2014-06-09 21:04:49.038 -----------------------------------------------eclipse.buildId=unknownjava.version=1.6.0_35java.vendor=Sun Microsystems Inc.BootLoader constants: OS=win32, ARCH=…
使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这篇文章进行安装和破解http://www.cnblogs.com/chengxs/p/6245281.html 2.然后需要你的电脑安装了node.js. 可以参考这篇文章http://www.cnblogs.com/chengxs/p/6221393.html 2.第一种方法:使用命令行窗口.可以在你要创建…
这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比较完整的,包涵了一些基本的要素,由于个人的项目重心已经转移,现在打算把它公开出来,供大家参考: OSGi.NET框架是一个参照了OSGi规范的模块化管理框架.框架为应用程序扩展(组件(bundle))提供了一个标准环境.整个框架可以划分为一些层次: 1.运行环境 2.模块(Bundle) 3.生命周…