Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/next/internal/debug/Debug.java')
-rw-r--r--bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/next/internal/debug/Debug.java370
1 files changed, 370 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/next/internal/debug/Debug.java b/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/next/internal/debug/Debug.java
new file mode 100644
index 000000000..89031bffe
--- /dev/null
+++ b/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/next/internal/debug/Debug.java
@@ -0,0 +1,370 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2010 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.osgi.next.internal.debug;
+
+import java.io.PrintStream;
+import java.lang.reflect.*;
+import org.eclipse.osgi.internal.framework.EquinoxContainer;
+import org.eclipse.osgi.service.debug.DebugOptions;
+
+/**
+ * This class has debug constants which can be used by the Framework implementation
+ * and Adaptor implementations
+ * @since 3.1
+ */
+public class Debug {
+ /**
+ * Base debug option key (org.eclispe.osgi).
+ */
+ public static final String ECLIPSE_OSGI = EquinoxContainer.NAME;
+ /**
+ * General Debug option key.
+ */
+ public static final String OPTION_DEBUG_GENERAL = ECLIPSE_OSGI + "/debug"; //$NON-NLS-1$
+ /**
+ * Bundle time Debug option key.
+ */
+ // TODO remove this or use it somewhere
+ public static final String OPTION_DEBUG_BUNDLE_TIME = ECLIPSE_OSGI + "/debug/bundleTime"; //$NON-NLS-1$
+ /**
+ * Loader Debug option key.
+ */
+ public static final String OPTION_DEBUG_LOADER = ECLIPSE_OSGI + "/debug/loader"; //$NON-NLS-1$
+ /**
+ * Events Debug option key.
+ */
+ public static final String OPTION_DEBUG_EVENTS = ECLIPSE_OSGI + "/debug/events"; //$NON-NLS-1$
+ /**
+ * Services Debug option key.
+ */
+ public static final String OPTION_DEBUG_SERVICES = ECLIPSE_OSGI + "/debug/services"; //$NON-NLS-1$
+ /**
+ * Services Debug option key.
+ */
+ public static final String OPTION_DEBUG_HOOKS = ECLIPSE_OSGI + "/debug/hooks"; //$NON-NLS-1$
+ /**
+ * Packages Debug option key.
+ */
+ public static final String OPTION_DEBUG_PACKAGES = ECLIPSE_OSGI + "/debug/packages"; //$NON-NLS-1$
+ /**
+ * Manifest Debug option key.
+ */
+ public static final String OPTION_DEBUG_MANIFEST = ECLIPSE_OSGI + "/debug/manifest"; //$NON-NLS-1$
+ /**
+ * Filter Debug option key.
+ */
+ public static final String OPTION_DEBUG_FILTER = ECLIPSE_OSGI + "/debug/filter"; //$NON-NLS-1$
+ /**
+ * Security Debug option key.
+ */
+ public static final String OPTION_DEBUG_SECURITY = ECLIPSE_OSGI + "/debug/security"; //$NON-NLS-1$
+ /**
+ * Start level Debug option key.
+ */
+ public static final String OPTION_DEBUG_STARTLEVEL = ECLIPSE_OSGI + "/debug/startlevel"; //$NON-NLS-1$
+ /**
+ * PackageAdmin Debug option key.
+ */
+ public static final String OPTION_DEBUG_PACKAGEADMIN = ECLIPSE_OSGI + "/debug/packageadmin"; //$NON-NLS-1$
+ /**
+ * PackageAdmin timing Debug option key.
+ */
+ public static final String OPTION_DEBUG_PACKAGEADMIN_TIMING = ECLIPSE_OSGI + "/debug/packageadmin/timing"; //$NON-NLS-1$
+ /**
+ * Monitor activation Debug option key.
+ */
+ public static final String OPTION_MONITOR_ACTIVATION = ECLIPSE_OSGI + "/monitor/activation"; //$NON-NLS-1$
+ /**
+ * Message bundles Debug option key.
+ */
+ public static final String OPTION_DEBUG_MESSAGE_BUNDLES = ECLIPSE_OSGI + "/debug/messageBundles"; //$NON-NLS-1$
+
+ public static final String OPTION_DEBUG_LOCATION = ECLIPSE_OSGI + "/debug/location"; //$NON-NLS-1$
+
+ /**
+ * Indicates if tracing is enabled
+ */
+ public boolean DEBUG_ENABLED = false;
+
+ /**
+ * General debug flag.
+ */
+ public boolean DEBUG_GENERAL = false; // "debug"
+ /**
+ * Bundle time debug flag.
+ */
+ public boolean DEBUG_BUNDLE_TIME = false; //"debug.bundleTime"
+ /**
+ * Loader debug flag.
+ */
+ public boolean DEBUG_LOADER = false; // "debug.loader"
+ /**
+ * Events debug flag.
+ */
+ public boolean DEBUG_EVENTS = false; // "debug.events"
+ /**
+ * Services debug flag.
+ */
+ public boolean DEBUG_SERVICES = false; // "debug.services"
+
+ /**
+ * Hooks debug flag.
+ */
+ public boolean DEBUG_HOOKS = false; // "debug.hooks"
+ /**
+ * Packages debug flag.
+ */
+ // TODO remove this or use it somewhere
+ public boolean DEBUG_PACKAGES = false; // "debug.packages"
+ /**
+ * Manifest debug flag.
+ */
+ public boolean DEBUG_MANIFEST = false; // "debug.manifest"
+ /**
+ * Filter debug flag.
+ */
+ public boolean DEBUG_FILTER = false; // "debug.filter"
+ /**
+ * Security debug flag.
+ */
+ public boolean DEBUG_SECURITY = false; // "debug.security"
+ /**
+ * Start level debug flag.
+ */
+ public boolean DEBUG_STARTLEVEL = false; // "debug.startlevel"
+ /**
+ * PackageAdmin debug flag.
+ */
+ public boolean DEBUG_PACKAGEADMIN = false; // "debug.packageadmin"
+ /**
+ * PackageAdmin timing debug flag.
+ */
+ // TODO remove this or use it somewhere
+ public boolean DEBUG_PACKAGEADMIN_TIMING = false; //"debug.packageadmin/timing"
+ /**
+ * Message debug flag.
+ */
+ public boolean DEBUG_MESSAGE_BUNDLES = false; //"/debug/messageBundles"
+ /**
+ * Monitor activation debug flag.
+ */
+ public boolean MONITOR_ACTIVATION = false; // "monitor/bundles"
+
+ public boolean DEBUG_LOCATION = false; // debug/location
+
+ public Debug(DebugOptions dbgOptions) {
+ if (dbgOptions == null) {
+ return;
+ }
+ DEBUG_ENABLED = dbgOptions.isDebugEnabled();
+ DEBUG_GENERAL = dbgOptions.getBooleanOption(OPTION_DEBUG_GENERAL, false);
+ DEBUG_BUNDLE_TIME = dbgOptions.getBooleanOption(OPTION_DEBUG_BUNDLE_TIME, false) || dbgOptions.getBooleanOption("org.eclipse.core.runtime/timing/startup", false); //$NON-NLS-1$
+ DEBUG_LOADER = dbgOptions.getBooleanOption(OPTION_DEBUG_LOADER, false);
+ DEBUG_EVENTS = dbgOptions.getBooleanOption(OPTION_DEBUG_EVENTS, false);
+ DEBUG_SERVICES = dbgOptions.getBooleanOption(OPTION_DEBUG_SERVICES, false);
+ DEBUG_HOOKS = dbgOptions.getBooleanOption(OPTION_DEBUG_HOOKS, false);
+ DEBUG_PACKAGES = dbgOptions.getBooleanOption(OPTION_DEBUG_PACKAGES, false);
+ DEBUG_MANIFEST = dbgOptions.getBooleanOption(OPTION_DEBUG_MANIFEST, false);
+ DEBUG_FILTER = dbgOptions.getBooleanOption(OPTION_DEBUG_FILTER, false);
+ DEBUG_SECURITY = dbgOptions.getBooleanOption(OPTION_DEBUG_SECURITY, false);
+ DEBUG_STARTLEVEL = dbgOptions.getBooleanOption(OPTION_DEBUG_STARTLEVEL, false);
+ DEBUG_PACKAGEADMIN = dbgOptions.getBooleanOption(OPTION_DEBUG_PACKAGEADMIN, false);
+ DEBUG_PACKAGEADMIN_TIMING = dbgOptions.getBooleanOption(OPTION_DEBUG_PACKAGEADMIN_TIMING, false) || dbgOptions.getBooleanOption("org.eclipse.core.runtime/debug", false); //$NON-NLS-1$
+ DEBUG_MESSAGE_BUNDLES = dbgOptions.getBooleanOption(OPTION_DEBUG_MESSAGE_BUNDLES, false);
+ MONITOR_ACTIVATION = dbgOptions.getBooleanOption(OPTION_MONITOR_ACTIVATION, false);
+ DEBUG_LOCATION = dbgOptions.getBooleanOption(OPTION_DEBUG_LOCATION, false);
+ }
+
+ /**
+ * The PrintStream to print debug messages to.
+ */
+ public static PrintStream out = System.out;
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(boolean x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(char x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(int x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(long x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(float x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(double x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(char x[]) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(String x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void print(Object x) {
+ out.print(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(boolean x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(char x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(int x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(long x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(float x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(double x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(char x[]) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(String x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints x to the PrintStream
+ * @param x
+ */
+ public static void println(Object x) {
+ out.println(x);
+ }
+
+ /**
+ * Prints t to the PrintStream
+ * @param t
+ */
+ public static void printStackTrace(Throwable t) {
+ if (t == null)
+ return;
+ t.printStackTrace(out);
+
+ Method[] methods = t.getClass().getMethods();
+
+ int size = methods.length;
+ Class<?> throwable = Throwable.class;
+
+ for (int i = 0; i < size; i++) {
+ Method method = methods[i];
+
+ if (Modifier.isPublic(method.getModifiers()) && method.getName().startsWith("get") && throwable.isAssignableFrom(method.getReturnType()) && (method.getParameterTypes().length == 0)) { //$NON-NLS-1$
+ try {
+ Throwable nested = (Throwable) method.invoke(t, (Object[]) null);
+
+ if ((nested != null) && (nested != t)) {
+ out.println("Nested Exception:"); //$NON-NLS-1$
+ printStackTrace(nested);
+ }
+ } catch (IllegalAccessException e) {
+ // nothing
+ } catch (InvocationTargetException e) {
+ // nothing
+ }
+ }
+ }
+ }
+
+}

Back to the top