/******************************************************************************* * Copyright (c) 2012-2014 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package com.codenvy.cli.preferences.file; import com.codenvy.cli.preferences.PreferencesAPI; import com.codenvy.cli.preferences.PreferencesProvider; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; /** * @author Florent Benoit */ public class Activator implements BundleActivator { private PreferencesProvider fileProvider; /** * Called when this bundle is started so the Framework can perform the * bundle-specific activities necessary to start this bundle. This method * can be used to register services or to allocate any resources that this * bundle needs. * <p/> * <p/> * This method must complete and return to its caller in a timely manner. * * @param context * The execution context of the bundle being started. * @throws Exception * If this method throws an exception, this bundle is * marked as stopped and the Framework will remove this bundle's * listeners, unregister all services registered by this bundle, and * release all services used by this bundle. */ @Override public void start(BundleContext context) throws Exception { this.fileProvider = new FilePreferencesProvider(); PreferencesAPI.addPreferencesProvider(fileProvider); } /** * Called when this bundle is stopped so the Framework can perform the * bundle-specific activities necessary to stop the bundle. In general, this * method should undo the work that the {@code BundleActivator.start} method * started. There should be no active threads that were started by this * bundle when this bundle returns. A stopped bundle must not call any * Framework objects. * <p/> * <p/> * This method must complete and return to its caller in a timely manner. * * @param context * The execution context of the bundle being stopped. * @throws Exception * If this method throws an exception, the bundle is still * marked as stopped, and the Framework will remove the bundle's * listeners, unregister all services registered by the bundle, and * release all services used by the bundle. */ @Override public void stop(BundleContext context) throws Exception { if (fileProvider != null) { PreferencesAPI.removePreferencesProvider(fileProvider); } } }