新建一个叫 DBLoginBundle 的Equinox 项目
文件结构如图所示,我们要在 META-INF/MANIFEST.MF 中的 依赖 选项卡中选择导入 org.vwpolo.services 这个包
package
org.vwpolo.login.service;
import java.util.Hashtable;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.vwpolo.login.service.impl.DBLoginServiceImpl;
import org.vwpolo.services.LoginService;
public class DBActivator implements BundleActivator ... {
private BundleContext context = null;
private ServiceRegistration serviceRegistration = null;
private LoginService loginServiceImpl;
/**//*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception ...{
this.context = context;
loginServiceImpl = new DBLoginServiceImpl();
serviceRegistration = this.context.registerService(LoginService.class.getName(), loginServiceImpl, new Hashtable());
}
/**//*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception ...{
serviceRegistration.unregister();
context = null;
}
}
import java.util.Hashtable;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.vwpolo.login.service.impl.DBLoginServiceImpl;
import org.vwpolo.services.LoginService;
public class DBActivator implements BundleActivator ... {
private BundleContext context = null;
private ServiceRegistration serviceRegistration = null;
private LoginService loginServiceImpl;
/**//*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception ...{
this.context = context;
loginServiceImpl = new DBLoginServiceImpl();
serviceRegistration = this.context.registerService(LoginService.class.getName(), loginServiceImpl, new Hashtable());
}
/**//*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception ...{
serviceRegistration.unregister();
context = null;
}
}
package
org.vwpolo.login.service.impl;
import org.vwpolo.services.LoginService;
public class DBLoginServiceImpl implements LoginService... {
@Override
public boolean login(String userName, String password) ...{
System.out.println("DB 登陆方式");
if(userName.equals("vwpolo") && password.equals("123456789"))
return true;
return false;
}
}
import org.vwpolo.services.LoginService;
public class DBLoginServiceImpl implements LoginService... {
@Override
public boolean login(String userName, String password) ...{
System.out.println("DB 登陆方式");
if(userName.equals("vwpolo") && password.equals("123456789"))
return true;
return false;
}
}
MANIFEST.MF文件内容:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: DBLoginBundle Plug-in
Bundle-SymbolicName: DBLoginBundle
Bundle-Version: 1.0.0
Bundle-Activator: org.vwpolo.login.service.DBActivator
Import-Package: org.osgi.framework;version="1.3.0",
org.vwpolo.services
Eclipse-LazyStart: true