// Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package net.sourceforge.eclipsejetty; import java.io.File; import java.net.URL; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IScopeContext; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle * * @author Christian Köberl */ public class JettyPlugin extends AbstractUIPlugin { // The plug-in ID public static final String PLUGIN_ID = "net.sourceforge.eclipsejetty.launcher"; public static final String JETTY_PLUGIN_LOGO = PLUGIN_ID + ".jettyPluginLogo"; public static final String JETTY_PLUGIN_ADVANCED_LOGO = PLUGIN_ID + ".jettyPluginAdvancedLogo"; public static final String JETTY_PLUGIN_DEPENDENCY_LOGO = PLUGIN_ID + ".jettyPluginDependencyLogo"; public static final String JETTY_ICON = PLUGIN_ID + ".jettyIcon"; public static final String JETTY_ADVANCED_ICON = PLUGIN_ID + ".jettyAdvancedIcon"; public static final String JETTY_DEPENDENCY_ICON = PLUGIN_ID + ".jettyDependencyIcon"; public static final String ADD_CONTEXT_ICON = PLUGIN_ID + ".addContext"; public static final String REMOVE_CONTEXT_ICON = PLUGIN_ID + ".removeContext"; public static final String MOVE_UP_CONTEXT_ICON = PLUGIN_ID + ".moveUpContext"; public static final String MOVE_DOWN_CONTEXT_ICON = PLUGIN_ID + ".moveDownContext"; public static final String FOLDER_ICON = PLUGIN_ID + ".folder"; public static final String DEPENDENCY_OTHER = PLUGIN_ID + ".dependencyOther"; public static final String DEPENDENCY_JAR = PLUGIN_ID + ".dependencyJar"; public static final String DEPENDENCY_PROJECT = PLUGIN_ID + ".dependencyProject"; public static final String DEPENDENCY_OTHER_DEACTIVATED = PLUGIN_ID + ".dependencyOtherDeactivated"; public static final String DEPENDENCY_JAR_DEACTIVATED = PLUGIN_ID + ".dependencyJarDeactivated"; public static final String DEPENDENCY_PROJECT_DEACTIVATED = PLUGIN_ID + ".dependencyProjectDeactivated"; // The shared instance private static JettyPlugin plugin; private static File defaultKeystoreFile; private static IScopeContext defaultScope; /** * The constructor */ public JettyPlugin() { super(); } /** * {@inheritDoc} * * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ @Override public void start(final BundleContext context) throws Exception { super.start(context); plugin = this; } /** * {@inheritDoc} * * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ @Override public void stop(final BundleContext context) throws Exception { plugin = null; super.stop(context); } /** * Returns the shared instance * * @return the shared instance */ public static JettyPlugin getDefault() { return plugin; } /** * {@inheritDoc} * * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry) */ @Override protected void initializeImageRegistry(final ImageRegistry reg) { initializeImageRegistry(reg, JETTY_PLUGIN_LOGO, "/icons/jetty-plugin-logo.png"); initializeImageRegistry(reg, JETTY_PLUGIN_ADVANCED_LOGO, "/icons/jetty-plugin-advanced-logo.png"); initializeImageRegistry(reg, JETTY_PLUGIN_DEPENDENCY_LOGO, "/icons/jetty-plugin-dependency-logo.png"); initializeImageRegistry(reg, JETTY_ICON, "/icons/jetty.png"); initializeImageRegistry(reg, JETTY_ADVANCED_ICON, "/icons/jetty-advanced.png"); initializeImageRegistry(reg, JETTY_DEPENDENCY_ICON, "/icons/jetty-dependency.png"); initializeImageRegistry(reg, ADD_CONTEXT_ICON, "/icons/add_context.gif"); initializeImageRegistry(reg, REMOVE_CONTEXT_ICON, "/icons/remove_context.gif"); initializeImageRegistry(reg, MOVE_UP_CONTEXT_ICON, "/icons/move_up_context.gif"); initializeImageRegistry(reg, MOVE_DOWN_CONTEXT_ICON, "/icons/move_down_context.gif"); initializeImageRegistry(reg, FOLDER_ICON, "/icons/folder.gif"); initializeImageRegistry(reg, DEPENDENCY_OTHER, "/icons/dependency-other.gif"); initializeImageRegistry(reg, DEPENDENCY_JAR, "/icons/dependency-jar.gif"); initializeImageRegistry(reg, DEPENDENCY_PROJECT, "/icons/dependency-project.gif"); initializeImageRegistry(reg, DEPENDENCY_OTHER_DEACTIVATED, "/icons/dependency-other-deactivated.gif"); initializeImageRegistry(reg, DEPENDENCY_JAR_DEACTIVATED, "/icons/dependency-jar-deactivated.gif"); initializeImageRegistry(reg, DEPENDENCY_PROJECT_DEACTIVATED, "/icons/dependency-project-deactivated.gif"); } protected void initializeImageRegistry(ImageRegistry reg, String key, String url) { final URL imageURL = getBundle().getEntry(url); if (imageURL != null) { reg.put(key, ImageDescriptor.createFromURL(imageURL)); } else { error(String.format("Resource %s not found", url)); } } public static Image getIcon(String icon) { return plugin.getImageRegistry().get(icon); } public static Image getJettyPluginLogo() { return getIcon(JETTY_PLUGIN_LOGO); } public static Image getJettyIcon() { return getIcon(JETTY_ICON); } public static Image getJettyAdvancedIcon() { return getIcon(JETTY_ADVANCED_ICON); } public static Image getJettyDependencyIcon() { return getIcon(JETTY_DEPENDENCY_ICON); } public static Image getAddContextIcon() { return getIcon(ADD_CONTEXT_ICON); } public static Image getRemoveContextIcon() { return getIcon(REMOVE_CONTEXT_ICON); } public static Image getMoveUpContextIcon() { return getIcon(MOVE_UP_CONTEXT_ICON); } public static Image getMoveDownContextIcon() { return getIcon(MOVE_DOWN_CONTEXT_ICON); } public static void log(int severety, String message, Throwable e) { Status status; if (e == null) { status = new Status(severety, PLUGIN_ID, message); } else { status = new Status(severety, PLUGIN_ID, message, e); } getDefault().getLog().log(status); } public static void info(String message) { log(IStatus.INFO, message, null); } public static void info(String message, Throwable e) { log(IStatus.INFO, message, e); } public static void warning(String message) { log(IStatus.WARNING, message, null); } public static void warning(String message, Throwable e) { log(IStatus.WARNING, message, e); } public static void error(String message) { log(IStatus.ERROR, message, null); } public static void error(String message, Throwable e) { log(IStatus.ERROR, message, e); } public static File getDefaultKeystoreFile() { return defaultKeystoreFile; } public static void setDefaultKeystoreFile(File defaultKeystoreFile) { JettyPlugin.defaultKeystoreFile = defaultKeystoreFile; } @SuppressWarnings("deprecation") public static IScopeContext getDefaultScope() { if (defaultScope != null) { return defaultScope; } try { DefaultScope.class.getField("INSTANCE"); defaultScope = DefaultScope.INSTANCE; return defaultScope; } catch (SecurityException e) { error("No DefaultScope.INSTANCE (< Eclipse 3.4)", e); } catch (NoSuchFieldException e) { warning("No DefaultScope.INSTANCE (< Eclipse 3.4)", e); } defaultScope = new DefaultScope(); return defaultScope; } }