Bug 502360 - Provide public Log API in org.eclipse.core.runtime
Revert new API, pending a resolution to the discussion in the bug
report.
Change-Id: I5e6df72f9d6488d2429b2ede630c342e437c9841
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Log.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Log.java
deleted file mode 100644
index 7867218..0000000
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Log.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Google, Inc. 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:
- * Stefan Xenos <sxenos@gmail.com> (Google) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.runtime;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.FrameworkUtil;
-
-/**
- * Contains utility functions for logging.
- *
- * @since 3.13
- */
-public final class Log {
- /**
- * Writes an error message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param message
- * message string to be logged.
- * @param exception
- * exception to log or null if none.
- */
- public static void error(Object context, String message, Throwable exception) {
- log(IStatus.ERROR, context, IStatus.OK, message, exception);
- }
-
- /**
- * Writes an error message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param message
- * message string to be logged.
- */
- public static void error(Object context, String message) {
- log(IStatus.ERROR, context, IStatus.OK, message, null);
- }
-
- /**
- * Writes a warning message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param message
- * message string to be logged.
- * @param exception
- * exception to log or null if none.
- */
- public static void warning(Object context, String message, Throwable exception) {
- log(IStatus.WARNING, context, IStatus.OK, message, exception);
- }
-
- /**
- * Writes a warning message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param message
- * message string to be logged.
- */
- public static void warning(Object context, String message) {
- log(IStatus.WARNING, context, IStatus.OK, message, null);
- }
-
- /**
- * Writes an info message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param message
- * message string to be logged.
- * @param exception
- * exception to log or null if none.
- */
- public static void info(Object context, String message, Throwable exception) {
- log(IStatus.INFO, context, IStatus.OK, message, exception);
- }
-
- /**
- * Writes an info message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param message
- * message string to be logged.
- */
- public static void info(Object context, String message) {
- log(IStatus.INFO, context, IStatus.OK, message, null);
- }
-
- /**
- * Writes a status message to the log.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @param toLog
- * status message to be logged.
- */
- public static void log(Object context, IStatus toLog) {
- getLog(context).log(toLog);
- }
-
- /**
- * Returns the {@link ILog} associated with the given context object.
- *
- * @param context
- * a {@link Class} or object that was loaded from the plugin that
- * generated the message or a {@link String} containing the
- * bundle's symbolic name.
- * @return the {@link ILog} associated with the given context object.
- */
- public static ILog getLog(Object context) {
- Bundle bundle = getBundleForContext(context);
- return Platform.getLog(bundle);
- }
-
- private static void log(int severity, Object context, int code, String message, Throwable exception) {
- Bundle bundle = getBundleForContext(context);
- String symbolicName = bundle.getSymbolicName();
- Platform.getLog(bundle).log(new Status(severity, symbolicName, code, message, exception));
- }
-
- /**
- * Returns the bundle for the given object if the given object didn't come
- * from a plugin bundle. If the given context is a String, it is used as the
- * symbolic name of the bundle. If the given context is a Class, the bundle
- * that contains that class is returned. Otherwise, the class of the given
- * object is used.
- */
- private static Bundle getBundleForContext(Object context) {
- Bundle bundle;
- if (context instanceof String) {
- bundle = Platform.getBundle((String) context);
- if (bundle == null) {
- throw new IllegalArgumentException(
- "Bundle not found while attempting to write to log. Invalid bundle id = " + context); //$NON-NLS-1$
- }
- return bundle;
- }
- Class<?> classFromBundle;
- if (context instanceof Class) {
- classFromBundle = (Class<?>) context;
- } else {
- classFromBundle = context.getClass();
- }
- bundle = FrameworkUtil.getBundle(classFromBundle);
- if (bundle == null) {
- throw new IllegalArgumentException("Context must be a Class or Object that was loaded from an Eclipse" //$NON-NLS-1$
- + " plugin bundle. Context was " + context); //$NON-NLS-1$
- }
- return bundle;
- }
-}
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/AllTests.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/AllTests.java
index 5e7f509..c3f41f7 100644
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/AllTests.java
+++ b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/AllTests.java
@@ -28,7 +28,6 @@
suite.addTest(IAdapterManagerTest.suite());
suite.addTest(IAdapterManagerServiceTest.suite());
suite.addTest(AdapterManagerDynamicTest.suite());
- suite.addTest(LogTest.suite());
suite.addTest(OperationCanceledExceptionTest.suite());
suite.addTest(PathTest.suite());
suite.addTest(PlatformTest.suite());
diff --git a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/LogTest.java b/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/LogTest.java
deleted file mode 100644
index a15eab0..0000000
--- a/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/LogTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 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:
- * Stefan Xenos - initial API and implementation
- * Stefan Xenos - bug 174539 - add a 1-argument convert(...) method
- * Stefan Xenos - bug 174040 - SubMonitor#convert doesn't always set task name
- * Stefan Xenos - bug 206942 - Regression test for infinite progress reporting rate
- * IBM Corporation - bug 252446 - SubMonitor.newChild passes zero ticks to child
- * Alexander Kurtakov <akurtako@redhat.com> - bug 458490
- *******************************************************************************/
-package org.eclipse.core.tests.runtime;
-
-import java.util.ArrayList;
-import java.util.List;
-import junit.framework.*;
-import org.eclipse.core.runtime.*;
-
-public class LogTest extends TestCase {
- private static String testMessage;
-
- private final List<IStatus> loggedStatus = new ArrayList<>();
-
- private ILogListener logListener = new ILogListener() {
- @Override
- public void logging(IStatus status, String plugin) {
- if (plugin.equals(RuntimeTestsPlugin.PI_RUNTIME_TESTS)) {
- loggedStatus.add(status);
- }
- }
- };
-
- public LogTest() {
- super();
- }
-
- public LogTest(String name) {
- super(name);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- testMessage = getName();
- Log.getLog(this).addLogListener(logListener);
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- Log.getLog(this).removeLogListener(logListener);
- }
-
- public void testCorrectLogIsSelectedForObjectContext() {
- assertEquals(RuntimeTestsPlugin.getPlugin().getLog(), Log.getLog(this));
- }
-
- public void testCorrectLogIsSelectedForClassContext() {
- assertEquals(RuntimeTestsPlugin.getPlugin().getLog(), Log.getLog(LogTest.class));
- }
-
- public void testCorrectLogIsSelectedForStringContext() {
- assertEquals(RuntimeTestsPlugin.getPlugin().getLog(), Log.getLog(RuntimeTestsPlugin.PI_RUNTIME_TESTS));
- }
-
- public void testLogError() {
- Log.error(this, testMessage);
- assertLogged(IStatus.ERROR, testMessage, null);
- }
-
- public void testLogErrorWithException() {
- RuntimeException exception = new RuntimeException();
- Log.error(this, testMessage, exception);
- assertLogged(IStatus.ERROR, testMessage, exception);
- }
-
- public void testLogWarning() {
- Log.warning(this, testMessage);
- assertLogged(IStatus.WARNING, testMessage, null);
- }
-
- public void testLogWarningWithException() {
- RuntimeException exception = new RuntimeException();
- Log.warning(this, testMessage, exception);
- assertLogged(IStatus.WARNING, testMessage, exception);
- }
-
- public void testLogInfo() {
- Log.info(this, testMessage);
- assertLogged(IStatus.INFO, testMessage, null);
- }
-
- public void testLogInfoWithException() {
- RuntimeException exception = new RuntimeException();
- Log.info(this, testMessage, exception);
- assertLogged(IStatus.INFO, testMessage, exception);
- }
-
- public void testLog() {
- Status status = new Status(IStatus.ERROR, RuntimeTestsPlugin.PI_RUNTIME_TESTS, testMessage);
- Log.log(this, status);
- assertLogged(IStatus.ERROR, testMessage, null);
- }
-
- private void assertLogged(int error, String message, Throwable exception) {
- assertEquals("The wrong number of messages were logged", 1, loggedStatus.size());
- IStatus status = loggedStatus.get(0);
- assertEquals("The log message had the wrong severity", error, status.getSeverity());
- assertEquals("The wrong exception was logged", exception, status.getException());
- }
-
- public static Test suite() {
- return new TestSuite(LogTest.class);
- }
-}