IdeOnlyConsoleOutput.java
- package org.jbehave.core.reporters;
- import static java.util.Arrays.asList;
- import java.io.ByteArrayOutputStream;
- import java.io.PrintStream;
- import java.util.List;
- import java.util.Properties;
- import org.jbehave.core.configuration.Keywords;
- /**
- * Outputs to the console only if running in an IDE. Command line builds (Maven,
- * Ant) will produce nothing for this particular PrintStreamOutput
- * specialisation.
- */
- public class IdeOnlyConsoleOutput extends TxtOutput {
- public IdeOnlyConsoleOutput() {
- super(output());
- }
- public IdeOnlyConsoleOutput(Keywords keywords) {
- super(output(), keywords);
- }
- public IdeOnlyConsoleOutput(Properties outputPatterns, Keywords keywords, boolean reportErrors) {
- super(output(), outputPatterns, keywords, reportErrors);
- }
- static PrintStream output() {
- if (inIDE()) {
- return System.out;
- }
- return new PrintStream(new ByteArrayOutputStream());
- }
- static boolean inIDE() {
- List<String> idePackages = asList("com.intellij", "org.eclipse");
- for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
- for (String idePackage : idePackages) {
- if (ste.getClassName().startsWith(idePackage)) {
- return true;
- }
- }
- }
- return false;
- }
- }