`

OSGI DS 实例

    博客分类:
  • OSGI
阅读更多

 一,开发生产者:

    工程名: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,没有了,下载呀。。

分享到:
评论
2 楼 zengsir2008 2012-08-20  
哎,不太明白。。。。
1 楼 sugongp 2011-07-28  

相关推荐

Global site tag (gtag.js) - Google Analytics