/** {@inheritDoc} */ @Override public void init(final BundleContext aContext, final DependencyManager aManager) throws Exception { // Do not start if we're running headless... if (GraphicsEnvironment.isHeadless()) { throw new RuntimeException("Cannot start client: running headless."); } final ClientController clientController = new ClientController(aContext); aManager.add( createBundleAdapterService(Bundle.ACTIVE, CP_BUNDLE_FILTER, true /* propagate */) // .setImplementation(ComponentProviderBundleAdapter.class)); aManager.add( createBundleAdapterService(Bundle.ACTIVE, TOOL_BUNDLE_FILTER, true /* propagate */) // .setImplementation(ToolBundleAdapter.class)); aManager.add( createBundleAdapterService(Bundle.ACTIVE, DEVICE_BUNDLE_FILTER, true /* propagate */) // .setImplementation(DeviceBundleAdapter.class)); aManager.add( createBundleAdapterService(Bundle.ACTIVE, EXPORTER_BUNDLE_FILTER, true /* propagate */) // .setImplementation(ExporterBundleAdapter.class)); Properties props = new Properties(); props.put(Constants.SERVICE_PID, UIManagerConfigurator.PID); String[] serviceNames = new String[] {UIManagerConfigurator.class.getName(), ManagedService.class.getName()}; // UI Manager Configuration... aManager.add( createComponent() // .setInterface(serviceNames, props) // .setImplementation(UIManagerConfigurator.class) // ); props.put(Constants.SERVICE_PID, UIColorSchemeManager.PID); serviceNames = new String[] {UIColorSchemeManager.class.getName(), ManagedServiceFactory.class.getName()}; // UI Manager Configuration... aManager.add( createComponent() // .setInterface(serviceNames, props) // .setImplementation(UIColorSchemeManager.class)); // User session manager... aManager.add( createComponent() // .setImplementation(new UserSessionManager()) // .add( createServiceDependency() // .setService(ProjectManager.class) // .setRequired(true)) // .add( createServiceDependency() // .setService(UserSettingsManager.class) // .setRequired(true)) // .add( createServiceDependency() // .setService(PreferencesService.class) // .setRequired(true)) // .add( createServiceDependency() // .setService(LogService.class) // .setRequired(false) // )); // All the interfaces we're registering the client controller under... serviceNames = new String[] { AcquisitionDataListener.class.getName(), AcquisitionProgressListener.class.getName(), AcquisitionStatusListener.class.getName(), AnnotationListener.class.getName(), PlatformCallback.class.getName() }; // Client controller... aManager.add( createComponent() // .setInterface(serviceNames, null) // .setImplementation(clientController) // .add( createServiceDependency() // .setService(HostProperties.class) // .setRequired(true)) // .add( createServiceDependency() // .setService(ProjectManager.class) // .setRequired(true) // .setCallbacks("setProjectManager", "removeProjectManager")) // .add( createServiceDependency() // .setService(DataAcquisitionService.class) // .setRequired(true)) // .add( createServiceDependency() // .setService(UIColorSchemeManager.class) // .setRequired(true)) // .add( createServiceDependency() // .setService(ComponentProvider.class, "(OLS-ComponentProvider=Menu)") // .setCallbacks("addMenu", "removeMenu") // .setRequired(false)) // .add( createServiceDependency() // .setService(Device.class) // .setCallbacks("addDevice", "removeDevice") // .setRequired(false)) // .add( createServiceDependency() // .setService(Tool.class) // .setCallbacks("addTool", "removeTool") // .setRequired(false)) // .add( createServiceDependency() // .setService(Exporter.class) // .setCallbacks("addExporter", "removeExporter") // .setRequired(false)) // .add( createConfigurationDependency() // .setPid(UIManagerConfigurator.PID)) // ); }