diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java new file mode 100644 index 0000000000..5bcf7a3b8b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.internal.setup; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Plugin; +import org.eclipse.core.runtime.Status; +import org.eclipse.ui.IStartup; + +import org.osgi.framework.BundleContext; + +/** + * @author Eike Stepper + */ +public class Activator extends Plugin +{ + public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup"; + + public static final boolean SETUP_IDE = "true".equalsIgnoreCase(System.getProperty( + "org.eclipse.emf.cdo.releng.setup.ide", "false")); + + private static Activator plugin; + + private static BundleContext bundleContext; + + private SetupTaskPerformer setupTaskPerformer; + + public Activator() + { + } + + @Override + public void start(BundleContext context) throws Exception + { + super.start(context); + bundleContext = context; + plugin = this; + + try + { + if (SETUP_IDE) + { + setupTaskPerformer = new SetupTaskPerformer(false); + setupTaskPerformer.perform(); + } + } + catch (Exception ex) + { + log(ex); + } + } + + @Override + public void stop(BundleContext context) throws Exception + { + try + { + if (setupTaskPerformer != null) + { + setupTaskPerformer.dispose(); + setupTaskPerformer = null; + } + } + catch (Exception ex) + { + log(ex); + } + + plugin = null; + super.stop(context); + } + + public static void log(String message) + { + log(message, IStatus.INFO); + } + + protected static void log(String message, int severity) + { + plugin.getLog().log(new Status(severity, PLUGIN_ID, message)); + } + + public static void log(IStatus status) + { + plugin.getLog().log(status); + } + + public static String log(Throwable t) + { + IStatus status = getStatus(t); + log(status); + return status.getMessage(); + } + + public static IStatus getStatus(Throwable t) + { + if (t instanceof CoreException) + { + CoreException coreException = (CoreException)t; + return coreException.getStatus(); + } + + String msg = t.getLocalizedMessage(); + if (msg == null || msg.length() == 0) + { + msg = t.getClass().getName(); + } + + return new Status(IStatus.ERROR, PLUGIN_ID, msg, t); + } + + public static BundleContext getBundleContext() + { + return bundleContext; + } + + public static Activator getDefault() + { + return plugin; + } + + /** + * @author Eike Stepper + */ + public static final class EarlyStartup implements IStartup + { + public void earlyStartup() + { + } + } +} |