我正在嘗試編寫基於OSGi的桌面應用程序。我有一個Swing JFrame,我想添加添加模塊(其他包)的可能性。我走過了EclipseZone OSGi at JSig tutorial,但每個應用程序都是從OSGi Framework開始的(在這種情況下,是Knopflerfish OSGi Desktop)。在桌面獨立應用程序中使用OSGi
所以我的問題是,是否有啓動時不可見的OSGi框架的應用程序的選項?我知道,從代碼中可以改變bundle的屬性,但是如何改變框架的屬性呢? (例如,默認捆綁的存儲位置,默認的行動時,束在位置等等?)
public class MainFrame extends ServiceTracker implements BundleActivator {
public MainFrame(BundleContext context, JToolBar toolBar) {
// select, which services is the bundle tracking
super(context, JMenu.class.getName(), null);
}
@Override
public void start(BundleContext context) throws Exception {
//display a JFrame
}
@Override
public void stop(BundleContext context) throws Exception {
//hide a JFrame
}
@Override
public Object addingService(ServiceReference reference) {
// Process a Service and return a JMenu
return new JMenu();
}
@Override
public void removedService(ServiceReference reference, Object service) {
// remove a JMenu from a JFrame
}
public static void main(String[] args) {
// ????????????????????????????????????????????
// ????????????????????????????????????????????
}
}
我上面寫的(我已經張貼只是一個草圖)一類,但我不知道,什麼在main()函數中寫入。這個包在Knopflerfish OSGi Desktop中工作正常,但我希望它在沒有它的情況下運行。
謝謝!博客帖子本身實際上解決了它。 – Benjamin 2011-12-21 05:17:13