Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/framework/debug/FrameworkDebugOptions.java')
-rw-r--r--bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/framework/debug/FrameworkDebugOptions.java172
1 files changed, 0 insertions, 172 deletions
diff --git a/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/framework/debug/FrameworkDebugOptions.java b/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/framework/debug/FrameworkDebugOptions.java
deleted file mode 100644
index 4f186fd37..000000000
--- a/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/framework/debug/FrameworkDebugOptions.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 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.framework.debug;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.Properties;
-import org.eclipse.osgi.framework.internal.core.FrameworkProperties;
-import org.eclipse.osgi.service.debug.DebugOptions;
-
-/**
- * The DebugOptions class used by the framework to get debug options from.
- * @since 3.1
- */
-public class FrameworkDebugOptions implements DebugOptions {
- private Properties options = null;
- private static FrameworkDebugOptions singleton = null;
- private static boolean debugEnabled = true;
- private static final String OPTIONS = ".options"; //$NON-NLS-1$
-
- /**
- * Returns the singleton instance of <code>FrameworkDebugOptions</code>. If
- * debug is not enabled then <code>null</code> is returned.
- * @return the instance of <code>FrameworkDebugOptions</code>
- */
- public static FrameworkDebugOptions getDefault() {
- if (singleton == null && debugEnabled) {
- FrameworkDebugOptions result = new FrameworkDebugOptions();
- debugEnabled = result.isDebugEnabled();
- if (debugEnabled)
- singleton = result;
- }
- return singleton;
- }
-
- private static URL buildURL(String spec, boolean trailingSlash) {
- if (spec == null)
- return null;
- boolean isFile = spec.startsWith("file:"); //$NON-NLS-1$
- try {
- if (isFile)
- return adjustTrailingSlash(new File(spec.substring(5)).toURL(), trailingSlash);
- return new URL(spec);
- } catch (MalformedURLException e) {
- // if we failed and it is a file spec, there is nothing more we can do
- // otherwise, try to make the spec into a file URL.
- if (isFile)
- return null;
- try {
- return adjustTrailingSlash(new File(spec).toURL(), trailingSlash);
- } catch (MalformedURLException e1) {
- return null;
- }
- }
- }
-
- private static URL adjustTrailingSlash(URL url, boolean trailingSlash) throws MalformedURLException {
- String file = url.getFile();
- if (trailingSlash == (file.endsWith("/"))) //$NON-NLS-1$
- return url;
- file = trailingSlash ? file + "/" : file.substring(0, file.length() - 1); //$NON-NLS-1$
- return new URL(url.getProtocol(), url.getHost(), file);
- }
-
- private FrameworkDebugOptions() {
- super();
- loadOptions();
- }
-
- /**
- * @see DebugOptions#getBooleanOption(String, boolean)
- */
- public boolean getBooleanOption(String option, boolean defaultValue) {
- String optionValue = getOption(option);
- return (optionValue != null && optionValue.equalsIgnoreCase("true")) || defaultValue; //$NON-NLS-1$
- }
-
- /**
- * @see DebugOptions#getOption(String)
- */
- public String getOption(String option) {
- return options != null ? options.getProperty(option) : null;
- }
-
- /**
- * @see DebugOptions#getOption(String, String)
- */
- public String getOption(String option, String defaultValue) {
- return options != null ? options.getProperty(option, defaultValue) : defaultValue;
- }
-
- /**
- * @see DebugOptions#getIntegerOption(String, int)
- */
- public int getIntegerOption(String option, int defaultValue) {
- String value = getOption(option);
- try {
- return value == null ? defaultValue : Integer.parseInt(value);
- } catch (NumberFormatException e) {
- return defaultValue;
- }
- }
-
- /**
- * @see DebugOptions#setOption(String, String)
- */
- public void setOption(String option, String value) {
- if (options != null)
- options.put(option, value.trim());
- }
-
- private boolean isDebugEnabled() {
- return options != null;
- }
-
- private void loadOptions() {
- // if no debug option was specified, don't even bother to try.
- // Must ensure that the options slot is null as this is the signal to the
- // platform that debugging is not enabled.
- String debugOptionsFilename = FrameworkProperties.getProperty("osgi.debug"); //$NON-NLS-1$
- if (debugOptionsFilename == null)
- return;
- options = new Properties();
- URL optionsFile;
- if (debugOptionsFilename.length() == 0) {
- // default options location is user.dir (install location may be r/o so
- // is not a good candidate for a trace options that need to be updatable by
- // by the user)
- String userDir = FrameworkProperties.getProperty("user.dir").replace(File.separatorChar, '/'); //$NON-NLS-1$
- if (!userDir.endsWith("/")) //$NON-NLS-1$
- userDir += "/"; //$NON-NLS-1$
- debugOptionsFilename = new File(userDir, OPTIONS).toString();
- }
- optionsFile = buildURL(debugOptionsFilename, false);
- if (optionsFile == null) {
- System.out.println("Unable to construct URL for options file: " + debugOptionsFilename); //$NON-NLS-1$
- return;
- }
- System.out.print("Debug options:\n " + optionsFile.toExternalForm()); //$NON-NLS-1$
- try {
- InputStream input = optionsFile.openStream();
- try {
- options.load(input);
- System.out.println(" loaded"); //$NON-NLS-1$
- } finally {
- input.close();
- }
- } catch (FileNotFoundException e) {
- System.out.println(" not found"); //$NON-NLS-1$
- } catch (IOException e) {
- System.out.println(" did not parse"); //$NON-NLS-1$
- e.printStackTrace(System.out);
- }
- // trim off all the blanks since properties files don't do that.
- for (Iterator i = options.keySet().iterator(); i.hasNext();) {
- Object key = i.next();
- options.put(key, ((String) options.get(key)).trim());
- }
- if (options.size() == 0)
- options = null;
- }
-}

Back to the top