package org.zend.php.zendserver.deployment.core; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.php.internal.server.core.manager.IServersManagerListener; import org.eclipse.php.internal.server.core.manager.ServersManager; import org.osgi.framework.BundleContext; import org.zend.php.zendserver.deployment.core.sdk.SdkManager; import org.zend.php.zendserver.deployment.core.tunnel.SSHTunnelManager; import org.zend.webapi.core.IWebApiLogger; import org.zend.webapi.core.WebApiClient; @SuppressWarnings("restriction") public class DeploymentCore extends Plugin { public static final String PLUGIN_ID = "org.zend.php.zendserver.deployment.core"; //$NON-NLS-1$ private static BundleContext context; private static DeploymentCore plugin; private SdkManager sdkManager; private IServersManagerListener serversListener; public DeploymentCore() { super(); plugin = this; } public static BundleContext getContext() { return context; } /* * (non-Javadoc) * * @see * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext * ) */ public void start(BundleContext context) throws Exception { super.start(context); DeploymentCore.context = context; sdkManager = new SdkManager(); WebApiClient.setLogger(new IWebApiLogger() { @Override public void logWarning(String message) { getLog().log( new Status(IStatus.WARNING, "org.zend.webapi", message));//$NON-NLS-1$ } @Override public void logInfo(String message) { getLog().log( new Status(IStatus.INFO, "org.zend.webapi", message));//$NON-NLS-1$ } @Override public void logError(String message, Throwable e) { getLog().log( new Status(IStatus.ERROR, "org.zend.webapi", message, e));//$NON-NLS-1$ } @Override public void logError(Throwable e) { getLog().log(new Status(IStatus.ERROR, "org.zend.webapi", e //$NON-NLS-1$ .getMessage(), e)); } @Override public void logError(String message) { getLog().log( new Status(IStatus.ERROR, "org.zend.webapi", message));//$NON-NLS-1$ } }); serversListener = new ServersManagerListener(); ServersManager.addManagerListener(serversListener); } /* * (non-Javadoc) * * @see * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) */ public void stop(BundleContext bundleContext) throws Exception { super.stop(bundleContext); DeploymentCore.context = null; SSHTunnelManager.getManager().disconnectAll(); ServersManager.removeManagerListener(serversListener); } /** * Returns the shared instance. */ public static DeploymentCore getDefault() { return plugin; } public static void log(IStatus status) { getDefault().getLog().log(status); } public static void log(Throwable e) { logError("ADP internal error", e); //$NON-NLS-1$ } public static void logError(String message) { logError(message, null); } public static void logError(String message, Throwable e) { log(new Status(IStatus.ERROR, PLUGIN_ID, message, e)); } public static IEclipsePreferences getPreferenceScope() { // not using DefaultScope.INSTANCE for backwards compatibility return (new DefaultScope()).getNode(DeploymentCore.PLUGIN_ID); } public SdkManager getSdk() { return sdkManager; } }