diff options
Diffstat (limited to 'plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/MonitorManager.java')
-rw-r--r-- | plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/MonitorManager.java | 299 |
1 files changed, 0 insertions, 299 deletions
diff --git a/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/MonitorManager.java b/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/MonitorManager.java deleted file mode 100644 index be96a1ce4..000000000 --- a/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/MonitorManager.java +++ /dev/null @@ -1,299 +0,0 @@ -/********************************************************************** - * Copyright (c) 2003, 2005 IBM Corporation 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: - * IBM Corporation - Initial API and implementation - **********************************************************************/ -package org.eclipse.wst.internet.monitor.core.internal; - -import java.io.ByteArrayInputStream; -import java.util.*; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.core.runtime.Status; -import org.eclipse.osgi.util.NLS; -import org.eclipse.wst.internet.monitor.core.internal.http.ResendHTTPRequest; -import org.eclipse.wst.internet.monitor.core.internal.provisional.*; -/** - * - */ -public class MonitorManager { - private static final int ADD = 0; - private static final int CHANGE = 1; - private static final int REMOVE = 2; - - // monitors - protected List monitors; - protected Map threads = new HashMap(); - - protected List monitorListeners = new ArrayList(); - - private Preferences.IPropertyChangeListener pcl; - protected boolean ignorePreferenceChanges = false; - - protected Map resendMap = new HashMap(); - - protected static MonitorManager instance; - - static { - MonitorPlugin.getInstance().executeStartups(); - } - - /** - * Return a static instance. - * - * @return the instance - */ - public static MonitorManager getInstance() { - if (instance == null) - instance = new MonitorManager(); - - return instance; - } - - private MonitorManager() { - loadMonitors(); - - pcl = new Preferences.IPropertyChangeListener() { - public void propertyChange(Preferences.PropertyChangeEvent event) { - if (ignorePreferenceChanges) - return; - String property = event.getProperty(); - if (property.equals("monitors")) { - loadMonitors(); - } - } - }; - - MonitorPlugin.getInstance().getPluginPreferences().addPropertyChangeListener(pcl); - } - - protected void dispose() { - MonitorPlugin.getInstance().getPluginPreferences().removePropertyChangeListener(pcl); - } - - /** - * Create a new monitor. - * - * @return the new monitor - */ - public IMonitorWorkingCopy createMonitor() { - return new MonitorWorkingCopy(); - } - - /** - * Return the list of monitors. - * - * @return the list of monitors - */ - public List getMonitors() { - return new ArrayList(monitors); - } - - protected synchronized void addMonitor(IMonitor monitor) { - if (!monitors.contains(monitor)) - monitors.add(monitor); - fireMonitorEvent(monitor, ADD); - saveMonitors(); - } - - protected boolean isRunning(IMonitor monitor) { - return (threads.get(monitor) != null); - } - - /** - * Start a monitor. - * - * @param monitor the monitor - * @throws CoreException - */ - public void startMonitor(IMonitor monitor) throws CoreException { - if (!monitors.contains(monitor)) - return; - - if (AcceptThread.isPortInUse(monitor.getLocalPort())) - throw new CoreException(new Status(IStatus.ERROR, MonitorPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorPortInUse, monitor.getLocalPort() + ""), null)); - - AcceptThread thread = new AcceptThread(monitor); - thread.startServer(); - threads.put(monitor, thread); - } - - /** - * Stop a monitor. - * - * @param monitor the monitor - */ - public void stopMonitor(IMonitor monitor) { - if (!monitors.contains(monitor)) - return; - - AcceptThread thread = (AcceptThread) threads.get(monitor); - if (thread != null) { - thread.stopServer(); - threads.remove(monitor); - } - } - - protected synchronized void removeMonitor(IMonitor monitor) { - if (monitor.isRunning()) - stopMonitor(monitor); - monitors.remove(monitor); - fireMonitorEvent(monitor, REMOVE); - saveMonitors(); - } - - protected synchronized void monitorChanged(IMonitor monitor) { - fireMonitorEvent(monitor, CHANGE); - saveMonitors(); - } - - protected boolean exists(IMonitor monitor) { - return (monitors.contains(monitor)); - } - - /** - * Add monitor listener. - * - * @param listener - */ - public synchronized void addMonitorListener(IMonitorListener listener) { - if (!monitorListeners.contains(listener)) - monitorListeners.add(listener); - } - - /** - * Remove monitor listener. - * - * @param listener - */ - public synchronized void removeMonitorListener(IMonitorListener listener) { - if (monitorListeners.contains(listener)) - monitorListeners.remove(listener); - } - - /** - * Fire a monitor event. - * - * @param monitor the monitor - * @param type the type of event - */ - protected void fireMonitorEvent(IMonitor monitor, int type) { - Object[] obj = monitorListeners.toArray(); - - int size = obj.length; - for (int i = 0; i < size; i++) { - IMonitorListener listener = (IMonitorListener) obj[i]; - if (type == ADD) - listener.monitorAdded(monitor); - else if (type == CHANGE) - listener.monitorChanged(monitor); - else if (type == REMOVE) - listener.monitorRemoved(monitor); - } - } - - protected synchronized void loadMonitors() { - Trace.trace(Trace.FINEST, "Loading monitors"); - - monitors = new ArrayList(); - Preferences prefs = MonitorPlugin.getInstance().getPluginPreferences(); - String xmlString = prefs.getString("monitors"); - if (xmlString != null && xmlString.length() > 0) { - try { - ByteArrayInputStream in = new ByteArrayInputStream(xmlString.getBytes("UTF-8")); - IMemento memento = XMLMemento.loadMemento(in); - - IMemento[] children = memento.getChildren("monitor"); - if (children != null) { - int size = children.length; - for (int i = 0; i < size; i++) { - Monitor monitor = new Monitor(); - monitor.load(children[i]); - monitors.add(monitor); - } - } - } catch (Exception e) { - Trace.trace(Trace.WARNING, "Could not load monitors: " + e.getMessage()); - } - } - } - - protected synchronized void saveMonitors() { - try { - ignorePreferenceChanges = true; - XMLMemento memento = XMLMemento.createWriteRoot("monitors"); - - Iterator iterator = monitors.iterator(); - while (iterator.hasNext()) { - Monitor monitor = (Monitor) iterator.next(); - IMemento child = memento.createChild("monitor"); - monitor.save(child); - } - - String xmlString = memento.saveToString(); - Preferences prefs = MonitorPlugin.getInstance().getPluginPreferences(); - prefs.setValue("monitors", xmlString); - MonitorPlugin.getInstance().savePluginPreferences(); - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "Could not save browsers", e); - } - ignorePreferenceChanges = false; - } - - /** - * Creates a new resend request from the given request. - * - * @param request the request that is to be resent; may not be <code>null</code> - * @return a new resend request - */ - public static ResendHTTPRequest createResendRequest(Request request) { - if (request == null) - throw new IllegalArgumentException(); - return new ResendHTTPRequest((Monitor)request.getMonitor(), request); - } - - /** - * Adds a resend request to this request. - * - * @param request the resend request to add - * @param resendReq the resend request - */ - public void addResendRequest(Request request, ResendHTTPRequest resendReq) { - if (request == null || resendReq == null) - return; - - List list = null; - try { - list = (List) resendMap.get(request); - } catch (Exception e) { - // ignore - } - - if (list == null) { - list = new ArrayList(); - resendMap.put(request, list); - } - list.add(resendReq); - } - - /** - * Returns an array of resend requests based on this request. - * - * @param request a request - * @return the array of resend requests based on this request - */ - public ResendHTTPRequest[] getResendRequests(Request request) { - List list = (List) resendMap.get(request); - if (list != null) - return (ResendHTTPRequest[]) list.toArray(new ResendHTTPRequest[list.size()]); - - return new ResendHTTPRequest[0]; - } -}
\ No newline at end of file |