Estoy intentando escribir una aplicación de escritorio basada en OSGi. Tengo un Swing JFrame y quiero agregar posibilidades para agregar módulos (otros paquetes). Caminé a través de EclipseZone OSGi at JSig tutorial, pero todas las aplicaciones se inician desde OSGi Framework (en este caso, Knopflerfish OSGi Desktop).Uso de OSGi en una aplicación de escritorio independiente
Entonces, ¿mi pregunta es si existe la opción de iniciar la aplicación sin un marco OSGi visible? Sé que, desde el código, es posible cambiar las propiedades de un paquete, pero ¿cómo cambiar las propiedades de un marco de esa manera? (Por ejemplo, la ubicación de almacenamiento paquete por defecto, la acción por defecto cuando paquete está en la ubicación, etc.?)
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) {
// ????????????????????????????????????????????
// ????????????????????????????????????????????
}
}
He escrito una clase por encima (He publicado sólo un esbozo), pero no tengo ni idea, lo que debe escribir en una función main(). Este paquete funciona bien en Knopflerfish OSGi Desktop, pero quiero que funcione sin él.
Gracias! La publicación del blog en sí misma lo resolvió. – Benjamin
vínculo a la publicación del blog roto. –