新建一個叫 ConfigFileLoginBundle 的Equinox 項目
文件結構如圖所示,我們要在 META-INF/MANIFEST.MF 中的 依賴 選項卡中選擇導入 org.vwpolo.services 這個包
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.ConfigFileLoginServiceImpl;
import org.vwpolo.services.LoginService;
public class ConfigFileActivator 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 ConfigFileLoginServiceImpl();
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 org.vwpolo.services.LoginService;
/**
* @author vwpolo
*
*/
public class ConfigFileLoginServiceImpl implements LoginService{
@Override
public boolean login(String userName, String password) {
System.out.println("ConfigFile 登陸方式");
if(userName.equals("vwpolo") && password.equals("123"))
return true;
return false;
}
}
MANIFEST.MF文件內容:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ConfigFileLoginBundle Plug-in
Bundle-SymbolicName: ConfigFileLoginBundle
Bundle-Version: 1.0.0
Bundle-Activator: org.vwpolo.login.service.ConfigFileActivator
Import-Package: org.osgi.framework;version="1.3.0",
org.vwpolo.services
Eclipse-LazyStart: true
MANIFEST.MF