Loading src/com/elphel/vdt/core/launching/LaunchCore.java +3 −1 Original line number Diff line number Diff line Loading @@ -328,10 +328,12 @@ public class LaunchCore { launch.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, null); DebugPlugin.getDefault().getLaunchManager().addLaunch(launch); VDTRunner runner = VDTLaunchUtil.getRunner(); int numItem=configuration.getBuildStep(); runner.run(configuration, VDTRunner.renderProcessLabel(configuration.getToolName()), // toolname + (date) launch, null); null, numItem); } // launch() Loading src/com/elphel/vdt/core/launching/VDTConsoleRunner.java +48 −14 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.elphel.vdt.core.launching; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import org.eclipse.debug.internal.ui.views.console.ProcessConsole; import org.eclipse.core.runtime.CoreException; Loading Loading @@ -49,6 +51,7 @@ import com.elphel.vdt.core.tools.contexts.BuildParamsItem; import com.elphel.vdt.ui.MessageUI; import com.elphel.vdt.veditor.VerilogPlugin; import com.elphel.vdt.veditor.preference.PreferenceStrings; import com.sun.net.ssl.internal.www.protocol.https.Handler; public class VDTConsoleRunner{ private final VDTRunnerConfiguration runConfig; Loading @@ -67,7 +70,8 @@ public class VDTConsoleRunner{ public VDTConsoleRunner (VDTRunnerConfiguration runConfig){ this.runConfig=runConfig; } private BuildParamsItem getParser( String parserName){ /* * private BuildParamsItem getParser( String parserName){ if (parserName==null) return null; BuildParamsItem[] buildParamsItems = runConfig.getArgumentsItemsArray(); // uses already calculated if (buildParamsItems==null) return null; Loading @@ -78,6 +82,19 @@ public class VDTConsoleRunner{ return null; } */ private int getParserIndex( String parserName){ if (parserName==null) return -1; BuildParamsItem[] buildParamsItems = runConfig.getArgumentsItemsArray(); // uses already calculated if (buildParamsItems==null) return -1; for (int i=0;i<buildParamsItems.length;i++){ if (parserName.equals(buildParamsItems[i].getNameAsParser())) return i; } return -1; } public IOConsole runConsole(String consolePrefix , ILaunch launch , IProgressMonitor monitor Loading Loading @@ -124,9 +141,12 @@ public class VDTConsoleRunner{ process=((ProcessConsole)iCons).getProcess(); // IStreamsProxy consoleInStreamProxy= process.getStreamsProxy(); consoleInStreamProxy= process.getStreamsProxy(); BuildParamsItem stderrParser=getParser(buildParamsItem.getStderr()); // re-parses all - why? BuildParamsItem stdoutParser=getParser(buildParamsItem.getStdout()); int stderrParserIndex=getParserIndex(buildParamsItem.getStderr()); int stdoutParserIndex=getParserIndex(buildParamsItem.getStdout()); BuildParamsItem stderrParser=(stderrParserIndex>=0)?runConfig.getArgumentsItemsArray()[stderrParserIndex]:null; BuildParamsItem stdoutParser=(stdoutParserIndex>=0)?runConfig.getArgumentsItemsArray()[stdoutParserIndex]:null; // BuildParamsItem stderrParser=getParser(buildParamsItem.getStderr()); // re-parses all - why? // BuildParamsItem stdoutParser=getParser(buildParamsItem.getStdout()); System.out.println("Using parser for stderr: "+((stderrParser!=null)?stderrParser.getNameAsParser():"none")); // actually may be the same as stdout System.out.println("Using parser for stdout: "+((stdoutParser!=null)?stdoutParser.getNameAsParser():"none")); Loading @@ -145,7 +165,8 @@ public class VDTConsoleRunner{ processOut=runner.run(runConfig, "OUT for "+iCons.getName(), launch, null); //monitor); null, //monitor stdoutParserIndex); stdoutStreamProxy= processOut.getStreamsProxy(); //TODO: Add error parsers } Loading @@ -160,7 +181,8 @@ public class VDTConsoleRunner{ processErr=runner.run(runConfig, "ERR for "+iCons.getName(), launch, null); //monitor); null, //monitor); stderrParserIndex); stderrStreamProxy= processErr.getStreamsProxy(); //TODO: Add error parsers } Loading Loading @@ -229,8 +251,20 @@ public class VDTConsoleRunner{ } catch (IOException e) { System.out.println("Can not write to outStream of console "+iCons.getName()); } int timeout=buildParamsItem.getTimeout(); if ((timeout==0) && (buildParamsItem.getPrompt()==null)) timeout=1;// should specify at least one of timeout or prompt if (timeout>0){ System.out.println("Setting timeout "+timeout); final int fTimeout = timeout; new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println(">>Timeout<<"); finishConsolescript(); } }, fTimeout*1000); } return iCons; } Loading src/com/elphel/vdt/core/launching/VDTRunner.java +32 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import org.eclipse.debug.internal.ui.views.console.ProcessConsole; //import org.eclipse.core.resources.IProject; Loading @@ -36,6 +38,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; Loading Loading @@ -78,6 +81,8 @@ import com.elphel.vdt.veditor.preference.PreferenceStrings; //import com.elphel.vdt.core.Utils; import org.eclipse.ui.console.IConsoleListener; Loading Loading @@ -137,7 +142,9 @@ public class VDTRunner { // renderProcessLabel(runConfig.getToolName()), // toolname + (date) runConfig.getOriginalConsoleName(), launch, monitor); monitor, numItem ); //Andrey: if there is a single item - launch asynchronously, if more - verify queue is empty // will not change Loading @@ -148,6 +155,8 @@ public class VDTRunner { runningBuilds.removeConfiguration(consoleName); return; } if (numItem<(argumentsItemsArray.length-1)){ // Not for the last // IConsoleManager man = ConsolePlugin.getDefault().getConsoleManager(); // debugging // IConsole[] consoles=(IConsole[]) man.getConsoles(); Loading Loading @@ -191,6 +200,23 @@ public class VDTRunner { iCons.firePropertyChange(fiCons,"org.eclipse.jface.text", consoleName, fConsoleName); } System.out.println("return - waiting to be awaken"); int timeout=argumentsItemsArray[numItem].getTimeout(); if (timeout>0){ final int fTimeout = timeout; final IProcess fProcess=process; new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println(">>Timeout<<"); try { fProcess.terminate(); } catch (DebugException e) { System.out.println("Failed to terminate preocess on "+fConsoleName); } } }, fTimeout*1000); } return; } Loading Loading @@ -257,13 +283,14 @@ public class VDTRunner { , String consoleLabel , ILaunch launch , IProgressMonitor monitor , int numItem ) throws CoreException { if (monitor == null) { monitor = new NullProgressMonitor(); } int numItem=configuration.getBuildStep(); // BuildParamsItem buildParamsItem= VDTLaunchUtil.getArguments(configuration.getConfiguration())[numItem]; // int numItem=configuration.getBuildStep(); BuildParamsItem buildParamsItem = configuration.getArgumentsItemsArray()[numItem]; // uses already calculated String patternErrors= combinePatterns(buildParamsItem.getErrors(), configuration.getPatternErrors()) ; String patternWarnings=combinePatterns(buildParamsItem.getWarnings(),configuration.getPatternWarnings()) ; Loading src/com/elphel/vdt/core/tools/config/xml/CommandLinesNodeReader.java +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class CommandLinesNodeReader extends AbstractConditionNodeReader { String stderr = XMLConfig.getAttributeValue(node, XMLConfig.CONTEXT_LINEBLOCK_STDERR_ATTR); String stdout = XMLConfig.getAttributeValue(node, XMLConfig.CONTEXT_LINEBLOCK_STDOUT_ATTR); String timeout = XMLConfig.getAttributeValue(node, XMLConfig.CONTEXT_LINEBLOCK_TIMEOUT_ATTR); if(name == null) throw new ConfigException("Unnamed lines block definition in context '" + Loading @@ -92,6 +93,7 @@ public class CommandLinesNodeReader extends AbstractConditionNodeReader { interrupt, stderr, stdout, timeout, lines, deleteLines, insertLines); Loading src/com/elphel/vdt/core/tools/config/xml/XMLConfig.java +1 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class XMLConfig extends Config { static final String CONTEXT_LINEBLOCK_INTERRUPT_ATTR ="interrupt"; static final String CONTEXT_LINEBLOCK_STDERR_ATTR = "stderr"; static final String CONTEXT_LINEBLOCK_STDOUT_ATTR = "stdout"; static final String CONTEXT_LINEBLOCK_TIMEOUT_ATTR = "timeout"; static final String CONTEXT_STRINGS_DELETE_TAG = "delete"; static final String CONTEXT_STRINGS_INSERT_TAG = "insert"; Loading Loading
src/com/elphel/vdt/core/launching/LaunchCore.java +3 −1 Original line number Diff line number Diff line Loading @@ -328,10 +328,12 @@ public class LaunchCore { launch.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, null); DebugPlugin.getDefault().getLaunchManager().addLaunch(launch); VDTRunner runner = VDTLaunchUtil.getRunner(); int numItem=configuration.getBuildStep(); runner.run(configuration, VDTRunner.renderProcessLabel(configuration.getToolName()), // toolname + (date) launch, null); null, numItem); } // launch() Loading
src/com/elphel/vdt/core/launching/VDTConsoleRunner.java +48 −14 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.elphel.vdt.core.launching; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import org.eclipse.debug.internal.ui.views.console.ProcessConsole; import org.eclipse.core.runtime.CoreException; Loading Loading @@ -49,6 +51,7 @@ import com.elphel.vdt.core.tools.contexts.BuildParamsItem; import com.elphel.vdt.ui.MessageUI; import com.elphel.vdt.veditor.VerilogPlugin; import com.elphel.vdt.veditor.preference.PreferenceStrings; import com.sun.net.ssl.internal.www.protocol.https.Handler; public class VDTConsoleRunner{ private final VDTRunnerConfiguration runConfig; Loading @@ -67,7 +70,8 @@ public class VDTConsoleRunner{ public VDTConsoleRunner (VDTRunnerConfiguration runConfig){ this.runConfig=runConfig; } private BuildParamsItem getParser( String parserName){ /* * private BuildParamsItem getParser( String parserName){ if (parserName==null) return null; BuildParamsItem[] buildParamsItems = runConfig.getArgumentsItemsArray(); // uses already calculated if (buildParamsItems==null) return null; Loading @@ -78,6 +82,19 @@ public class VDTConsoleRunner{ return null; } */ private int getParserIndex( String parserName){ if (parserName==null) return -1; BuildParamsItem[] buildParamsItems = runConfig.getArgumentsItemsArray(); // uses already calculated if (buildParamsItems==null) return -1; for (int i=0;i<buildParamsItems.length;i++){ if (parserName.equals(buildParamsItems[i].getNameAsParser())) return i; } return -1; } public IOConsole runConsole(String consolePrefix , ILaunch launch , IProgressMonitor monitor Loading Loading @@ -124,9 +141,12 @@ public class VDTConsoleRunner{ process=((ProcessConsole)iCons).getProcess(); // IStreamsProxy consoleInStreamProxy= process.getStreamsProxy(); consoleInStreamProxy= process.getStreamsProxy(); BuildParamsItem stderrParser=getParser(buildParamsItem.getStderr()); // re-parses all - why? BuildParamsItem stdoutParser=getParser(buildParamsItem.getStdout()); int stderrParserIndex=getParserIndex(buildParamsItem.getStderr()); int stdoutParserIndex=getParserIndex(buildParamsItem.getStdout()); BuildParamsItem stderrParser=(stderrParserIndex>=0)?runConfig.getArgumentsItemsArray()[stderrParserIndex]:null; BuildParamsItem stdoutParser=(stdoutParserIndex>=0)?runConfig.getArgumentsItemsArray()[stdoutParserIndex]:null; // BuildParamsItem stderrParser=getParser(buildParamsItem.getStderr()); // re-parses all - why? // BuildParamsItem stdoutParser=getParser(buildParamsItem.getStdout()); System.out.println("Using parser for stderr: "+((stderrParser!=null)?stderrParser.getNameAsParser():"none")); // actually may be the same as stdout System.out.println("Using parser for stdout: "+((stdoutParser!=null)?stdoutParser.getNameAsParser():"none")); Loading @@ -145,7 +165,8 @@ public class VDTConsoleRunner{ processOut=runner.run(runConfig, "OUT for "+iCons.getName(), launch, null); //monitor); null, //monitor stdoutParserIndex); stdoutStreamProxy= processOut.getStreamsProxy(); //TODO: Add error parsers } Loading @@ -160,7 +181,8 @@ public class VDTConsoleRunner{ processErr=runner.run(runConfig, "ERR for "+iCons.getName(), launch, null); //monitor); null, //monitor); stderrParserIndex); stderrStreamProxy= processErr.getStreamsProxy(); //TODO: Add error parsers } Loading Loading @@ -229,8 +251,20 @@ public class VDTConsoleRunner{ } catch (IOException e) { System.out.println("Can not write to outStream of console "+iCons.getName()); } int timeout=buildParamsItem.getTimeout(); if ((timeout==0) && (buildParamsItem.getPrompt()==null)) timeout=1;// should specify at least one of timeout or prompt if (timeout>0){ System.out.println("Setting timeout "+timeout); final int fTimeout = timeout; new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println(">>Timeout<<"); finishConsolescript(); } }, fTimeout*1000); } return iCons; } Loading
src/com/elphel/vdt/core/launching/VDTRunner.java +32 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import org.eclipse.debug.internal.ui.views.console.ProcessConsole; //import org.eclipse.core.resources.IProject; Loading @@ -36,6 +38,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; Loading Loading @@ -78,6 +81,8 @@ import com.elphel.vdt.veditor.preference.PreferenceStrings; //import com.elphel.vdt.core.Utils; import org.eclipse.ui.console.IConsoleListener; Loading Loading @@ -137,7 +142,9 @@ public class VDTRunner { // renderProcessLabel(runConfig.getToolName()), // toolname + (date) runConfig.getOriginalConsoleName(), launch, monitor); monitor, numItem ); //Andrey: if there is a single item - launch asynchronously, if more - verify queue is empty // will not change Loading @@ -148,6 +155,8 @@ public class VDTRunner { runningBuilds.removeConfiguration(consoleName); return; } if (numItem<(argumentsItemsArray.length-1)){ // Not for the last // IConsoleManager man = ConsolePlugin.getDefault().getConsoleManager(); // debugging // IConsole[] consoles=(IConsole[]) man.getConsoles(); Loading Loading @@ -191,6 +200,23 @@ public class VDTRunner { iCons.firePropertyChange(fiCons,"org.eclipse.jface.text", consoleName, fConsoleName); } System.out.println("return - waiting to be awaken"); int timeout=argumentsItemsArray[numItem].getTimeout(); if (timeout>0){ final int fTimeout = timeout; final IProcess fProcess=process; new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println(">>Timeout<<"); try { fProcess.terminate(); } catch (DebugException e) { System.out.println("Failed to terminate preocess on "+fConsoleName); } } }, fTimeout*1000); } return; } Loading Loading @@ -257,13 +283,14 @@ public class VDTRunner { , String consoleLabel , ILaunch launch , IProgressMonitor monitor , int numItem ) throws CoreException { if (monitor == null) { monitor = new NullProgressMonitor(); } int numItem=configuration.getBuildStep(); // BuildParamsItem buildParamsItem= VDTLaunchUtil.getArguments(configuration.getConfiguration())[numItem]; // int numItem=configuration.getBuildStep(); BuildParamsItem buildParamsItem = configuration.getArgumentsItemsArray()[numItem]; // uses already calculated String patternErrors= combinePatterns(buildParamsItem.getErrors(), configuration.getPatternErrors()) ; String patternWarnings=combinePatterns(buildParamsItem.getWarnings(),configuration.getPatternWarnings()) ; Loading
src/com/elphel/vdt/core/tools/config/xml/CommandLinesNodeReader.java +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class CommandLinesNodeReader extends AbstractConditionNodeReader { String stderr = XMLConfig.getAttributeValue(node, XMLConfig.CONTEXT_LINEBLOCK_STDERR_ATTR); String stdout = XMLConfig.getAttributeValue(node, XMLConfig.CONTEXT_LINEBLOCK_STDOUT_ATTR); String timeout = XMLConfig.getAttributeValue(node, XMLConfig.CONTEXT_LINEBLOCK_TIMEOUT_ATTR); if(name == null) throw new ConfigException("Unnamed lines block definition in context '" + Loading @@ -92,6 +93,7 @@ public class CommandLinesNodeReader extends AbstractConditionNodeReader { interrupt, stderr, stdout, timeout, lines, deleteLines, insertLines); Loading
src/com/elphel/vdt/core/tools/config/xml/XMLConfig.java +1 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class XMLConfig extends Config { static final String CONTEXT_LINEBLOCK_INTERRUPT_ATTR ="interrupt"; static final String CONTEXT_LINEBLOCK_STDERR_ATTR = "stderr"; static final String CONTEXT_LINEBLOCK_STDOUT_ATTR = "stdout"; static final String CONTEXT_LINEBLOCK_TIMEOUT_ATTR = "timeout"; static final String CONTEXT_STRINGS_DELETE_TAG = "delete"; static final String CONTEXT_STRINGS_INSERT_TAG = "insert"; Loading