一,开发生产者:
工程名:org.vwpolo.osgi.service
声明接口:
package org.vwpolo.osgi.service.model;
public interface LoginService {
public void login(String name,String password);
}
实现:
package org.vwpolo.osgi.service.model.impl;
import org.vwpolo.osgi.service.model.LoginService;
public class LoginServiceImpl implements LoginService {
@Override
public void login(String name, String password) {
// TODO Auto-generated method stub
if("lxj".equals(name)&&password.equals("123")){
System.out.println("登录成功");
}else
System.out.println("Sorry,用户名或密码有错误码");
}
}
Mefest.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Service Plug-in
Bundle-SymbolicName: org.vwpolo.osgi.service
Bundle-Version: 1.0.0
Bundle-Activator: org.vwpolo.osgi.service.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version="1.3.0"
Export-Package: org.vwpolo.osgi.service.model
Service-Component: OSGI-INF/component.xml
component.xml
<?xml version="1.0" encoding="UTF-8"?>
<component name="LoginService">
<implementation class="org.vwpolo.osgi.service.model.impl.LoginServiceImpl"/>
<service>
<provide interface="org.vwpolo.osgi.service.model.LoginService"/>
</service>
</component>
至此生产者已经建立完毕。
二消费者:
工程名:org.vwpolo.osgi.service.client
消费者:
package org.vwpolo.osgi.service.client;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.vwpolo.osgi.service.model.LoginService;
public class Activator implements BundleActivator {
private BundleContext context;
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
this.context=context;
ServiceReference serviceRef=context.getServiceReference(LoginService.class.getName());
LoginService loginService=(LoginService)context.getService(serviceRef);
loginService.login("lxj", "123");
System.out.println("OSGI框架已经成功启动了,一切运行正常");
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
}
}
Mefest.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Client Plug-in
Bundle-SymbolicName: org.vwpolo.osgi.service.client
Bundle-Version: 1.0.0
Bundle-Activator: org.vwpolo.osgi.service.client.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version="1.3.0",
org.vwpolo.osgi.service.model
运行,请看里面依赖的包,自已选了。。。。
不过只少要有ds,没有了,下载呀。。
分享到:
相关推荐
OSGI 经典实例,适合新手入门,同时也适合高手,参考! 希望提出意见改进。
osgi-ds一章对应的demo,里面包括1..1和1..n
OSGI服务 DS EVENT OSGI服务 DS EVENT OSGI服务 DS EVENT OSGI服务 DS EVENT
BlueDavy的opendoc《OSGi实战》所涉及实例的源代码。OSGi入门的经典教程。
OSGI 实例 eclipse 插件开发
osgi扩展点实例,学习扩展点的入门。 能够运行。
开发一个简单的 OSGi Web 应用实例,如何进行OSGI开发的 实例有利于入门着进行使用
采用OSGi框架设计 一个简单的HelloWorld程序 在EclipseSDK中运行
《osgi与equinox 创建高度模块化的java系统》第6章声名式服务代码
osgi+vs2010+qt5.11 谢了几个 常用的 插件之间的 通信实例,内有源代码
OSGI的源码实例,经过测试了,是可以运行的,大家可以参考参考
jmx与osgi结合的实例,将osgi的bundle注册到jmx进行管理。简单实例,可以进行扩展
osgi集成spring的应用 内涵各种jar包,直接可以使用
《基于Eclipse开发OSGI的简单实例》欢迎下载,希望对你有所帮助。
osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍
这个sevlvlet是和上面传的jdbcbundle是配套的,这是一个关于OSGI的简单实例。
osgi的基本概念 基于 osgi的实例 和spring的集成 和hibernate的集成
该资源里面包含了osgi服务的注册、引用、服务工厂、以及服务跟踪,都是非常简单的例子,但是却非常有代表性,特别适合对osgi框架有基础了解的开发人群
NULL 博文链接:https://nopainnogain.iteye.com/blog/668093