Tôi đang cố gắng viết một ứng dụng máy tính để bàn dựa trên OSGi. Tôi có một Swing JFrame và tôi muốn thêm khả năng để thêm các mô-đun (các gói khác). Tôi đã đi qua EclipseZone OSGi at JSig tutorial, nhưng mọi ứng dụng đều bắt đầu từ Khung OSGi (trong trường hợp này là Knopflerfish OSGi Desktop).Sử dụng OSGi trong ứng dụng độc lập trên máy tính để bàn
Vì vậy, câu hỏi của tôi là, cho dù có một tùy chọn để khởi động ứng dụng mà không có khung OSGi hiển thị? Tôi knwo, rằng từ mã, nó có thể thay đổi thuộc tính của một bó, nhưng làm thế nào để thay đổi các thuộc tính của một khuôn khổ theo cách đó? (Ví dụ mặc định vị trí bó lưu trữ, hành động mặc định khi bó là ở vị trí vv?)
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) {
// ????????????????????????????????????????????
// ????????????????????????????????????????????
}
}
Tôi đã viết một lớp trên (tôi đã đăng chỉ là một phác thảo), nhưng tôi không có ý tưởng, những gì để viết vào một hàm main(). Gói này hoạt động tốt trong Desktop Knopflerfish OSGi, nhưng tôi muốn nó chạy mà không có nó.
Cảm ơn! Bản thân bài đăng trên blog thực sự đã giải quyết nó. – Benjamin
liên kết bài đăng trên blog bị hỏng. –