diff options
author | Szymon Ptaszkiewicz | 2014-11-17 08:57:07 +0000 |
---|---|---|
committer | Szymon Ptaszkiewicz | 2014-11-17 08:57:07 +0000 |
commit | b43f5ea6e8a0543e2c17c1bf53bee62cef022399 (patch) | |
tree | d1a7feb6e420a6d542f904a2edf7d86210ce2f8a /bundles/org.eclipse.team.core/src/org | |
parent | 0859978fb44777f6eb7ced86c2e31455e52d23db (diff) | |
download | eclipse.platform.team-b43f5ea6e8a0543e2c17c1bf53bee62cef022399.tar.gz eclipse.platform.team-b43f5ea6e8a0543e2c17c1bf53bee62cef022399.tar.xz eclipse.platform.team-b43f5ea6e8a0543e2c17c1bf53bee62cef022399.zip |
Bug 451737 - Add org.eclipse.team.core plugin to General > Tracing preference page
Diffstat (limited to 'bundles/org.eclipse.team.core/src/org')
6 files changed, 44 insertions, 32 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java index 140ab941f..c8feb042c 100644 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java +++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2012 IBM Corporation and others. + * Copyright (c) 2000, 2014 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 @@ -302,7 +302,7 @@ public final class Team { pIgnore.put(pattern, Boolean.valueOf(enabled)); } else if (!Boolean.valueOf(enabled).equals( pIgnore.get(pattern))) { - if(TeamPlugin.getPlugin().isDebugging()){ + if(Policy.DEBUG){ TeamPlugin .log(IStatus.WARNING, NLS.bind( diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java index 1fb92c8f0..d758e0f95 100644 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java +++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2012 IBM Corporation and others. + * Copyright (c) 2000, 2014 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 @@ -11,25 +11,28 @@ package org.eclipse.team.internal.core; import org.eclipse.core.runtime.*; +import org.eclipse.osgi.service.debug.DebugOptions; +import org.eclipse.osgi.service.debug.DebugOptionsListener; public class Policy { //debug constants + public static boolean DEBUG = false; public static boolean DEBUG_STREAMS = false; public static boolean DEBUG_REFRESH_JOB = true; public static boolean DEBUG_BACKGROUND_EVENTS = false; public static boolean DEBUG_THREADING = false; - static { - //init debug options - if (TeamPlugin.getPlugin().isDebugging()) { - DEBUG_STREAMS = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/streams"));//$NON-NLS-1$ //$NON-NLS-2$ - DEBUG_REFRESH_JOB = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/refreshjob"));//$NON-NLS-1$ //$NON-NLS-2$ - DEBUG_BACKGROUND_EVENTS = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/backgroundevents"));//$NON-NLS-1$ //$NON-NLS-2$ - DEBUG_THREADING = "true".equalsIgnoreCase(Platform.getDebugOption(TeamPlugin.ID + "/threading"));//$NON-NLS-1$ //$NON-NLS-2$ + static final DebugOptionsListener DEBUG_OPTIONS_LISTENER = new DebugOptionsListener() { + public void optionsChanged(DebugOptions options) { + DEBUG = options.getBooleanOption(TeamPlugin.ID + "/debug", false); //$NON-NLS-1$ + DEBUG_STREAMS = DEBUG && options.getBooleanOption(TeamPlugin.ID + "/streams", false); //$NON-NLS-1$ + DEBUG_REFRESH_JOB = DEBUG && options.getBooleanOption(TeamPlugin.ID + "/refreshjob", false); //$NON-NLS-1$ + DEBUG_BACKGROUND_EVENTS = DEBUG && options.getBooleanOption(TeamPlugin.ID + "/backgroundevents", false); //$NON-NLS-1$ + DEBUG_THREADING = DEBUG && options.getBooleanOption(TeamPlugin.ID + "/threading", false); //$NON-NLS-1$ } - } - + }; + /** * Progress monitor helpers. * diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java index 7d401c55f..03510f89e 100644 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java +++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2011 IBM Corporation and others. + * Copyright (c) 2000, 2014 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 @@ -17,10 +17,13 @@ import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.content.IContentDescription; import org.eclipse.core.runtime.content.IContentTypeManager; +import org.eclipse.osgi.service.debug.DebugOptions; +import org.eclipse.osgi.service.debug.DebugOptionsListener; import org.eclipse.team.core.*; import org.eclipse.team.core.mapping.DelegatingStorageMerger; import org.eclipse.team.internal.core.mapping.IStreamMergerDelegate; import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; /** * <code>TeamPlugin</code> is the plug-in runtime class for the Team @@ -61,7 +64,8 @@ final public class TeamPlugin extends Plugin { // The one and only plug-in instance private static TeamPlugin plugin; - + + private ServiceRegistration debugRegistration; private IStreamMergerDelegate mergerDelegate; /** @@ -77,6 +81,12 @@ final public class TeamPlugin extends Plugin { */ public void start(BundleContext context) throws Exception { super.start(context); + + // register debug options listener + Hashtable properties = new Hashtable(2); + properties.put(DebugOptions.LISTENER_SYMBOLICNAME, ID); + debugRegistration = context.registerService(DebugOptionsListener.class, Policy.DEBUG_OPTIONS_LISTENER, properties); + Team.startup(); } @@ -85,6 +95,10 @@ final public class TeamPlugin extends Plugin { */ public void stop(BundleContext context) throws Exception { try { + // unregister debug options listener + debugRegistration.unregister(); + debugRegistration = null; + Team.shutdown(); ResourceVariantCache.shutdown(); } finally { diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java index b1f8235e4..dcbd8ba85 100644 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java +++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingInputStream.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2007 IBM Corporation and others. + * Copyright (c) 2000, 2014 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 @@ -32,7 +32,6 @@ import org.eclipse.team.internal.core.TeamPlugin; * much of the operation completed; conversely, at what point to resume. */ public class PollingInputStream extends FilterInputStream { - private static final boolean DEBUG = Policy.DEBUG_STREAMS; private int numAttempts; private IProgressMonitor monitor; private boolean cancellable; @@ -79,7 +78,7 @@ public class PollingInputStream extends FilterInputStream { if (checkCancellation()) throw new OperationCanceledException(); if (++attempts == numAttempts) throw new InterruptedIOException(Messages.PollingInputStream_closeTimeout); - if (DEBUG) System.out.println("close retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("close retry=" + attempts); //$NON-NLS-1$ } catch (IOException e) { // ignore it - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=203423#c10 } @@ -104,7 +103,7 @@ public class PollingInputStream extends FilterInputStream { } catch (InterruptedIOException e) { if (++attempts == numAttempts) throw new InterruptedIOException(Messages.PollingInputStream_readTimeout); - if (DEBUG) System.out.println("read retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("read retry=" + attempts); //$NON-NLS-1$ } } } @@ -130,7 +129,7 @@ public class PollingInputStream extends FilterInputStream { if (e.bytesTransferred != 0) return e.bytesTransferred; // keep partial transfer if (++attempts == numAttempts) throw new InterruptedIOException(Messages.PollingInputStream_readTimeout); - if (DEBUG) System.out.println("read retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("read retry=" + attempts); //$NON-NLS-1$ } } } @@ -154,7 +153,7 @@ public class PollingInputStream extends FilterInputStream { if (e.bytesTransferred != 0) return e.bytesTransferred; // keep partial transfer if (++attempts == numAttempts) throw new InterruptedIOException(Messages.PollingInputStream_readTimeout); - if (DEBUG) System.out.println("read retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("read retry=" + attempts); //$NON-NLS-1$ } } } diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java index 60cae7978..d0b683ccc 100644 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java +++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. + * Copyright (c) 2000, 2014 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 @@ -30,7 +30,6 @@ import org.eclipse.team.internal.core.Policy; * much of the operation completed; conversely, at what point to resume. */ public class PollingOutputStream extends FilterOutputStream { - private static final boolean DEBUG = Policy.DEBUG_STREAMS; private int numAttempts; private IProgressMonitor monitor; private boolean cancellable; @@ -66,7 +65,7 @@ public class PollingOutputStream extends FilterOutputStream { } catch (InterruptedIOException e) { if (++attempts == numAttempts) throw new InterruptedIOException(Messages.PollingOutputStream_writeTimeout); - if (DEBUG) System.out.println("write retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("write retry=" + attempts); //$NON-NLS-1$ } } } @@ -100,7 +99,7 @@ public class PollingOutputStream extends FilterOutputStream { e.bytesTransferred = count; throw e; } - if (DEBUG) System.out.println("write retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("write retry=" + attempts); //$NON-NLS-1$ } } } @@ -131,7 +130,7 @@ public class PollingOutputStream extends FilterOutputStream { e.bytesTransferred = count; throw e; } - if (DEBUG) System.out.println("write retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("write retry=" + attempts); //$NON-NLS-1$ } } } @@ -158,7 +157,7 @@ public class PollingOutputStream extends FilterOutputStream { if (checkCancellation()) throw new OperationCanceledException(); if (++attempts == numAttempts) throw new InterruptedIOException(Messages.PollingOutputStream_closeTimeout); - if (DEBUG) System.out.println("close retry=" + attempts); //$NON-NLS-1$ + if (Policy.DEBUG_STREAMS) System.out.println("close retry=" + attempts); //$NON-NLS-1$ } } } diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java index 5bd6d554b..6f27f4f38 100644 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java +++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2007 IBM Corporation and others. + * Copyright (c) 2000, 2014 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 @@ -32,9 +32,6 @@ import org.eclipse.team.internal.core.*; * another thread already locks the same resource.</p> */ public class BatchingLock { - - private final static boolean DEBUG = Policy.DEBUG_THREADING; - // This is a placeholder rule used to indicate that no scheduling rule is needed /* internal use only */ static final ISchedulingRule NULL_SCHEDULING_RULE= new ISchedulingRule() { public boolean contains(ISchedulingRule rule) { @@ -259,7 +256,7 @@ public class BatchingLock { Thread thisThread = Thread.currentThread(); infos.put(thisThread, info); added = true; - if(DEBUG) System.out.println("[" + thisThread.getName() + "] acquired batching lock on " + resourceRule); //$NON-NLS-1$ //$NON-NLS-2$ + if(Policy.DEBUG_THREADING) System.out.println("[" + thisThread.getName() + "] acquired batching lock on " + resourceRule); //$NON-NLS-1$ //$NON-NLS-2$ } } try { @@ -304,7 +301,7 @@ public class BatchingLock { synchronized (infos) { if (!info.isNested()) { Thread thisThread = Thread.currentThread(); - if(DEBUG) System.out.println("[" + thisThread.getName() + "] released batching lock"); //$NON-NLS-1$ //$NON-NLS-2$ + if(Policy.DEBUG_THREADING) System.out.println("[" + thisThread.getName() + "] released batching lock"); //$NON-NLS-1$ //$NON-NLS-2$ infos.remove(thisThread); } } |