diff --git a/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/internal/StopWatchRule.java b/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/internal/StopWatchRule.java
deleted file mode 100644
index b4623c717..000000000
--- a/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/internal/StopWatchRule.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 itemis AG (http://www.itemis.eu) 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
- *******************************************************************************/
-package org.eclipse.xtext.junit4.internal;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.xtext.util.internal.Stopwatches;
-import org.eclipse.xtext.util.internal.Stopwatches.NumbersForTask;
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
-
-/**
- * @author Sven Efftinge - Initial contribution and API
- */
-public class StopwatchRule implements TestRule {
-
- private boolean watchAll = false;
-
- public StopwatchRule() {
- }
-
- /**
- * @param watchAll true
if all tests should be timed, false
- * if only tests should be considered which are annotated with {@link Timed @Timed}
- */
- public StopwatchRule(boolean watchAll) {
- this.watchAll = watchAll;
- }
-
- public void printStopwatchData(Description description, Map data) {
- String property = System.getProperty("stopwatch.file");
- PrintStream out = System.out;
- FileOutputStream outputStream = null;
- if (property != null) {
- try {
- outputStream = new FileOutputStream(new File(property), true);
- out = new PrintStream(outputStream);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- try {
- out.println("-------------------------------------------------------------------------------------------------------------------------\n");
- out.println("Test '" + description.getDisplayName() + "' :");
- out.println(getStopwatchDataAsReadableString(data));
- } finally {
-// out.flush();
- if (outputStream != null)
- try {
- outputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
-
- public String getStopwatchDataAsReadableString(Map data) {
- StringBuilder sb = new StringBuilder();
- sb.append("-------------------------------------------------------------------------------------------------------------------------\n");
- for (Entry task : data.entrySet()) {
- sb.append("Task '" + task.getKey() + "' took " + task.getValue().getMilliseconds() + "ms ("
- + task.getValue().getNumberOfMeasurements() + " measurements).\n");
- }
- sb.append("-------------------------------------------------------------------------------------------------------------------------\n");
- return sb.toString();
- }
-
- public Statement apply(final Statement base, final Description description) {
- if (!watchAll && description.getAnnotation(Timed.class) == null)
- return base;
- return new Statement() {
- @Override
- public void evaluate() throws Throwable {
- try {
- Stopwatches.setEnabled(true);
- Stopwatches.resetAll();
- base.evaluate();
- } finally {
- printStopwatchData(description, Stopwatches.allNumbers());
- Stopwatches.resetAll();
- Stopwatches.setEnabled(false);
- }
- }
- };
- }
-
-}
diff --git a/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/internal/StopWatches.java b/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/internal/StopWatches.java
deleted file mode 100644
index d78c2114b..000000000
--- a/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/internal/StopWatches.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 itemis AG (http://www.itemis.eu) 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
- *******************************************************************************/
-package org.eclipse.xtext.util.internal;
-
-import static com.google.common.collect.Maps.*;
-import static java.util.Collections.*;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * @author Sven Efftinge - Initial contribution and API
- */
-public class Stopwatches {
-
- public interface StoppedTask {
- public void start();
- public void stop();
- }
-
- public static class StopwatchForTask implements StoppedTask {
- final static long notRunning = -1;
-
- private NumbersForTask numbers;
- private long lastStart = notRunning;
- private int reentrant = 0;
-
- StopwatchForTask(NumbersForTask numbers) {
- this.numbers = numbers;
- }
-
- public void start() {
- if (!isRunning())
- lastStart = System.currentTimeMillis();
- reentrant++;
- }
-
- public boolean isRunning() {
- return lastStart != notRunning;
- }
-
- public void stop() {
- if (isRunning()) {
- reentrant--;
- if (reentrant == 0) {
- long currentTimeMillis = System.currentTimeMillis();
- numbers.addMilliseconds(currentTimeMillis - lastStart);
- numbers.increaseMeasurements();
- lastStart = notRunning;
- }
- }
- }
- }
-
- public static class NumbersForTask {
- long milliseconds = 0;
- int numberOfMeasurements = 0;
-
- public long getMilliseconds() {
- return milliseconds;
- }
-
- synchronized void addMilliseconds(long milliseconds) {
- this.milliseconds += milliseconds;
- }
-
- public int getNumberOfMeasurements() {
- return numberOfMeasurements;
- }
-
- synchronized void increaseMeasurements() {
- this.numberOfMeasurements++;
- }
- }
-
- private static Map data = newLinkedHashMap();
- private static boolean enabled = false;
- private static StoppedTask NULLIMPL = new StoppedTask() {
- public void start() {}
- public void stop() {}
- };
-
- public static StoppedTask forTask(String task) {
- if (!enabled)
- return NULLIMPL;
- synchronized (data) {
- NumbersForTask numbers = data.get(task);
- if (numbers == null) {
- numbers = new NumbersForTask();
- data.put(task, numbers);
- }
- return new StopwatchForTask(numbers);
- }
- }
-
- public static void setEnabled(boolean isEnabled) {
- enabled = isEnabled;
- }
-
- public static void resetAll() {
- synchronized (data) {
- data.clear();
- }
- }
-
- public static Map allNumbers() {
- synchronized (data) {
- return unmodifiableMap(data);
- }
- }
-
- public static String getPrintableStopwatchData() {
- StringBuilder sb = new StringBuilder();
- sb.append("\n");
- sb.append("-------------------------------------------------------------------------------------------------------------------------\n");
- for (Entry task : Stopwatches.allNumbers().entrySet()) {
- sb.append("Task '"+task.getKey()+"' took "+task.getValue().getMilliseconds()+"ms ("+task.getValue().getNumberOfMeasurements()+" measurements).\n");
- }
- sb.append("-------------------------------------------------------------------------------------------------------------------------\n");
- return sb.toString();
- }
-
-}