/******************************************************************************* * Copyright (c) 2003, 2015 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.internal.debug; import java.io.PrintStream; import org.eclipse.osgi.internal.framework.EquinoxContainer; import org.eclipse.osgi.internal.util.SupplementDebug; import org.eclipse.osgi.service.debug.DebugOptions; import org.eclipse.osgi.service.debug.DebugOptionsListener; /** * This class has debug constants which can be used by the Framework implementation * and Adaptor implementations * @since 3.1 */ public class Debug implements DebugOptionsListener { /** * 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. */ 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$ /** * Storage Debug option key. */ public static final String OPTION_DEBUG_STORAGE = ECLIPSE_OSGI + "/debug/storage"; //$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$ /** * 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$ /** * Monitor lazy activation Debug option key */ public static final String OPTION_MONITOR_LAZY = ECLIPSE_OSGI + "/monitor/lazy"; //$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$ public static final String OPTION_CACHED_MANIFEST = ECLIPSE_OSGI + "/debug/cachedmanifest"; //$NON-NLS-1$ public static final String OPTION_DEBUG_SYSTEM_BUNDLE = ECLIPSE_OSGI + "/debug/systemBundle"; //$NON-NLS-1$ /** * 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" /** * Storage debug flag. */ public boolean DEBUG_STORAGE = false; // "debug.storage" /** * 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" /** * 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/activation" public boolean DEBUG_LOCATION = false; // debug/location public boolean DEBUG_CACHED_MANIFEST = false; public boolean DEBUG_SYSTEM_BUNDLE = false; // debug/systemBundle public Debug(DebugOptions dbgOptions) { optionsChanged(dbgOptions); } @Override public void optionsChanged(DebugOptions dbgOptions) { 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_STORAGE = dbgOptions.getBooleanOption(OPTION_DEBUG_STORAGE, 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_MANIFEST = dbgOptions.getBooleanOption(OPTION_DEBUG_MANIFEST, false); SupplementDebug.STATIC_DEBUG_MANIFEST = DEBUG_MANIFEST; 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); SupplementDebug.STATIC_DEBUG_MESSAGE_BUNDLES = DEBUG_MESSAGE_BUNDLES; MONITOR_ACTIVATION = dbgOptions.getBooleanOption(OPTION_MONITOR_ACTIVATION, false); DEBUG_LOCATION = dbgOptions.getBooleanOption(OPTION_DEBUG_LOCATION, false); DEBUG_CACHED_MANIFEST = dbgOptions.getBooleanOption(OPTION_CACHED_MANIFEST, false); DEBUG_SYSTEM_BUNDLE = dbgOptions.getBooleanOption(OPTION_DEBUG_SYSTEM_BUNDLE, 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); } }