diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java index 9add031b6e8..2f563968961 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java @@ -23,9 +23,9 @@ import org.eclipse.cdt.core.ErrorParserManager; import org.eclipse.cdt.core.model.ICModelMarker; import org.eclipse.cdt.core.resources.ACBuilder; import org.eclipse.cdt.core.resources.IConsole; +import org.eclipse.cdt.internal.core.ConsoleOutputSniffer; import org.eclipse.cdt.make.internal.core.MakeMessages; import org.eclipse.cdt.make.internal.core.StreamMonitor; -import org.eclipse.cdt.make.internal.core.scannerconfig.ConsoleOutputSniffer; import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerInfoConsoleParserFactory; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IMarker; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java index b1f10562b52..0cb391a2c01 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/IScannerInfoConsoleParser.java @@ -10,6 +10,7 @@ **********************************************************************/ package org.eclipse.cdt.make.core.scannerconfig; +import org.eclipse.cdt.core.IConsoleParser; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IPath; @@ -19,7 +20,7 @@ import org.eclipse.core.runtime.IPath; * * @author vhirsl */ -public interface IScannerInfoConsoleParser { +public interface IScannerInfoConsoleParser extends IConsoleParser { /** * One time initialization of a console parser. * @@ -30,17 +31,5 @@ public interface IScannerInfoConsoleParser { */ public void startup(IProject project, IPath workingDirectory, IScannerInfoCollector collector, IMarkerGenerator markerGenerator); - - /** - * Parse one line of output. - * - * @param line - * @return true if scanner info entry was found in the line - */ - public boolean processLine(String line); - - /** - * Optional finalization of a console parser. - */ - public void shutdown(); + } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java index 06aaca95725..81843eb86d6 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoConsoleParserFactory.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.make.internal.core.scannerconfig; import java.io.OutputStream; import org.eclipse.cdt.core.IMarkerGenerator; +import org.eclipse.cdt.internal.core.ConsoleOutputSniffer; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java index 7eb6b02a21f..ca0fdeabeb6 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java @@ -20,13 +20,13 @@ import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CommandLauncher; import org.eclipse.cdt.core.IMarkerGenerator; import org.eclipse.cdt.core.resources.IConsole; +import org.eclipse.cdt.internal.core.ConsoleOutputSniffer; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.internal.core.MakeMessages; import org.eclipse.cdt.make.internal.core.StreamMonitor; -import org.eclipse.cdt.make.internal.core.scannerconfig.ConsoleOutputSniffer; import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerConfigUtil; import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerInfoConsoleParserFactory; import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultSIFileReader.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultSIFileReader.java index 2580b56b4f3..3977e859403 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultSIFileReader.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultSIFileReader.java @@ -20,13 +20,13 @@ import java.io.OutputStream; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.resources.IConsole; +import org.eclipse.cdt.internal.core.ConsoleOutputSniffer; import org.eclipse.cdt.make.core.IMakeBuilderInfo; import org.eclipse.cdt.make.core.MakeBuilder; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.scannerconfig.IExternalScannerInfoProvider; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; -import org.eclipse.cdt.make.internal.core.scannerconfig.ConsoleOutputSniffer; import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerInfoConsoleParserFactory; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 422f8ec3d9b..511b53b8a5f 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,9 @@ +2005-03-23 Vladimir Hirsl + Moved ConsoleOutputSniffer from make.core plugin. + Added minimal console parser interface. + + src/org/eclipse/cdt/core/IConsoleParser.java + + src/org/eclipse/cdt/internal/core/ConsoleOutputSniffer.java + 2005-03-19 Alain Magloire PR 87336: Did not check if the resource exists. * model/org/eclipse/cdt/internal/core/model/Archive.java diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java new file mode 100644 index 00000000000..89fe123b5e0 --- /dev/null +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java @@ -0,0 +1,33 @@ +/********************************************************************** + * Copyright (c) 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM - Initial API and implementation + **********************************************************************/ +package org.eclipse.cdt.core; + +/** + * A basic interface for console parsers + * + * @author vhirsl + */ +public interface IConsoleParser { + /** + * Parse one line of output. + * + * @param line + * @return true if line was successfully processed; skip other console parsers
+ * false - try other console parsers + */ + public boolean processLine(String line); + + /** + * Finalization of a console parser when the stream is closed. + */ + public void shutdown(); + +} diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ConsoleOutputSniffer.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/ConsoleOutputSniffer.java similarity index 92% rename from build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ConsoleOutputSniffer.java rename to core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/ConsoleOutputSniffer.java index 2c1eae70440..2ad7be0ff6d 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ConsoleOutputSniffer.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/ConsoleOutputSniffer.java @@ -8,15 +8,16 @@ * Contributors: * IBM - Initial API and implementation **********************************************************************/ -package org.eclipse.cdt.make.internal.core.scannerconfig; +package org.eclipse.cdt.internal.core; import java.io.IOException; import java.io.OutputStream; -import org.eclipse.cdt.make.core.scannerconfig.*; +import org.eclipse.cdt.core.IConsoleParser; + /** - * Intercepts an output to console and forwards it to line parsers for processing + * Intercepts an output to console and forwards it to console parsers for processing * * @author vhirsl */ @@ -117,13 +118,13 @@ public class ConsoleOutputSniffer { private int nOpens = 0; private OutputStream consoleOutputStream; private OutputStream consoleErrorStream; - private IScannerInfoConsoleParser[] parsers; + private IConsoleParser[] parsers; - public ConsoleOutputSniffer(IScannerInfoConsoleParser[] parsers) { + public ConsoleOutputSniffer(IConsoleParser[] parsers) { this.parsers = parsers; } - public ConsoleOutputSniffer(OutputStream outputStream, OutputStream errorStream, IScannerInfoConsoleParser[] parsers) { + public ConsoleOutputSniffer(OutputStream outputStream, OutputStream errorStream, IConsoleParser[] parsers) { this(parsers); this.consoleOutputStream = outputStream; this.consoleErrorStream = errorStream;