diff options
Diffstat (limited to 'plugins/org.eclipse.net4j')
28 files changed, 317 insertions, 57 deletions
diff --git a/plugins/org.eclipse.net4j/.options b/plugins/org.eclipse.net4j/.options index 918a378e18..2aa722539a 100644 --- a/plugins/org.eclipse.net4j/.options +++ b/plugins/org.eclipse.net4j/.options @@ -1,10 +1,18 @@ -org.eclipse.net4j/debug = false +org.eclipse.net4j/debug = true + org.eclipse.net4j/debug.lifecycle = true org.eclipse.net4j/debug.lifecycle.dump = true +org.eclipse.net4j/debug.concurrency = true +org.eclipse.net4j/debug.registry = true +org.eclipse.net4j/debug.om = true + org.eclipse.net4j/debug.buffer = true +org.eclipse.net4j/debug.buffer.stream = true org.eclipse.net4j/debug.channel = true org.eclipse.net4j/debug.selector = true org.eclipse.net4j/debug.acceptor = true org.eclipse.net4j/debug.connector = true +org.eclipse.net4j/debug.signal = true + org.eclipse.net4j/perf = false diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMBundle.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMBundle.java index 9d175efd30..7699045b9d 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMBundle.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMBundle.java @@ -93,6 +93,11 @@ public abstract class AbstractOMBundle implements OMBundle public boolean isDebugging() { + if (!platform.isDebugging()) + { + return false; + } + if (!debuggingInitialized) { debugging = getDebugOption("debug", false); //$NON-NLS-1$ diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMPlatform.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMPlatform.java index 06d73ea1c7..c58f8397d0 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMPlatform.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/AbstractOMPlatform.java @@ -10,6 +10,7 @@ **************************************************************************/ package org.eclipse.internal.net4j.bundle; +import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.net4j.util.om.OMBundle; import org.eclipse.net4j.util.om.OMLogHandler; import org.eclipse.net4j.util.om.OMLogger; @@ -30,14 +31,19 @@ public abstract class AbstractOMPlatform implements OMPlatform { static Object systemContext; + private static ContextTracer __TRACER__; + private Map<String, AbstractOMBundle> bundles = new ConcurrentHashMap(); private Queue<OMLogHandler> logHandlers = new ConcurrentLinkedQueue(); private Queue<OMTraceHandler> traceHandlers = new ConcurrentLinkedQueue(); + private boolean debugging; + protected AbstractOMPlatform() { + debugging = Boolean.parseBoolean(System.getProperty("debug", "false")); } public OMBundle bundle(String bundleID, Class accessor) @@ -77,6 +83,16 @@ public abstract class AbstractOMPlatform implements OMPlatform traceHandlers.remove(traceHandler); } + public boolean isDebugging() + { + return debugging; + } + + public void setDebugging(boolean debugging) + { + this.debugging = debugging; + } + protected void log(OMLogger logger, Level level, String msg, Throwable t) { for (OMLogHandler logHandler : logHandlers) @@ -87,7 +103,10 @@ public abstract class AbstractOMPlatform implements OMPlatform } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER().isEnabled()) + { + TRACER().trace(ex); + } } } } @@ -102,7 +121,10 @@ public abstract class AbstractOMPlatform implements OMPlatform } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER().isEnabled()) + { + TRACER().trace(ex); + } } } } @@ -124,9 +146,22 @@ public abstract class AbstractOMPlatform implements OMPlatform } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER().isEnabled()) + { + TRACER().trace(ex); + } } return new LegacyPlatform(); } + + private static ContextTracer TRACER() + { + if (__TRACER__ == null) + { + __TRACER__ = new ContextTracer(Net4j.DEBUG_OM, AbstractOMPlatform.class); + } + + return __TRACER__; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/LegacyBundle.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/LegacyBundle.java index 4cc32b2332..548249ca58 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/LegacyBundle.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/LegacyBundle.java @@ -40,7 +40,7 @@ public class LegacyBundle extends AbstractOMBundle } catch (Exception ex) { - ex.printStackTrace(); + IOUtil.print(ex); } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/Net4j.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/Net4j.java index 1131a9cd5b..824d4805f2 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/Net4j.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/Net4j.java @@ -30,8 +30,16 @@ public final class Net4j public static final OMTracer DEBUG_LIFECYCLE_DUMP = DEBUG_LIFECYCLE.tracer("dump"); //$NON-NLS-1$ + public static final OMTracer DEBUG_CONCURRENCY = DEBUG.tracer("concurrency"); //$NON-NLS-1$ + + public static final OMTracer DEBUG_REGISTRY = DEBUG.tracer("registry"); //$NON-NLS-1$ + + public static final OMTracer DEBUG_OM = DEBUG.tracer("om"); //$NON-NLS-1$ + public static final OMTracer DEBUG_BUFFER = DEBUG.tracer("buffer"); //$NON-NLS-1$ + public static final OMTracer DEBUG_BUFFER_STREAM = DEBUG_BUFFER.tracer("stream"); //$NON-NLS-1$ + public static final OMTracer DEBUG_CHANNEL = DEBUG.tracer("channel"); //$NON-NLS-1$ public static final OMTracer DEBUG_SELECTOR = DEBUG.tracer("selector"); //$NON-NLS-1$ @@ -40,6 +48,8 @@ public final class Net4j public static final OMTracer DEBUG_CONNECTOR = DEBUG.tracer("connector"); //$NON-NLS-1$ + public static final OMTracer DEBUG_SIGNAL = DEBUG.tracer("signal"); //$NON-NLS-1$ + public static final OMTracer PERF = BUNDLE.tracer("perf"); //$NON-NLS-1$ public static final OMLogger LOG = BUNDLE.logger(); diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiBundle.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiBundle.java index 971a972955..ce336222a8 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiBundle.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiBundle.java @@ -10,6 +10,8 @@ **************************************************************************/ package org.eclipse.internal.net4j.bundle; +import org.eclipse.net4j.util.IOUtil; + import org.eclipse.core.runtime.FileLocator; import org.osgi.framework.BundleContext; @@ -42,7 +44,7 @@ public class OSGiBundle extends AbstractOMBundle } catch (IOException ex) { - ex.printStackTrace(); + IOUtil.print(ex); return null; } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiPlatform.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiPlatform.java index a877305414..8cf2b11341 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiPlatform.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/bundle/OSGiPlatform.java @@ -12,6 +12,7 @@ package org.eclipse.internal.net4j.bundle; import org.eclipse.net4j.util.om.OMBundle; +import org.eclipse.core.runtime.Platform; import org.eclipse.osgi.service.debug.DebugOptions; import org.osgi.framework.BundleContext; @@ -27,6 +28,15 @@ public class OSGiPlatform extends AbstractOMPlatform public OSGiPlatform(Object systemContext) { this.systemContext = (BundleContext)systemContext; + + try + { + setDebugging(Platform.inDebugMode()); + } + catch (RuntimeException ignore) + { + ; + } } @Override diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java index 5c88ad407d..dec095aec0 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java @@ -549,14 +549,14 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con throw new IllegalStateException("bufferProvider == null"); //$NON-NLS-1$ } - if (protocolFactoryRegistry == null) + if (protocolFactoryRegistry == null && TRACER.isEnabled()) { - Net4j.LOG.info("No protocol factory registry for " + this); //$NON-NLS-1$ + TRACER.trace(toString() + ": No protocol factory registry!"); //$NON-NLS-1$ } - if (receiveExecutor == null) + if (receiveExecutor == null && TRACER.isEnabled()) { - Net4j.LOG.info("No receive executor for " + this); //$NON-NLS-1$ + TRACER.trace(toString() + ": No receive executor!"); //$NON-NLS-1$ } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java index d7c11c3901..c93c9b5f85 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java @@ -299,14 +299,14 @@ public class TCPAcceptorImpl extends AbstractLifecycle implements TCPAcceptor, B throw new IllegalStateException("bufferProvider == null"); //$NON-NLS-1$ } - if (protocolFactoryRegistry == null) + if (protocolFactoryRegistry == null && TRACER.isEnabled()) { - Net4j.LOG.info("No protocol factory registry in " + this); //$NON-NLS-1$ + TRACER.trace(toString() + ": No protocol factory registry!"); //$NON-NLS-1$ } - if (receiveExecutor == null) + if (receiveExecutor == null && TRACER.isEnabled()) { - Net4j.LOG.info("No receive executor in " + this); //$NON-NLS-1$ + TRACER.trace(toString() + ": No receive executor!"); //$NON-NLS-1$ } if (selector == null) diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Indication.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Indication.java index 0675320d52..eea8b8377e 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Indication.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Indication.java @@ -12,8 +12,11 @@ package org.eclipse.net4j.signal; import org.eclipse.net4j.transport.util.BufferInputStream; import org.eclipse.net4j.transport.util.BufferOutputStream; +import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.net4j.util.stream.ExtendedDataInputStream; +import org.eclipse.internal.net4j.bundle.Net4j; + import java.io.IOException; /** @@ -21,6 +24,9 @@ import java.io.IOException; */ public abstract class Indication extends SignalReactor { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_SIGNAL, + Indication.class); + protected Indication() { } @@ -28,7 +34,11 @@ public abstract class Indication extends SignalReactor @Override protected final void execute(BufferInputStream in, BufferOutputStream out) throws Exception { - System.out.println("================ Indicating " + this); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace("================ Indicating " + this); //$NON-NLS-1$ + } + indicating(new ExtendedDataInputStream(in)); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/IndicationWithResponse.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/IndicationWithResponse.java index fc2db1170e..ce38b9e589 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/IndicationWithResponse.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/IndicationWithResponse.java @@ -12,9 +12,12 @@ package org.eclipse.net4j.signal; import org.eclipse.net4j.transport.util.BufferInputStream; import org.eclipse.net4j.transport.util.BufferOutputStream; +import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.net4j.util.stream.ExtendedDataInputStream; import org.eclipse.net4j.util.stream.ExtendedDataOutputStream; +import org.eclipse.internal.net4j.bundle.Net4j; + import java.io.IOException; /** @@ -22,6 +25,9 @@ import java.io.IOException; */ public abstract class IndicationWithResponse extends SignalReactor { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_SIGNAL, + IndicationWithResponse.class); + protected IndicationWithResponse() { } @@ -29,10 +35,17 @@ public abstract class IndicationWithResponse extends SignalReactor @Override protected final void execute(BufferInputStream in, BufferOutputStream out) throws Exception { - System.out.println("================ Indicating " + this); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace("================ Indicating " + this); //$NON-NLS-1$ + } + indicating(new ExtendedDataInputStream(in)); + if (TRACER.isEnabled()) + { + TRACER.trace("================ Responding " + this); //$NON-NLS-1$ + } - System.out.println("================ Responding " + this); //$NON-NLS-1$ responding(new ExtendedDataOutputStream(out)); out.flush(); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Request.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Request.java index 66335f996c..e6ef9aec87 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Request.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Request.java @@ -13,8 +13,11 @@ package org.eclipse.net4j.signal; import org.eclipse.net4j.transport.Channel; import org.eclipse.net4j.transport.util.BufferInputStream; import org.eclipse.net4j.transport.util.BufferOutputStream; +import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.net4j.util.stream.ExtendedDataOutputStream; +import org.eclipse.internal.net4j.bundle.Net4j; + import java.io.IOException; /** @@ -22,6 +25,8 @@ import java.io.IOException; */ public abstract class Request<RESULT> extends SignalActor<RESULT> { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_SIGNAL, Request.class); + protected Request(Channel channel) { super(channel); @@ -30,7 +35,11 @@ public abstract class Request<RESULT> extends SignalActor<RESULT> @Override protected final void execute(BufferInputStream in, BufferOutputStream out) throws Exception { - System.out.println("================ Requesting " + this); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace("================ Requesting " + this); //$NON-NLS-1$ + } + requesting(new ExtendedDataOutputStream(out)); out.flush(); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RequestWithConfirmation.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RequestWithConfirmation.java index 40d85447af..67cd9f64e9 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RequestWithConfirmation.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RequestWithConfirmation.java @@ -13,9 +13,12 @@ package org.eclipse.net4j.signal; import org.eclipse.net4j.transport.Channel; import org.eclipse.net4j.transport.util.BufferInputStream; import org.eclipse.net4j.transport.util.BufferOutputStream; +import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.net4j.util.stream.ExtendedDataInputStream; import org.eclipse.net4j.util.stream.ExtendedDataOutputStream; +import org.eclipse.internal.net4j.bundle.Net4j; + import java.io.IOException; /** @@ -23,6 +26,9 @@ import java.io.IOException; */ public abstract class RequestWithConfirmation<RESULT> extends SignalActor<RESULT> { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_SIGNAL, + RequestWithConfirmation.class); + protected RequestWithConfirmation(Channel channel) { super(channel); @@ -31,11 +37,18 @@ public abstract class RequestWithConfirmation<RESULT> extends SignalActor<RESULT @Override protected final void execute(BufferInputStream in, BufferOutputStream out) throws Exception { - System.out.println("================ Requesting " + this); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace("================ Requesting " + this); //$NON-NLS-1$ + } + requesting(new ExtendedDataOutputStream(out)); out.flush(); + if (TRACER.isEnabled()) + { + TRACER.trace("================ Confirming " + this); //$NON-NLS-1$ + } - System.out.println("================ Confirming " + this); //$NON-NLS-1$ setResult(confirming(new ExtendedDataInputStream(in))); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java index 9a8d10cd8d..0704374e34 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java @@ -12,12 +12,17 @@ package org.eclipse.net4j.signal; import org.eclipse.net4j.transport.util.BufferInputStream; import org.eclipse.net4j.transport.util.BufferOutputStream; +import org.eclipse.net4j.util.om.ContextTracer; + +import org.eclipse.internal.net4j.bundle.Net4j; /** * @author Eike Stepper */ public abstract class Signal implements Runnable { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_SIGNAL, Signal.class); + private SignalProtocol protocol; private int correlationID; @@ -58,7 +63,10 @@ public abstract class Signal implements Runnable } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } finally { diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java index 2397768519..2afc01f83f 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java @@ -15,7 +15,9 @@ import org.eclipse.net4j.transport.BufferProvider; import org.eclipse.net4j.transport.Channel; import org.eclipse.net4j.transport.util.BufferInputStream; import org.eclipse.net4j.transport.util.ChannelOutputStream; +import org.eclipse.net4j.util.om.ContextTracer; +import org.eclipse.internal.net4j.bundle.Net4j; import org.eclipse.internal.net4j.transport.AbstractProtocol; import org.eclipse.internal.net4j.transport.BufferUtil; import org.eclipse.internal.net4j.transport.ChannelImpl; @@ -36,6 +38,9 @@ public abstract class SignalProtocol extends AbstractProtocol private static final int MAX_CORRELATION_ID = Integer.MAX_VALUE; + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_SIGNAL, + SignalProtocol.class); + private ExecutorService executorService; private Map<Integer, Signal> signals = new ConcurrentHashMap(); @@ -63,7 +68,10 @@ public abstract class SignalProtocol extends AbstractProtocol { ByteBuffer byteBuffer = buffer.getByteBuffer(); int correlationID = byteBuffer.getInt(); - System.out.println(toString() + ": Received buffer for correlation " + correlationID); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace(toString() + ": Received buffer for correlation " + correlationID); //$NON-NLS-1$ + } Signal signal; if (correlationID > 0) @@ -73,7 +81,10 @@ public abstract class SignalProtocol extends AbstractProtocol if (signal == null) { short signalID = byteBuffer.getShort(); - System.out.println(toString() + ": Got signal id " + signalID); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace(toString() + ": Got signal id " + signalID); //$NON-NLS-1$ + } signal = createSignalReactor(signalID); signal.setProtocol(this); @@ -90,7 +101,11 @@ public abstract class SignalProtocol extends AbstractProtocol signal = signals.get(-correlationID); if (signal == null) { - System.out.println(toString() + ": Discarding buffer"); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace(toString() + ": Discarding buffer"); //$NON-NLS-1$ + } + buffer.release(); } } @@ -138,7 +153,11 @@ public abstract class SignalProtocol extends AbstractProtocol int correlationID = nextCorrelationID; if (nextCorrelationID == MAX_CORRELATION_ID) { - System.out.println(toString() + ": Correlation wrap around"); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace(toString() + ": Correlation wrap around"); //$NON-NLS-1$ + } + nextCorrelationID = MIN_CORRELATION_ID; } else @@ -185,12 +204,20 @@ public abstract class SignalProtocol extends AbstractProtocol { Buffer buffer = delegate.provideBuffer(); ByteBuffer byteBuffer = buffer.startPutting(getChannel().getChannelID()); + if (SignalProtocol.TRACER.isEnabled()) + { + SignalProtocol.TRACER.trace("Providing buffer for correlation " + correlationID); //$NON-NLS-1$ + } - System.out.println("Providing buffer for correlation " + correlationID); //$NON-NLS-1$ byteBuffer.putInt(correlationID); if (firstBuffer) { - System.out.println(SignalProtocol.this.toString() + ": Put signal id " + signalID); //$NON-NLS-1$ + if (SignalProtocol.TRACER.isEnabled()) + { + SignalProtocol.TRACER.trace(SignalProtocol.this.toString() + + ": Put signal id " + signalID); //$NON-NLS-1$ + } + byteBuffer.putShort(signalID); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferInputStream.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferInputStream.java index d1d5b440f8..0435510999 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferInputStream.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferInputStream.java @@ -13,6 +13,9 @@ package org.eclipse.net4j.transport.util; import org.eclipse.net4j.transport.Buffer; import org.eclipse.net4j.transport.BufferHandler; import org.eclipse.net4j.util.HexUtil; +import org.eclipse.net4j.util.om.ContextTracer; + +import org.eclipse.internal.net4j.bundle.Net4j; import java.io.IOException; import java.io.InputStream; @@ -31,7 +34,8 @@ public class BufferInputStream extends InputStream implements BufferHandler public static final long DEFAULT_MILLIS_INTERRUPT_CHECK = 100; - public static boolean TRACE = false; + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_BUFFER_STREAM, + BufferInputStream.class); private BlockingQueue<Buffer> buffers = new LinkedBlockingQueue<Buffer>(); @@ -65,9 +69,9 @@ public class BufferInputStream extends InputStream implements BufferHandler final byte b = currentBuffer.getByteBuffer().get(); final int result = b < 0 ? ~b : b; - if (TRACE) + if (TRACER.isEnabled()) { - System.out.println("<-- " + HexUtil.toHex(result) //$NON-NLS-1$ + TRACER.trace("<-- " + HexUtil.toHex(result) //$NON-NLS-1$ + (result >= 32 ? " " + Character.toString((char)result) : "")); //$NON-NLS-1$ //$NON-NLS-2$ } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java index 10659317c9..5de5d85789 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java @@ -15,6 +15,9 @@ import org.eclipse.net4j.transport.BufferHandler; import org.eclipse.net4j.transport.BufferProvider; import org.eclipse.net4j.util.HexUtil; import org.eclipse.net4j.util.lifecycle.LifecycleUtil; +import org.eclipse.net4j.util.om.ContextTracer; + +import org.eclipse.internal.net4j.bundle.Net4j; import java.io.IOException; import java.io.OutputStream; @@ -27,7 +30,8 @@ public class BufferOutputStream extends OutputStream { public static final boolean DEFAULT_PROPAGATE_CLOSE = false; - public static boolean TRACE = false; + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_BUFFER_STREAM, + BufferOutputStream.class); private BufferHandler bufferHandler; @@ -64,9 +68,9 @@ public class BufferOutputStream extends OutputStream public void write(int b) throws IOException { ensureBuffer(); - if (TRACE) + if (TRACER.isEnabled()) { - System.out.println("--> " + HexUtil.toHex(b) //$NON-NLS-1$ + TRACER.trace("--> " + HexUtil.toHex(b) //$NON-NLS-1$ + (b >= 32 ? " " + Character.toString((char)b) : "")); //$NON-NLS-1$ //$NON-NLS-2$ } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/IOUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/IOUtil.java index 064b7861ed..b44428c4f5 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/IOUtil.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/IOUtil.java @@ -12,6 +12,7 @@ package org.eclipse.net4j.util; import java.io.InputStream; import java.io.OutputStream; +import java.io.PrintStream; import java.io.Reader; import java.io.Writer; @@ -20,10 +21,41 @@ import java.io.Writer; */ public final class IOUtil { + private static final InputStream IN = System.in; + + private static final PrintStream OUT = System.out; + + private static final PrintStream ERR = System.err; + private IOUtil() { } + public static InputStream IN() + { + return IN; + } + + public static PrintStream OUT() + { + return OUT; + } + + public static PrintStream ERR() + { + return ERR; + } + + public static void print(Throwable t, PrintStream stream) + { + t.printStackTrace(stream); + } + + public static void print(Throwable t) + { + print(t, ERR); + } + public static Exception closeSilent(InputStream stream) { try diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ReflectUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ReflectUtil.java index 56834bf5f3..b4fa20a391 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ReflectUtil.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ReflectUtil.java @@ -52,7 +52,7 @@ public final class ReflectUtil } catch (Exception ex) { - ex.printStackTrace(); + IOUtil.print(ex); } return 0; @@ -119,7 +119,7 @@ public final class ReflectUtil public static void dump(Object object, String prefix) { - dump(object, prefix, System.out); + dump(object, prefix, IOUtil.OUT()); } public static void dump(Object object, String prefix, PrintStream out) diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/concurrent/AsynchronousWorkSerializer.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/concurrent/AsynchronousWorkSerializer.java index 62ca64657d..847de1dba9 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/concurrent/AsynchronousWorkSerializer.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/concurrent/AsynchronousWorkSerializer.java @@ -10,6 +10,10 @@ **************************************************************************/ package org.eclipse.net4j.util.concurrent; +import org.eclipse.net4j.util.om.ContextTracer; + +import org.eclipse.internal.net4j.bundle.Net4j; + import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutorService; @@ -19,6 +23,9 @@ import java.util.concurrent.ExecutorService; */ public class AsynchronousWorkSerializer implements WorkSerializer, Runnable { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_CONCURRENCY, + AsynchronousWorkSerializer.class); + private ExecutorService executorService; private Queue<Runnable> workQueue; @@ -58,7 +65,11 @@ public class AsynchronousWorkSerializer implements WorkSerializer, Runnable occupation.setOccupied(true); } - System.out.println(toString() + ": Notifying executor service"); //$NON-NLS-1$ + if (TRACER.isEnabled()) + { + TRACER.trace(toString() + ": Notifying executor service"); //$NON-NLS-1$ + } + executorService.execute(this); } } @@ -81,7 +92,10 @@ public class AsynchronousWorkSerializer implements WorkSerializer, Runnable } catch (RuntimeException ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/AbstractLifecycle.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/AbstractLifecycle.java index 4587a405f3..00bd60c1e5 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/AbstractLifecycle.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/AbstractLifecycle.java @@ -82,7 +82,11 @@ public abstract class AbstractLifecycle implements Lifecycle, LifecycleNotifier } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } + return ex; } finally @@ -122,7 +126,10 @@ public abstract class AbstractLifecycle implements Lifecycle, LifecycleNotifier } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } } @@ -137,7 +144,10 @@ public abstract class AbstractLifecycle implements Lifecycle, LifecycleNotifier } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } } @@ -152,7 +162,10 @@ public abstract class AbstractLifecycle implements Lifecycle, LifecycleNotifier } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java index 0eeec29f9a..84735069df 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java @@ -10,6 +10,10 @@ **************************************************************************/ package org.eclipse.net4j.util.lifecycle; +import org.eclipse.net4j.util.om.ContextTracer; + +import org.eclipse.internal.net4j.bundle.Net4j; + import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -18,6 +22,9 @@ import java.lang.reflect.Method; */ public final class LifecycleUtil { + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_LIFECYCLE, + LifecycleUtil.class); + private LifecycleUtil() { } @@ -152,12 +159,18 @@ public final class LifecycleUtil } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } return null; diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/EclipseLoggingBridge.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/EclipseLoggingBridge.java index fca5e03b93..d662a28a24 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/EclipseLoggingBridge.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/EclipseLoggingBridge.java @@ -16,6 +16,7 @@ import org.eclipse.core.runtime.ILog; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; +import org.eclipse.internal.net4j.bundle.Net4j; import org.eclipse.internal.net4j.bundle.OSGiBundle; /** @@ -25,7 +26,10 @@ public class EclipseLoggingBridge implements OMLogHandler { public static final EclipseLoggingBridge INSTANCE = new EclipseLoggingBridge(); - private EclipseLoggingBridge() + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_OM, + EclipseLoggingBridge.class); + + protected EclipseLoggingBridge() { } @@ -39,11 +43,14 @@ public class EclipseLoggingBridge implements OMLogHandler } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } - private static int toEclipse(Level level) + public static int toEclipse(Level level) { switch (level) { diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OMPlatform.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OMPlatform.java index 87dda4184c..ee1a754a0b 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OMPlatform.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OMPlatform.java @@ -21,6 +21,10 @@ public interface OMPlatform public OMBundle bundle(String bundleID, Class accessor); + public boolean isDebugging(); + + public void setDebugging(boolean debugging); + public void addLogHandler(OMLogHandler logHandler); public void removeLogHandler(OMLogHandler logHandler); diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OSGiLoggingBridge.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OSGiLoggingBridge.java index 1bbe255d03..9c51652859 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OSGiLoggingBridge.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/OSGiLoggingBridge.java @@ -12,6 +12,7 @@ package org.eclipse.net4j.util.om; import org.eclipse.net4j.util.om.OMLogger.Level; +import org.eclipse.internal.net4j.bundle.Net4j; import org.eclipse.internal.net4j.bundle.OSGiBundle; import org.osgi.framework.BundleContext; @@ -25,7 +26,10 @@ public class OSGiLoggingBridge implements OMLogHandler { public static final OSGiLoggingBridge INSTANCE = new OSGiLoggingBridge(); - private OSGiLoggingBridge() + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_OM, + OSGiLoggingBridge.class); + + protected OSGiLoggingBridge() { } @@ -38,7 +42,10 @@ public class OSGiLoggingBridge implements OMLogHandler } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } @@ -63,7 +70,7 @@ public class OSGiLoggingBridge implements OMLogHandler } } - private static int toOSGi(Level level) + public static int toOSGi(Level level) { switch (level) { diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamLogHandler.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamLogHandler.java index 15e11e9e64..bb949be686 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamLogHandler.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamLogHandler.java @@ -10,6 +10,7 @@ **************************************************************************/ package org.eclipse.net4j.util.om; +import org.eclipse.net4j.util.IOUtil; import org.eclipse.net4j.util.om.OMLogger.Level; import java.io.PrintStream; @@ -31,9 +32,9 @@ public class PrintStreamLogHandler implements OMLogHandler this.err = err; } - private PrintStreamLogHandler() + protected PrintStreamLogHandler() { - this(System.out, System.err); + this(IOUtil.OUT(), IOUtil.ERR()); } public void logged(OMLogger logger, Level level, String msg, Throwable t) @@ -42,11 +43,11 @@ public class PrintStreamLogHandler implements OMLogHandler stream.println((toString(level) + " ") + msg); //$NON-NLS-1$ if (t != null) { - t.printStackTrace(stream); + IOUtil.print(t, stream); } } - private static String toString(Level level) + public static String toString(Level level) { switch (level) { diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamTraceHandler.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamTraceHandler.java index 362e23486f..acb0bb5a86 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamTraceHandler.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/om/PrintStreamTraceHandler.java @@ -10,6 +10,8 @@ **************************************************************************/ package org.eclipse.net4j.util.om; +import org.eclipse.net4j.util.IOUtil; + import java.io.PrintStream; /** @@ -26,9 +28,9 @@ public class PrintStreamTraceHandler implements OMTraceHandler this.stream = stream; } - private PrintStreamTraceHandler() + protected PrintStreamTraceHandler() { - this(System.out); + this(IOUtil.OUT()); } public void traced(OMTracer tracer, Class context, String msg, Throwable t) @@ -36,7 +38,7 @@ public class PrintStreamTraceHandler implements OMTraceHandler stream.println("[TRACE] " + msg); //$NON-NLS-1$ if (t != null) { - t.printStackTrace(stream); + IOUtil.print(t, stream); } } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractRegistry.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractRegistry.java index 3bba7218ef..809fc0976b 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractRegistry.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractRegistry.java @@ -10,9 +10,12 @@ **************************************************************************/ package org.eclipse.net4j.util.registry; +import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.net4j.util.registry.IRegistry.Listener.EventType; import org.eclipse.net4j.util.registry.IRegistryElement.Descriptor; +import org.eclipse.internal.net4j.bundle.Net4j; + import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -28,6 +31,9 @@ public abstract class AbstractRegistry<ID, E extends IRegistryElement<ID>> imple { public static final boolean DEFAULT_RESOLVING = true; + private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_REGISTRY, + AbstractRegistry.class); + private boolean resolving; /** @@ -121,7 +127,10 @@ public abstract class AbstractRegistry<ID, E extends IRegistryElement<ID>> imple } catch (Exception ex) { - ex.printStackTrace(); + if (TRACER.isEnabled()) + { + TRACER.trace(ex); + } } } } |