diff options
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java | 269 |
1 files changed, 0 insertions, 269 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java deleted file mode 100644 index 294858bf8..000000000 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java +++ /dev/null @@ -1,269 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 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.internal.profile; - -import org.eclipse.osgi.internal.debug.FrameworkDebugOptions; - -import org.eclipse.osgi.framework.internal.core.FrameworkProperties; - -/** - * This class is a development tool that provides a simple way to log - * programmer defined timmings for performance evaluations. This profiling - * allows logging of a timestamp with a corresponding message to a trace - * buffer. - */ - -public class Profile { - /** - * Profiling is enabled and available. - */ - public static final boolean PROFILE = true; // enable profile compiling - /** - * The logging state of <tt>STARTUP</tt> messages - */ - public static boolean STARTUP = false; // enable startup profiling - /** - * The logging state of <tt>BENCHMARK</tt> messages - */ - public static boolean BENCHMARK = false; // enable all benchmarking - /** - * The logging state of <tt>DEBUG</tt> messages - */ - public static boolean DEBUG = false; // enable general debug profiling - - private static final String OSGI_PROP = "osgi.profile."; //$NON-NLS-1$ - private static final String PROP_STARTUP = OSGI_PROP + "startup"; //$NON-NLS-1$ - private static final String PROP_BENCHMARK = OSGI_PROP + "benchmark"; //$NON-NLS-1$ - private static final String PROP_DEBUG = OSGI_PROP + "debug"; //$NON-NLS-1$ - private static final String PROP_IMPL = OSGI_PROP + "impl"; //$NON-NLS-1$ - - private static final String OSGI_OPTION = "org.eclipse.osgi/profile/"; //$NON-NLS-1$ - private static final String OPTION_STARTUP = OSGI_OPTION + "startup"; //$NON-NLS-1$ - private static final String OPTION_BENCHMARK = OSGI_OPTION + "benchmark"; //$NON-NLS-1$ - private static final String OPTION_DEBUG = OSGI_OPTION + "debug"; //$NON-NLS-1$ - private static final String OPTION_IMPL = OSGI_OPTION + "impl"; //$NON-NLS-1$ - - /** - * The default logging flag. - */ - public static final int FLAG_NONE = 0; - /** - * The logging flag for <strong>method enter</strong> - */ - public static final int FLAG_ENTER = 1; - /** - * The logging flag for <strong>method exit</strong> - */ - public static final int FLAG_EXIT = 2; - /** - * The description for <strong>method enter</strong> - */ - public static final String ENTER_DESCRIPTION = "enter"; //$NON-NLS-1$ - /** - * The description for <strong>method exit</strong> - */ - public static final String EXIT_DESCRIPTION = "exit"; //$NON-NLS-1$ - - private static ProfileLogger profileLogger = null; - private static String profileLoggerClassName = null; - - static { - initProps(); - } - - /** - * Initialize/update profiling properties. - * - * If profiling properties are updated, this method is called to update - * the profile states. - */ - public static void initProps() { - String prop; - FrameworkDebugOptions dbgOptions = null; - - // if osgi.debug is not available, don't force DebugOptions - // to init as this variable may be set later on where - // DebugOptions will succeed. - if (FrameworkProperties.getProperty("osgi.debug") != null) { //$NON-NLS-1$ - dbgOptions = FrameworkDebugOptions.getDefault(); - if (dbgOptions != null) { - STARTUP = dbgOptions.getBooleanOption(OPTION_STARTUP, false); - BENCHMARK = dbgOptions.getBooleanOption(OPTION_BENCHMARK, false); - DEBUG = dbgOptions.getBooleanOption(OPTION_DEBUG, false); - if (profileLogger == null) - profileLoggerClassName = dbgOptions.getOption(OPTION_IMPL); - } - } - - // System properties will always override anything in .options file - if ((prop = FrameworkProperties.getProperty(PROP_STARTUP)) != null) { - STARTUP = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_STARTUP, new Boolean(STARTUP).toString()); - } - if ((prop = FrameworkProperties.getProperty(PROP_BENCHMARK)) != null) { - BENCHMARK = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_BENCHMARK, new Boolean(BENCHMARK).toString()); - } - if ((prop = FrameworkProperties.getProperty(PROP_DEBUG)) != null) { - DEBUG = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_DEBUG, new Boolean(DEBUG).toString()); - } - - if (profileLogger == null) { - if ((prop = FrameworkProperties.getProperty(PROP_IMPL)) != null) { - profileLoggerClassName = prop; - if (dbgOptions != null) - dbgOptions.setOption(OPTION_IMPL, profileLoggerClassName); - } - } else { - profileLogger.initProps(); - } - } - - /** - * Log a method enter. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - */ - public static void logEnter(String id) { - logTime(FLAG_ENTER, id, ENTER_DESCRIPTION, null); - } - - /** - * Log a method enter. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param description A description of the method. - */ - public static void logEnter(String id, String description) { - logTime(FLAG_ENTER, id, ENTER_DESCRIPTION, description); - } - - /** - * Log a method exit. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - */ - public static void logExit(String id) { - logTime(FLAG_EXIT, id, EXIT_DESCRIPTION, null); - } - - /** - * Log a method exit. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param description A description of the method. - */ - public static void logExit(String id, String description) { - logTime(FLAG_EXIT, id, EXIT_DESCRIPTION, description); - } - - /** - * Log a message. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param msg The message. - */ - public static void logTime(String id, String msg) { - logTime(FLAG_NONE, id, msg, null); - } - - /** - * Log a message. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param msg The message. - * @param description A description of the method. - */ - public static void logTime(String id, String msg, String description) { - logTime(FLAG_NONE, id, msg, description); - } - - /** - * Log a message. - * - * @param flag A profile logging flag. - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param msg The message. - * @param description A description of the method. - * - * @see #FLAG_ENTER - * @see #FLAG_EXIT - * @see #FLAG_NONE - */ - public static void logTime(int flag, String id, String msg, String description) { - if (profileLogger == null) - profileLogger = createProfileLogger(); - profileLogger.logTime(flag, id, msg, description); - } - - /** - * Use cumulative logging to record the entrance from this scope. - * - * @param scope The entering scope - */ - public static void accumLogEnter(String scope) { - if (profileLogger == null) - profileLogger = createProfileLogger(); - profileLogger.accumLogEnter(scope); - } - - /** - * Use cumulative logging to record the exit from this scope. - * - * @param scope The exiting scope - */ - public static void accumLogExit(String scope) { - if (profileLogger == null) - profileLogger = createProfileLogger(); - profileLogger.accumLogExit(scope); - } - - /** - * Get the profiling log report and reset the trace buffer. - * - * @return The profiling log report. - */ - public static String getProfileLog() { - if (profileLogger != null) - return profileLogger.getProfileLog(); - return ""; //$NON-NLS-1$ - } - - /** - * Create an instance of the appropriate profile logger - */ - private static ProfileLogger createProfileLogger() { - ProfileLogger result = null; - - // Try to create it by class name - if (profileLoggerClassName != null) { - Class<?> profileImplClass = null; - try { - profileImplClass = Class.forName(profileLoggerClassName); - result = (ProfileLogger) profileImplClass.newInstance(); - } catch (Exception e) { - // could not find the class - e.printStackTrace(); - } - } - - // Use the default - if (result == null) - result = new DefaultProfileLogger(); - - return (result); - } -} |