/********************************************************************* * Copyright (c) 2010, 2013 Sony Ericsson/ST Ericsson and others. * 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: * Sony Ericsson/ST Ericsson - initial API and implementation *********************************************************************/ package org.eclipse.mylyn.internal.gerrit.ui; import java.util.Set; import org.eclipse.mylyn.commons.net.AbstractWebLocation; import org.eclipse.mylyn.internal.gerrit.core.GerritConnector; import org.eclipse.mylyn.internal.gerrit.core.GerritCorePlugin; import org.eclipse.mylyn.internal.gerrit.core.GerritOperationFactory; import org.eclipse.mylyn.internal.gerrit.core.client.GerritClient; import org.eclipse.mylyn.internal.reviews.ui.RemoteUiFactoryProviderConfigurer; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.ui.TaskRepositoryLocationUiFactory; import org.eclipse.mylyn.tasks.ui.TasksUi; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle. * * @author Thomas Westling */ public class GerritUiPlugin extends AbstractUIPlugin { public static final String PLUGIN_ID = "org.eclipse.mylyn.gerrit.ui"; //$NON-NLS-1$ private static GerritUiPlugin plugin; private GerritOperationFactory operationFactory; public GerritUiPlugin() { } @Override public void start(BundleContext context) throws Exception { super.start(context); plugin = this; GerritCorePlugin.getDefault() .getConnector() .setTaskRepositoryLocationFactory(new TaskRepositoryLocationUiFactory() { @Override public AbstractWebLocation createWebLocation(TaskRepository taskRepository) { // ignore return new GerritRepositoryLocationUi(taskRepository); } }); GerritCorePlugin.getDefault() .getConnector() .setFactoryProviderConfigurer(new RemoteUiFactoryProviderConfigurer()); } @Override public void stop(BundleContext context) throws Exception { plugin = null; Set<TaskRepository> repositories = TasksUiPlugin.getRepositoryManager().getRepositories( GerritConnector.CONNECTOR_KIND); for (TaskRepository repository : repositories) { GerritClient client = GerritCorePlugin.getDefault().getConnector().getClient(repository); client.getFactoryProvider().close(); } super.stop(context); } /** * Returns the shared instance. * * @return the shared instance */ public static GerritUiPlugin getDefault() { return plugin; } public GerritOperationFactory getOperationFactory() { if (operationFactory == null) { operationFactory = new GerritOperationFactory(TasksUi.getRepositoryManager()); } return operationFactory; } }