uima-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jo...@apache.org
Subject svn commit: r1152804 [6/15] - in /uima/sandbox/trunk/TextMarker: org.apache.uima.tm.dltk.debug.ui/ org.apache.uima.tm.dltk.debug.ui/META-INF/ org.apache.uima.tm.dltk.debug.ui/bin/ org.apache.uima.tm.dltk.debug.ui/icons/ org.apache.uima.tm.dltk.debug.ui...
Date Mon, 01 Aug 2011 14:38:36 GMT
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/TextMarkerInterpreterRunner.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/TextMarkerInterpreterRunner.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/TextMarkerInterpreterRunner.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/TextMarkerInterpreterRunner.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,349 @@
+package org.apache.uima.tm.dltk.textmarker.internal.launching;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Handler;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.impl.XmiCasDeserializer;
+import org.apache.uima.cas.impl.XmiCasSerializer;
+import org.apache.uima.resource.ResourceManager;
+import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.tm.dltk.internal.core.builder.TextMarkerProjectUtils;
+import org.apache.uima.tm.dltk.textmarker.launching.IConfigurableRunner;
+import org.apache.uima.tm.dltk.textmarker.launching.ITextMarkerInterpreterRunnerConfig;
+import org.apache.uima.tm.dltk.textmarker.launching.TextMarkerLaunchConfigurationConstants;
+import org.apache.uima.tm.dltk.textmarker.launching.TextMarkerLaunchingPlugin;
+import org.apache.uima.tm.textmarker.action.LogAction;
+import org.apache.uima.tm.textmarker.engine.TextMarkerEngine;
+import org.apache.uima.util.FileUtils;
+import org.apache.uima.util.XMLInputSource;
+import org.apache.uima.util.XMLSerializer;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+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.ILaunch;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IScriptProject;
+import org.eclipse.dltk.launching.AbstractInterpreterRunner;
+import org.eclipse.dltk.launching.AbstractScriptLaunchConfigurationDelegate;
+import org.eclipse.dltk.launching.IInterpreterInstall;
+import org.eclipse.dltk.launching.InterpreterConfig;
+import org.eclipse.dltk.launching.ScriptLaunchConfigurationConstants;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jdt.launching.VMRunnerConfiguration;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsoleManager;
+import org.eclipse.ui.console.MessageConsole;
+import org.eclipse.ui.console.MessageConsoleStream;
+import org.xml.sax.SAXException;
+
+
+public class TextMarkerInterpreterRunner extends AbstractInterpreterRunner implements
+        IConfigurableRunner {
+
+  public static final ITextMarkerInterpreterRunnerConfig DEFAULT_CONFIG = new ITextMarkerInterpreterRunnerConfig() {
+
+    public void adjustRunnerConfiguration(VMRunnerConfiguration vconfig, InterpreterConfig iconfig,
+            ILaunch launch, IJavaProject project) {
+      System.out.println("adjust runner");
+    }
+
+    public String[] computeClassPath(InterpreterConfig config, ILaunch launch, IJavaProject project)
+            throws Exception {
+      return TextMarkerInterpreterRunner.getClassPath(project);
+    }
+
+    public String[] getProgramArguments(InterpreterConfig config, ILaunch launch,
+            IJavaProject project) {
+      return new String[0];
+    }
+
+    public String getRunnerClassName(InterpreterConfig config, ILaunch launch, IJavaProject project) {
+      return "TextMarkerRunner";
+    }
+
+  };
+
+  private ITextMarkerInterpreterRunnerConfig config = DEFAULT_CONFIG;
+
+  @Override
+  public void run(InterpreterConfig config, ILaunch launch, IProgressMonitor monitor)
+          throws CoreException {
+    doRunImpl(config, launch, this.config, monitor);
+  }
+
+  private static Handler initConsoleLink(String module) {
+    final MessageConsole console;
+    final MessageConsoleStream out;
+    console = findConsole(module);
+    out = console.newMessageStream();
+
+    Handler handler = new Handler() {
+
+      @Override
+      public void publish(LogRecord record) {
+        String message = record.getMessage();
+        if (message.equals("\\n")) {
+          out.println();
+        }
+        String[] split = message.split("\\\\n");
+        for (String string : split) {
+          out.println(string);
+        }
+        console.activate();
+      }
+
+      @Override
+      public void flush() {
+
+      }
+
+      @Override
+      public void close() throws SecurityException {
+
+      }
+    };
+    Logger.getLogger(LogAction.LOGGER_NAME).addHandler(handler);
+    return handler;
+  }
+
+  private static void clearConsoleLink(Handler handler) {
+    Logger.getLogger(LogAction.LOGGER_NAME).removeHandler(handler);
+  }
+
+  private static MessageConsole findConsole(String name) {
+    ConsolePlugin plugin = ConsolePlugin.getDefault();
+    IConsoleManager conMan = plugin.getConsoleManager();
+    IConsole[] existing = conMan.getConsoles();
+    for (int i = 0; i < existing.length; i++)
+      if (name.equals(existing[i].getName()))
+        return (MessageConsole) existing[i];
+    MessageConsole myConsole = new MessageConsole(name, null);
+    conMan.addConsoles(new IConsole[] { myConsole });
+    return myConsole;
+  }
+
+  public static List<File> getFiles(File dir, boolean recusive) {
+    List<File> result = new ArrayList<File>();
+    for (File each : dir.listFiles()) {
+      // TODO: find a solution for this hotfix
+      if (each.getName().endsWith(".svn")) {
+        continue;
+      }
+      result.add(each);
+      if (each.isDirectory() && recusive) {
+        result.addAll(getFiles(each, recusive));
+      }
+    }
+    return result;
+  }
+
+  public static void doRunImpl(InterpreterConfig config, ILaunch launch,
+          ITextMarkerInterpreterRunnerConfig iconfig, IProgressMonitor monitor)
+          throws CoreException {
+    String launchMode = launch.getLaunchMode();
+    IScriptProject proj = AbstractScriptLaunchConfigurationDelegate.getScriptProject(launch
+            .getLaunchConfiguration());
+
+    IPath projectPath = proj.getResource().getLocation();
+    IPath inputDirPath = projectPath.append(TextMarkerProjectUtils.getDefaultInputLocation());
+    IPath outputDirPath = projectPath.append(TextMarkerProjectUtils.getDefaultOutputLocation());
+    String engine = TextMarkerProjectUtils.getEngineDescriptorPath(config.getScriptFilePath(),
+            proj.getProject()).toPortableString();
+    IPath rootPath = TextMarkerProjectUtils.getDescriptorRootPath(proj.getProject());
+
+    File inputDir = inputDirPath.makeAbsolute().toFile();
+    File outputDir = outputDirPath.makeAbsolute().toFile();
+
+    List<File> inputFiles = getFiles(inputDir, false);
+
+    int ticks = (inputFiles.size() * 2) + 1;
+    SubProgressMonitor mon = new SubProgressMonitor(monitor, ticks);
+
+    mon.setTaskName("Initializing");
+    Handler handler = initConsoleLink(config.getScriptFilePath().lastSegment());
+
+    CAS cas = null;
+
+    AnalysisEngine ae = null;
+    try {
+      File specFile = new File(engine);
+      XMLInputSource in = new XMLInputSource(specFile);
+      ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+      ResourceManager resMgr = UIMAFramework.newDefaultResourceManager();
+      resMgr.setDataPath(rootPath.toPortableString());
+      ae = UIMAFramework.produceAnalysisEngine(specifier, resMgr, null);
+    } catch (Exception e) {
+      String message = e.getMessage();
+      DLTKCore.error(message, e);
+      clearConsoleLink(handler);
+      throw new CoreException(new Status(IStatus.ERROR, TextMarkerLaunchingPlugin.PLUGIN_ID,
+              ScriptLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e));
+    }
+
+    AnalysisEngine mae = null;
+    try {
+      // modifier
+      IPath modifierPath = rootPath.append("Modifier.xml");
+      File modifierFile = new File(modifierPath.toPortableString());
+      if (modifierFile.exists()) {
+        XMLInputSource min = new XMLInputSource(modifierFile);
+        ResourceSpecifier mspecifier = UIMAFramework.getXMLParser().parseResourceSpecifier(min);
+        mae = UIMAFramework.produceAnalysisEngine(mspecifier);
+        String sml = (String) ae.getConfigParameterValue(TextMarkerEngine.STYLE_MAP);
+        mae.setConfigParameterValue(TextMarkerEngine.STYLE_MAP, sml);
+        mae.setConfigParameterValue(TextMarkerEngine.DESCRIPTOR_PATHS, ae
+                .getConfigParameterValue(TextMarkerEngine.DESCRIPTOR_PATHS));
+        mae.reconfigure();
+      }
+    } catch (Exception e) {
+      String message = e.getMessage();
+      DLTKCore.error(message, e);
+      clearConsoleLink(handler);
+      throw new CoreException(new Status(IStatus.ERROR, TextMarkerLaunchingPlugin.PLUGIN_ID,
+              ScriptLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e));
+    }
+    try {
+      if ("debug".equals(launchMode)) {
+        ae.setConfigParameterValue(TextMarkerEngine.CREATE_DEBUG_INFO, true);
+        ae.setConfigParameterValue(TextMarkerEngine.CREATE_MATCH_DEBUG_INFO, true);
+        ae.setConfigParameterValue(TextMarkerEngine.CREATE_PROFILING_INFO, true);
+        ae.setConfigParameterValue(TextMarkerEngine.CREATE_STATISTIC_INFO, true);
+        ae.reconfigure();
+      }
+    } catch (Exception e) {
+      clearConsoleLink(handler);
+      String message = e.getMessage();
+      DLTKCore.error(message, e);
+      throw new CoreException(new Status(IStatus.ERROR, TextMarkerLaunchingPlugin.PLUGIN_ID,
+              ScriptLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e));
+    }
+    mon.worked(1);
+    for (File each : inputFiles) {
+
+      mon.setTaskName("Processing " + each.getName());
+      try {
+        if (cas == null) {
+          cas = ae.newCAS();
+        } else {
+          cas.reset();
+        }
+        if (each.getName().endsWith("xmi")) {
+          XmiCasDeserializer.deserialize(new FileInputStream(each), cas, true);
+        } else {
+          cas.setDocumentText(getText(each));
+        }
+        TextMarkerEngine.removeSourceDocumentInformation(cas);
+        TextMarkerEngine.addSourceDocumentInformation(cas, each);
+
+        ae.process(cas);
+        if (mae != null) {
+          mae.process(cas);
+        }
+        mon.worked(1);
+        File outputFile = new File(outputDir, each.getName() + ".xmi");
+        mon.setTaskName("Saving " + outputFile.getName());
+        writeXmi(cas, outputFile);
+        if (mae != null) {
+          CAS modifiedCas = cas.getView(TextMarkerEngine.MODIFIED_SOFA);
+          String documentText = modifiedCas.getDocumentText();
+          if (documentText != null) {
+            FileUtils.saveString2File(documentText, new File(outputDir, each.getName()
+                    + ".modified.html"));
+          }
+        }
+        mon.worked(1);
+      } catch (Exception e) {
+        if (cas != null) {
+          cas.release();
+        }
+        clearConsoleLink(handler);
+        String message = e.getMessage();
+        DLTKCore.error(message, e);
+        throw new CoreException(new Status(IStatus.ERROR, TextMarkerLaunchingPlugin.PLUGIN_ID,
+                ScriptLaunchConfigurationConstants.ERR_INTERNAL_ERROR, message, e));
+      }
+    }
+    if (outputDir.listFiles().length == 1) {
+      // show it...?
+    }
+    if (cas != null) {
+      cas.release();
+    }
+
+    IFolder folder = proj.getProject().getFolder(TextMarkerProjectUtils.getDefaultOutputLocation());
+    folder.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+    clearConsoleLink(handler);
+    mon.done();
+  }
+
+  private static String getText(File each) {
+    try {
+      return org.apache.uima.pear.util.FileUtil.loadTextFile(each, "UTF-8");
+    } catch (IOException e) {
+      DLTKCore.error(e.getMessage(), e);
+    }
+    return "";
+  }
+
+  private static void writeXmi(CAS aCas, File name) throws IOException, SAXException {
+    FileOutputStream out = null;
+
+    try {
+      // write XMI
+      out = new FileOutputStream(name);
+      XmiCasSerializer ser = new XmiCasSerializer(aCas.getTypeSystem());
+      XMLSerializer xmlSer = new XMLSerializer(out, false);
+      ser.serialize(aCas, xmlSer.getContentHandler());
+    } finally {
+      if (out != null) {
+        out.close();
+      }
+    }
+  }
+
+  public static String[] getClassPath(IJavaProject myJavaProject) {
+    String[] newClassPath = new String[0];// classPath.length + 2];
+    return newClassPath;
+  }
+
+  protected static String[] computeBaseClassPath(IJavaProject myJavaProject) throws CoreException {
+    if (!myJavaProject.exists())
+      return new String[0];
+    return JavaRuntime.computeDefaultRuntimeClassPath(myJavaProject);
+  }
+
+  protected String constructProgramString(InterpreterConfig config) {
+    return "";
+  }
+
+  public TextMarkerInterpreterRunner(IInterpreterInstall install) {
+    super(install);
+  }
+
+  @Override
+  protected String getProcessType() {
+    return TextMarkerLaunchConfigurationConstants.ID_TM_PROCESS_TYPE;
+  }
+
+  public void setRunnerConfig(ITextMarkerInterpreterRunnerConfig config) {
+    this.config = config;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/TextMarkerInterpreterRunner.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/TextMarkerInterpreterRunner.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/builtins.tm
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/builtins.tm?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/builtins.tm (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/builtins.tm Mon Aug  1 14:37:34 2011
@@ -0,0 +1 @@
+PACKAGE org.apache.uima.tm;
\ No newline at end of file

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/internal/launching/builtins.tm
------------------------------------------------------------------------------
    svn:executable = *

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/IConfigurableRunner.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/IConfigurableRunner.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/IConfigurableRunner.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/IConfigurableRunner.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,6 @@
+package org.apache.uima.tm.dltk.textmarker.launching;
+
+public interface IConfigurableRunner {
+
+  public void setRunnerConfig(ITextMarkerInterpreterRunnerConfig config);
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/IConfigurableRunner.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/IConfigurableRunner.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/ITextMarkerInterpreterRunnerConfig.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/ITextMarkerInterpreterRunnerConfig.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/ITextMarkerInterpreterRunnerConfig.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/ITextMarkerInterpreterRunnerConfig.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,19 @@
+package org.apache.uima.tm.dltk.textmarker.launching;
+
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.dltk.launching.InterpreterConfig;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.launching.VMRunnerConfiguration;
+
+public interface ITextMarkerInterpreterRunnerConfig {
+
+  public String getRunnerClassName(InterpreterConfig config, ILaunch launch, IJavaProject project);
+
+  public String[] computeClassPath(InterpreterConfig config, ILaunch launch, IJavaProject project)
+          throws Exception;
+
+  public String[] getProgramArguments(InterpreterConfig config, ILaunch launch, IJavaProject project);
+
+  public void adjustRunnerConfiguration(VMRunnerConfiguration vconfig, InterpreterConfig iconfig,
+          ILaunch launch, IJavaProject project);
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/ITextMarkerInterpreterRunnerConfig.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/ITextMarkerInterpreterRunnerConfig.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerDebuggingEngineSelector.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerDebuggingEngineSelector.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerDebuggingEngineSelector.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerDebuggingEngineSelector.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,16 @@
+package org.apache.uima.tm.dltk.textmarker.launching;
+
+import org.apache.uima.tm.dltk.internal.debug.TextMarkerDebugConstants;
+import org.apache.uima.tm.dltk.internal.debug.TextMarkerDebugPlugin;
+import org.eclipse.dltk.core.DLTKIdContributionSelector;
+import org.eclipse.dltk.core.PreferencesLookupDelegate;
+
+
+public class TextMarkerDebuggingEngineSelector extends DLTKIdContributionSelector {
+  @Override
+  protected String getSavedContributionId(PreferencesLookupDelegate delegate) {
+    return delegate.getString(TextMarkerDebugPlugin.PLUGIN_ID,
+            TextMarkerDebugConstants.DEBUGGING_ENGINE_ID_KEY);
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerDebuggingEngineSelector.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerDebuggingEngineSelector.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationConstants.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationConstants.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationConstants.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationConstants.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,13 @@
+package org.apache.uima.tm.dltk.textmarker.launching;
+
+import org.eclipse.dltk.launching.ScriptLaunchConfigurationConstants;
+
+public class TextMarkerLaunchConfigurationConstants extends ScriptLaunchConfigurationConstants {
+  protected TextMarkerLaunchConfigurationConstants() {
+
+  }
+
+  public static final String ID_TM_SCRIPT = "org.apache.uima.tm.dltk.launching.TextMarkerLaunchConfigurationType"; //$NON-NLS-1$
+
+  public static final String ID_TM_PROCESS_TYPE = "textmarkerInterpreter"; //$NON-NLS-1$
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationConstants.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationConstants.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationDelegate.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationDelegate.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationDelegate.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,37 @@
+package org.apache.uima.tm.dltk.textmarker.launching;
+
+import org.apache.uima.tm.dltk.core.TextMarkerNature;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.dltk.launching.AbstractScriptLaunchConfigurationDelegate;
+import org.eclipse.dltk.launching.IInterpreterRunner;
+import org.eclipse.dltk.launching.InterpreterConfig;
+
+
+public class TextMarkerLaunchConfigurationDelegate extends
+        AbstractScriptLaunchConfigurationDelegate {
+
+  @Override
+  protected void runRunner(ILaunchConfiguration configuration, IInterpreterRunner runner,
+          InterpreterConfig config, ILaunch launch, IProgressMonitor monitor) throws CoreException {
+    if (runner instanceof IConfigurableRunner) {
+      ITextMarkerInterpreterRunnerConfig runnerConfig = getConfig();
+      if (runnerConfig != null) {
+        IConfigurableRunner rc = (IConfigurableRunner) runner;
+        rc.setRunnerConfig(runnerConfig);
+      }
+    }
+    runner.run(config, launch, monitor);
+  }
+
+  public ITextMarkerInterpreterRunnerConfig getConfig() {
+    return null;
+  }
+
+  @Override
+  public String getLanguageId() {
+    return TextMarkerNature.NATURE_ID;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationDelegate.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchConfigurationDelegate.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchingPlugin.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchingPlugin.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchingPlugin.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchingPlugin.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,49 @@
+package org.apache.uima.tm.dltk.textmarker.launching;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.dltk.core.environment.IDeployment;
+import org.eclipse.dltk.core.environment.IExecutionEnvironment;
+import org.eclipse.dltk.core.environment.IFileHandle;
+import org.osgi.framework.BundleContext;
+
+public class TextMarkerLaunchingPlugin extends Plugin {
+
+  public static final String PLUGIN_ID = "org.apache.uima.tm.dltk.launching";
+
+  private static TextMarkerLaunchingPlugin plugin;
+
+  public TextMarkerLaunchingPlugin() {
+    plugin = this;
+  }
+
+  @Override
+  public void start(BundleContext context) throws Exception {
+    super.start(context);
+  }
+
+  @Override
+  public void stop(BundleContext context) throws Exception {
+    plugin = null;
+    super.stop(context);
+  }
+
+  public static TextMarkerLaunchingPlugin getDefault() {
+    return plugin;
+  }
+
+  public static String getUniqueIdentifier() {
+    return PLUGIN_ID;
+  }
+
+  public IFileHandle getConsoleProxy(IExecutionEnvironment exeEnv) throws IOException {
+    IDeployment deployment = exeEnv.createDeployment();
+    IPath path = deployment.add(this.getBundle(), "console");
+    path.append("ConsoleProxy.js");
+    return deployment.getFile(path);
+
+  }
+
+}
\ No newline at end of file

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchingPlugin.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.launching/src/main/java/org/apache/uima/tm/dltk/textmarker/launching/TextMarkerLaunchingPlugin.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug  1 14:37:34 2011
@@ -0,0 +1 @@
+.settings

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.classpath
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.classpath?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.classpath (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.classpath Mon Aug  1 14:37:34 2011
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.project
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.project?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.project (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.project Mon Aug  1 14:37:34 2011
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.apache.uima.tm.dltk.testing</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/META-INF/MANIFEST.MF?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/META-INF/MANIFEST.MF (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/META-INF/MANIFEST.MF Mon Aug  1 14:37:34 2011
@@ -0,0 +1,34 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: TextMarker DLTK Testing Plugin
+Bundle-SymbolicName: org.apache.uima.tm.dltk.testing;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.views,
+ org.eclipse.dltk.testing;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.debug.core,
+ org.eclipse.debug.ui,
+ org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.expressions,
+ org.eclipse.core.variables,
+ org.eclipse.dltk.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.dltk.debug;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.dltk.debug.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.dltk.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.dltk.launching;bundle-version="[1.0.0,2.0.0)",
+ org.apache.uima.tm.dltk.core,
+ org.eclipse.ui.ide,
+ org.apache.uima.tm.dltk.debug,
+ org.apache.uima.tm.dltk.debug.ui,
+ org.apache.uima.tm.dltk.launching,
+ org.eclipse.ui.console,
+ org.eclipse.jface.text,
+ org.apache.uima.tm.dltk.antlr,
+ org.apache.uima.tm.textmarker.engine
+Bundle-Activator: org.apache.uima.tm.dltk.internal.testing.TextMarkerTestingPlugin
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: University of Würzburg

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/META-INF/MANIFEST.MF
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/META-INF/MANIFEST.MF
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/build.properties
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/build.properties?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/build.properties (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/build.properties Mon Aug  1 14:37:34 2011
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/,\
+               plugin.properties

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/build.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/build.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterr.gif
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterr.gif?rev=1152804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterr.gif
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterr.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterrq.gif
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterrq.gif?rev=1152804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterrq.gif
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xuniterrq.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsucc.gif
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsucc.gif?rev=1152804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsucc.gif
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsucc.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsuccq.gif
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsuccq.gif?rev=1152804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsuccq.gif
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/eview16/xunitsuccq.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/obj16/textmarker.png
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/obj16/textmarker.png?rev=1152804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/obj16/textmarker.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/icons/full/obj16/textmarker.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.properties
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.properties?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.properties (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.properties Mon Aug  1 14:37:34 2011
@@ -0,0 +1,5 @@
+pluginName=Dynamic Laguages Toolkit TextMarker testing support
+providerName=Eclipse.org
+
+TextMarkerLaunchShortcut.name = TextMarker Testing
+TextMarkerLaunchShortcut.description = TextMarker Testing
\ No newline at end of file

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.xml?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.xml (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.xml Mon Aug  1 14:37:34 2011
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+<extension-point id="tmTestEngine" name="tmTestEngine" schema="schema/tmTestEngine.exsd"/>
+   <extension
+         point="org.eclipse.debug.core.launchConfigurationTypes">
+      <launchConfigurationType
+            delegate="org.apache.uima.tm.dltk.internal.testing.TextMarkerTestingLaunchConfigurationDelegate"
+            id="org.apache.uima.tm.dltk.testing.launchConfig"
+            modes="run, debug"
+            name="TextMarker Testing"
+            public="true"
+            sourceLocatorId="tmSourceLocator"
+            sourcePathComputerId="tmSourcePathComputer">
+      </launchConfigurationType>
+   </extension>
+   <extension
+         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
+      <launchConfigurationTypeImage
+            configTypeID="org.apache.uima.tm.dltk.testing.launchConfig"
+            icon="icons/full/obj16/textmarker.png"
+            id="org.de.uniwue.dltk.textmarker.testing.launchConfigImage">
+      </launchConfigurationTypeImage>
+   </extension>
+   <extension
+         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
+      <launchConfigurationTabGroup
+            class="org.apache.uima.tm.dltk.internal.testing.TextMarkerTestingTabGroup"
+            id="org.apache.uima.tm.dltk.testing.launchConfigTabGroup"
+            type="org.apache.uima.tm.dltk.testing.launchConfig">
+         <launchMode
+               description="Run mode"
+               mode="run">
+         </launchMode>
+         <launchMode
+               mode="debug"
+               perspective="org.eclipse.debug.ui.DebugPerspective">
+         </launchMode>
+      </launchConfigurationTabGroup>
+   </extension>
+   <!--
+   <extension
+         point="org.eclipse.debug.ui.launchShortcuts">
+      <shortcut
+            class="org.apache.uima.tm.dltk.internal.testing.TextMarkerTestingLaunchShortcut"
+            description="%TextMarkerLaunchShortcut.description"
+            icon="icons/full/obj16/textmarker.png"
+            id="org.apache.uima.tm.dltk.testing.launchShortcut"
+            label="%TextMarkerLaunchShortcut.name"
+            modes="run,debug">
+         <configurationType
+               id="org.eclipse.dltk.testing.test.launchConfigurationType">
+         </configurationType>
+         <contextualLaunch>
+           <enablement>
+					<with variable="selection">
+						<count value="1" />
+						<iterate>
+							<or>
+								<test
+									args="org.apache.uima.tm.dltk.core.nature"
+									property="org.eclipse.dltk.launching.hasProjectNature" />
+							</or>
+						</iterate>
+					</with>
+				</enablement>
+				<contextLabel label="TextMarker Testing Run"
+					mode="run">
+				</contextLabel>
+				<contextLabel label="TextMarker Testing Debug"
+					mode="debug">
+				</contextLabel>
+         </contextualLaunch>
+      </shortcut>
+   </extension>
+   -->
+      <extension
+         point="org.apache.uima.tm.dltk.testing.tmTestEngine">
+      <testEngine
+            class="org.apache.uima.tm.dltk.testing.internal.test.TextMarkerTestTestingEngine"
+            id="org.apache.uima.tm.dltk.testing.test.testingEngine"
+            priority="0">
+      </testEngine>
+   </extension>
+   <extension
+         point="org.eclipse.dltk.testing.memberResolver">
+      <resolver
+            class="org.apache.uima.tm.dltk.testing.internal.test.TextMarkertestMemberResolver"
+            id="org.apache.uima.tm.dltk.testing.test.testingEngine"
+            priority="0">
+      </resolver>
+   </extension>
+</plugin>

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/plugin.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/schema/tmTestEngine.exsd
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/schema/tmTestEngine.exsd?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/schema/tmTestEngine.exsd (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/schema/tmTestEngine.exsd Mon Aug  1 14:37:34 2011
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.apache.uima.tm.dltk.testing">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.apache.uima.tm.dltk.testing" id="tmTestEngine" name="tmTestEngine"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="testEngine" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="testEngine">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn=":org.apache.uima.tm.dltk.testing.ITextMarkerTestingEngine"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="priority" type="string" use="default" value="0">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/schema/tmTestEngine.exsd
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/schema/tmTestEngine.exsd
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/scripts/tmtestEngine.tm
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/scripts/tmtestEngine.tm?rev=1152804&view=auto
==============================================================================
    (empty)

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/scripts/tmtestEngine.tm
------------------------------------------------------------------------------
    svn:executable = *

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerOutputProcessor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerOutputProcessor.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerOutputProcessor.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerOutputProcessor.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,66 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.dltk.testing.DLTKTestingPlugin;
+import org.eclipse.dltk.testing.ITestingClient;
+import org.eclipse.dltk.testing.ITestingProcessor;
+import org.eclipse.dltk.testing.model.ITestRunSession;
+
+class TextMarkerOutputProcessor implements ITestingProcessor {
+  private ILaunch launch;
+
+  public TextMarkerOutputProcessor(ILaunch launch) {
+    this.launch = launch;
+  }
+
+  public void done() {
+    client.testTerminated(0);
+  }
+
+  static int i = 0;
+
+  private ITestRunSession session;
+
+  private ITestingClient client;
+
+  public void processLine(String line) {
+
+    // System.out.println("#" + line);
+    if (line.length() == 0) {
+      return;
+    }
+    final String name = line;
+
+    int id = ++i;
+    client.testTree(id, name, false, 0);
+    client.testStarted(id, name);
+    // client.receiveMessage(MessageIds.TRACE_START);
+    // client.receiveMessage("This is Trace");
+    // client.receiveMessage(MessageIds.TRACE_END);
+    session.setTotalCount(id);
+    if (i % 3 == 0) {
+      client.testFailed(id, name);
+      client.traceMessage("This is trace");
+    } else if (i % 4 == 0) {
+      client.testError(id, name);
+      client.traceMessage("This is trace");
+    } else {
+      client.testEnded(id, name);
+    }
+    // client.receiveMessage(MessageIds.TEST_END + name + ","
+    // + name);
+
+  }
+
+  public void start() {
+    i = 0;
+    session = DLTKTestingPlugin.getTestRunSession(launch);
+    if (session == null)
+      return;
+
+    client = session.getTestRunnerClient();
+
+    client.testRunStart(100);
+
+  }
+}
\ No newline at end of file

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerOutputProcessor.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerOutputProcessor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingEngineManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingEngineManager.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingEngineManager.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingEngineManager.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,20 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import org.apache.uima.tm.dltk.testing.ITextMarkerTestingEngine;
+import org.eclipse.dltk.core.PriorityClassDLTKExtensionManager;
+import org.eclipse.dltk.core.PriorityDLTKExtensionManager.ElementInfo;
+
+
+public final class TextMarkerTestingEngineManager {
+  private static PriorityClassDLTKExtensionManager manager = new PriorityClassDLTKExtensionManager(
+          TextMarkerTestingPlugin.PLUGIN_ID + ".tmTestEngine", "id");
+
+  public static ITextMarkerTestingEngine[] getEngines() {
+    ElementInfo[] elementInfos = manager.getElementInfos();
+    ITextMarkerTestingEngine[] engines = new ITextMarkerTestingEngine[elementInfos.length];
+    for (int i = 0; i < elementInfos.length; i++) {
+      engines[i] = (ITextMarkerTestingEngine) manager.getInitObject(elementInfos[i]);
+    }
+    return engines;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingEngineManager.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingEngineManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchConfigurationDelegate.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchConfigurationDelegate.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchConfigurationDelegate.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,49 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import org.apache.uima.tm.dltk.testing.ITextMarkerTestingEngine;
+import org.apache.uima.tm.dltk.textmarker.launching.TextMarkerLaunchConfigurationDelegate;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
+import org.eclipse.dltk.compiler.util.Util;
+import org.eclipse.dltk.launching.IInterpreterRunner;
+import org.eclipse.dltk.launching.InterpreterConfig;
+import org.eclipse.dltk.testing.DLTKTestingConstants;
+import org.eclipse.dltk.testing.DLTKTestingCore;
+
+
+public class TextMarkerTestingLaunchConfigurationDelegate extends
+        TextMarkerLaunchConfigurationDelegate implements ILaunchConfigurationDelegate {
+  private ITextMarkerTestingEngine engine;
+
+  @Override
+  protected InterpreterConfig createInterpreterConfig(ILaunchConfiguration configuration,
+          ILaunch launch) throws CoreException {
+    // We need to create correct execute script for this element.
+    InterpreterConfig config = super.createInterpreterConfig(configuration, launch);
+    ITextMarkerTestingEngine[] engines = TextMarkerTestingEngineManager.getEngines();
+    String engineId = configuration.getAttribute(DLTKTestingConstants.ATTR_ENGINE_ID,
+            Util.EMPTY_STRING);
+    for (int i = 0; i < engines.length; i++) {
+      if (engines[i].getId().equals(engineId)) {
+        engines[i].correctLaunchConfiguration(config, configuration);
+        this.engine = engines[i];
+        break;
+      }
+    }
+    return config;
+  }
+
+  @Override
+  protected void runRunner(ILaunchConfiguration configuration, IInterpreterRunner runner,
+          InterpreterConfig config, ILaunch launch, IProgressMonitor monitor) throws CoreException {
+
+    if (engine != null) {
+      DLTKTestingCore.registerTestingProcessor(launch, engine.getProcessor(launch));
+    }
+
+    super.runRunner(configuration, runner, config, launch, monitor);
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchConfigurationDelegate.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchConfigurationDelegate.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchShortcut.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchShortcut.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchShortcut.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchShortcut.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,385 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.dltk.core.TextMarkerNature;
+import org.apache.uima.tm.dltk.testing.ITextMarkerTestingEngine;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.IDebugModelPresentation;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.debug.ui.ILaunchShortcut;
+import org.eclipse.dltk.core.IMethod;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IScriptProject;
+import org.eclipse.dltk.core.ISourceModule;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.internal.testing.util.ExceptionHandler;
+import org.eclipse.dltk.launching.ScriptLaunchConfigurationConstants;
+import org.eclipse.dltk.testing.DLTKTestingConstants;
+import org.eclipse.dltk.ui.DLTKUIPlugin;
+import org.eclipse.dltk.ui.ModelElementLabelProvider;
+import org.eclipse.dltk.ui.ScriptElementLabels;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
+
+
+public class TextMarkerTestingLaunchShortcut implements ILaunchShortcut {
+
+  private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+  /**
+   * Default constructor.
+   */
+  public TextMarkerTestingLaunchShortcut() {
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see de.uniwue.debug.ui.ILaunchShortcut#launch(de.uniwue.ui.IEditorPart, java.lang.String)
+   */
+  public void launch(IEditorPart editor, String mode) {
+    IModelElement element = DLTKUIPlugin.getEditorInputModelElement(editor.getEditorInput());
+    if (element != null) {
+      launch(new Object[] { element }, mode);
+    } else {
+      showNoTestsFoundDialog();
+    }
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see de.uniwue.debug.ui.ILaunchShortcut#launch(de.uniwue.jface.viewers.ISelection,
+   * java.lang.String)
+   */
+  public void launch(ISelection selection, String mode) {
+    if (selection instanceof IStructuredSelection) {
+      launch(((IStructuredSelection) selection).toArray(), mode);
+    } else {
+      showNoTestsFoundDialog();
+    }
+  }
+
+  private void launch(Object[] elements, String mode) {
+    try {
+      IModelElement elementToLaunch = null;
+
+      if (elements.length == 1) {
+        Object selected = elements[0];
+        if (selected instanceof IFolder) {
+          performLaunch((IFolder) selected, mode);
+          return;
+        }
+        if (!(selected instanceof IModelElement) && selected instanceof IAdaptable) {
+          selected = ((IAdaptable) selected).getAdapter(IModelElement.class);
+        }
+        if (selected instanceof IModelElement) {
+          IModelElement element = (IModelElement) selected;
+          switch (element.getElementType()) {
+            case IModelElement.SCRIPT_PROJECT: {
+              IProject project = ((IScriptProject) element).getProject();
+              IFolder specFolder = project.getFolder("test");
+              if (specFolder != null && specFolder.exists()) {
+                performLaunch(specFolder, mode);
+                return;
+              }
+            }
+              break;
+            case IModelElement.PROJECT_FRAGMENT:
+            case IModelElement.SCRIPT_FOLDER: {
+              performLaunch((IFolder) element.getResource(), mode);
+              return;
+            }
+            case IModelElement.SOURCE_MODULE:
+            case IModelElement.METHOD:
+              elementToLaunch = element;
+              break;
+          }
+        }
+      }
+      if (elementToLaunch == null) {
+        showNoTestsFoundDialog();
+        return;
+      }
+      performLaunch(elementToLaunch, mode);
+    } catch (InterruptedException e) {
+      // OK, silently move on
+    } catch (CoreException e) {
+      ExceptionHandler.handle(e, getShell(), "XUnit Launch",
+              "Launching of XUnit tests unexpectedly failed. Check log for details.");
+    }
+  }
+
+  private void showNoTestsFoundDialog() {
+    MessageDialog.openInformation(getShell(), "XUnit Launch", "No XUnit tests found.");
+  }
+
+  private void performLaunch(IModelElement element, String mode) throws InterruptedException,
+          CoreException {
+    ILaunchConfigurationWorkingCopy temparary = createLaunchConfiguration(element);
+    if (temparary == null) {
+      return;
+    }
+    ILaunchConfiguration config = findExistingLaunchConfiguration(temparary, mode);
+    if (config == null) {
+      // no existing found: create a new one
+      config = temparary.doSave();
+    }
+    DebugUITools.launch(config, mode);
+  }
+
+  private void performLaunch(IFolder folder, String mode) throws InterruptedException,
+          CoreException {
+    String name = folder.getName();
+    String testName = name.substring(name.lastIndexOf(IPath.SEPARATOR) + 1);
+
+    ILaunchConfigurationType configType = getLaunchManager().getLaunchConfigurationType(
+            getLaunchConfigurationTypeId());
+    ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, getLaunchManager()
+            .generateUniqueLaunchConfigurationNameFrom(testName));
+
+    wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_PROJECT_NAME, folder.getProject()
+            .getName());
+
+    // wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_TEST_NAME, EMPTY_STRING);
+    // wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_CONTAINER_PATH,
+    // folder.getFullPath().toPortableString());
+    // wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_TEST_ELEMENT_NAME, EMPTY_STRING);
+
+    ILaunchConfiguration config = findExistingLaunchConfiguration(wc, mode);
+    if (config == null) {
+      // no existing found: create a new one
+      config = wc.doSave();
+    }
+    DebugUITools.launch(config, mode);
+  }
+
+  private IType chooseType(IType[] types, String mode) throws InterruptedException {
+    ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(),
+            new ModelElementLabelProvider(ModelElementLabelProvider.SHOW_POST_QUALIFIED));
+    dialog.setElements(types);
+    dialog.setTitle("Test Selection");
+    if (mode.equals(ILaunchManager.DEBUG_MODE)) {
+      dialog.setMessage("Select Test to debug");
+    } else {
+      dialog.setMessage("Select Test to run");
+    }
+    dialog.setMultipleSelection(false);
+    if (dialog.open() == Window.OK) {
+      return (IType) dialog.getFirstResult();
+    }
+    throw new InterruptedException(); // cancelled by user
+  }
+
+  private Shell getShell() {
+    return DLTKUIPlugin.getActiveWorkbenchShell();
+  }
+
+  private ILaunchManager getLaunchManager() {
+    return DebugPlugin.getDefault().getLaunchManager();
+  }
+
+  /**
+   * Show a selection dialog that allows the user to choose one of the specified launch
+   * configurations. Return the chosen config, or <code>null</code> if the user cancelled the
+   * dialog.
+   * 
+   * @param configList
+   * @param mode
+   * @return ILaunchConfiguration
+   * @throws InterruptedException
+   */
+  private ILaunchConfiguration chooseConfiguration(List configList, String mode)
+          throws InterruptedException {
+    IDebugModelPresentation labelProvider = DebugUITools.newDebugModelPresentation();
+    ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), labelProvider);
+    dialog.setElements(configList.toArray());
+    dialog.setTitle("Select a Test Configuration");
+    if (mode.equals(ILaunchManager.DEBUG_MODE)) {
+      dialog.setMessage("Select configuration to debug");
+    } else {
+      dialog.setMessage("Select configuration to run");
+    }
+    dialog.setMultipleSelection(false);
+    int result = dialog.open();
+    if (result == Window.OK) {
+      return (ILaunchConfiguration) dialog.getFirstResult();
+    }
+    throw new InterruptedException(); // cancelled by user
+  }
+
+  /**
+   * Returns the launch configuration type id of the launch configuration this shortcut will create.
+   * Clients can override this method to return the id of their launch configuration.
+   * 
+   * @return the launch configuration type id of the launch configuration this shortcut will create
+   */
+  protected String getLaunchConfigurationTypeId() {
+    return "org.apache.uima.tm.dltk.testing.launchConfig";
+  }
+
+  /**
+   * Creates a launch configuration working copy for the given element. The launch configuration
+   * type created will be of the type returned by {@link #getLaunchConfigurationTypeId}. The element
+   * type can only be of type {@link IJavaProject}, {@link IPackageFragmentRoot},
+   * {@link IPackageFragment}, {@link IType} or {@link IMethod}.
+   * 
+   * Clients can extend this method (should call super) to configure additional attributes on the
+   * launch configuration working copy.
+   * 
+   * @return a launch configuration working copy for the given element
+   */
+  protected ILaunchConfigurationWorkingCopy createLaunchConfiguration(IModelElement element)
+          throws CoreException {
+    String testFileName;
+    String containerHandleId;
+    String testElementName;
+
+    String name = ScriptElementLabels.getDefault().getTextLabel(element,
+            ScriptElementLabels.F_FULLY_QUALIFIED);
+    String testName = name.substring(name.lastIndexOf(IPath.SEPARATOR) + 1);
+
+    switch (element.getElementType()) {
+      case IModelElement.SOURCE_MODULE: {
+        containerHandleId = EMPTY_STRING;
+        testFileName = element.getResource().getProjectRelativePath().toPortableString();
+        testElementName = EMPTY_STRING;
+      }
+        break;
+      case IModelElement.METHOD: {
+        containerHandleId = EMPTY_STRING;
+        testFileName = element.getResource().getProjectRelativePath().toPortableString();
+        testElementName = element.getElementName();
+        // testName+= "[" + testElementName + "]";
+      }
+        break;
+      default:
+        throw new IllegalArgumentException(
+                "Invalid element type to create a launch configuration: " + element.getClass().getName()); //$NON-NLS-1$
+    }
+
+    ILaunchConfigurationType configType = getLaunchManager().getLaunchConfigurationType(
+            getLaunchConfigurationTypeId());
+    ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, getLaunchManager()
+            .generateUniqueLaunchConfigurationNameFrom(testName));
+
+    wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_PROJECT_NAME, element
+            .getScriptProject().getElementName());
+    // wc.setAttribute(ITestKind.LAUNCH_ATTR_TEST_KIND, "#");
+    wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_MAIN_SCRIPT_NAME, testFileName);
+    wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_SCRIPT_NATURE,
+            TextMarkerNature.NATURE_ID);
+    wc.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, "true");
+    // wc.setAttribute(XUnitLaunchConfigurationConstants.ATTR_TEST_NAME, testFileName);
+    // wc.setAttribute(ScriptLaunchConfigurationConstants.ATTR_CONTAINER_PATH, containerHandleId);
+    // wc.setAttribute(XUnitLaunchConfigurationConstants.ATTR_TEST_ELEMENT_NAME, testElementName);
+    // XUnitMigrationDelegate.mapResources(wc);
+    ITextMarkerTestingEngine[] engines = TextMarkerTestingEngineManager.getEngines();
+    ISourceModule module = (ISourceModule) element.getAncestor(IModelElement.SOURCE_MODULE);
+    boolean engineFound = false;
+    for (int i = 0; i < engines.length; i++) {
+      if (engines[i].isValidModule(module)) {// TODO!!!
+        wc.setAttribute(DLTKTestingConstants.ATTR_ENGINE_ID, engines[i].getId());
+        engineFound = true;
+        break;
+      }
+    }
+    // if( engineFound == false ) {
+    // return null;
+    // }
+
+    return wc;
+  }
+
+  /**
+   * Returns the attribute names of the attributes that are compared when looking for an existing
+   * similar launch configuration. Clients can override and replace to customize.
+   * 
+   * @return the attribute names of the attributes that are compared
+   */
+  protected String[] getAttributeNamesToCompare() {
+    return new String[] { ScriptLaunchConfigurationConstants.ATTR_PROJECT_NAME,
+        ScriptLaunchConfigurationConstants.ATTR_MAIN_SCRIPT_NAME,
+        // IDLTKTestingConstants.ENGINE_ID_ATR,
+        ScriptLaunchConfigurationConstants.ATTR_SCRIPT_NATURE
+    // XUnitLaunchConfigurationConstants.ATTR_TEST_NAME,
+    // XUnitLaunchConfigurationConstants.ATTR_TEST_CONTAINER,
+    // XUnitLaunchConfigurationConstants.ATTR_TEST_ELEMENT_NAME
+    };
+  }
+
+  private static boolean hasSameAttributes(ILaunchConfiguration config1,
+          ILaunchConfiguration config2, String[] attributeToCompare) {
+    try {
+      for (int i = 0; i < attributeToCompare.length; i++) {
+        String val1 = config1.getAttribute(attributeToCompare[i], EMPTY_STRING);
+        String val2 = config2.getAttribute(attributeToCompare[i], EMPTY_STRING);
+        if (!val1.equals(val2)) {
+          return false;
+        }
+      }
+      return true;
+    } catch (CoreException e) {
+      // ignore access problems here, return false
+    }
+    return false;
+  }
+
+  private ILaunchConfiguration findExistingLaunchConfiguration(
+          ILaunchConfigurationWorkingCopy temporary, String mode) throws InterruptedException,
+          CoreException {
+    ILaunchConfigurationType configType = temporary.getType();
+
+    ILaunchConfiguration[] configs = getLaunchManager().getLaunchConfigurations(configType);
+    String[] attributeToCompare = getAttributeNamesToCompare();
+
+    ArrayList candidateConfigs = new ArrayList(configs.length);
+    for (int i = 0; i < configs.length; i++) {
+      ILaunchConfiguration config = configs[i];
+      if (hasSameAttributes(config, temporary, attributeToCompare)) {
+        candidateConfigs.add(config);
+      }
+    }
+
+    // If there are no existing configs associated with the IType, create
+    // one.
+    // If there is exactly one config associated with the IType, return it.
+    // Otherwise, if there is more than one config associated with the
+    // IType, prompt the
+    // user to choose one.
+    int candidateCount = candidateConfigs.size();
+    if (candidateCount == 0) {
+      return null;
+    } else if (candidateCount == 1) {
+      return (ILaunchConfiguration) candidateConfigs.get(0);
+    } else {
+      // Prompt the user to choose a config. A null result means the user
+      // cancelled the dialog, in which case this method returns null,
+      // since cancelling the dialog should also cancel launching
+      // anything.
+      ILaunchConfiguration config = chooseConfiguration(candidateConfigs, mode);
+      if (config != null) {
+        return config;
+      }
+    }
+    return null;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchShortcut.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingLaunchShortcut.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingMainLaunchConfigurationTab.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingMainLaunchConfigurationTab.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingMainLaunchConfigurationTab.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingMainLaunchConfigurationTab.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,159 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.uima.tm.dltk.internal.debug.ui.launchConfigurations.TextMarkerMainLaunchConfigurationTab;
+import org.apache.uima.tm.dltk.testing.ITextMarkerTestingEngine;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.ISourceModule;
+import org.eclipse.dltk.debug.ui.messages.DLTKLaunchConfigurationsMessages;
+import org.eclipse.dltk.testing.DLTKTestingConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+
+
+public class TextMarkerTestingMainLaunchConfigurationTab extends
+        TextMarkerMainLaunchConfigurationTab {
+  public TextMarkerTestingMainLaunchConfigurationTab(String mode) {
+    super(mode);
+  }
+
+  private Button detect;
+
+  private Combo engineType;
+
+  private Map nameToId = new HashMap();
+
+  @Override
+  protected void doCreateControl(Composite composite) {
+    createMainModuleEditor(composite, DLTKLaunchConfigurationsMessages.mainTab_mainModule);
+    createVerticalSpacer(composite, 1);
+    createTestEngineEditor(composite, "TextMarker Testing engine");
+
+  }
+
+  protected void createTestEngineEditor(Composite parent, String text) {
+    Font font = parent.getFont();
+    Group mainGroup = new Group(parent, SWT.NONE);
+    mainGroup.setText(text);
+    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+    mainGroup.setLayoutData(gd);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    mainGroup.setLayout(layout);
+    mainGroup.setFont(font);
+    engineType = new Combo(mainGroup, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN);
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    engineType.setLayoutData(gd);
+    engineType.setFont(font);
+    engineType.addModifyListener(new ModifyListener() {
+      public void modifyText(ModifyEvent e) {
+        updateLaunchConfigurationDialog();
+      }
+    });
+    detect = createPushButton(mainGroup, "Detect", null);
+
+    ITextMarkerTestingEngine[] engines = TextMarkerTestingEngineManager.getEngines();
+    for (int i = 0; i < engines.length; i++) {
+      String name = engines[i].getName();
+      this.engineType.add(name);
+      nameToId.put(name, engines[i].getId());
+    }
+    detect.addSelectionListener(new SelectionAdapter() {
+      @Override
+      public void widgetSelected(SelectionEvent e) {
+        handleDetectButtonSelected();
+      }
+    });
+    handleDetectButtonSelected();
+  }
+
+  private void handleDetectButtonSelected() {
+    ITextMarkerTestingEngine[] engines = TextMarkerTestingEngineManager.getEngines();
+    // this.engineType.select(0);
+    ISourceModule module = getSourceModule();
+    if (module != null && module.exists()) {
+      for (int i = 0; i < engines.length; i++) {
+        if (engines[i].isValidModule(module)) {
+          this.engineType.select(i);
+        }
+      }
+    }
+  }
+
+  // private ISourceModule getSourceModule() {
+  // IScriptProject project = this.getProject();
+  // if (project == null) {
+  // return null;
+  // }
+  // IProject prj = project.getProject();
+  // String scriptName = this.getScriptName();
+  // ISourceModule module = null;
+  // IResource res = prj.getFile(scriptName);
+  // module = (ISourceModule) DLTKCore.create(res);
+  // return module;
+  // }
+  private boolean validateEngine() {
+    ISourceModule module = getSourceModule();
+    if (module != null) {
+      ITextMarkerTestingEngine[] engines = TextMarkerTestingEngineManager.getEngines();
+      for (int i = 0; i < engines.length; i++) {
+        String selectedEngine = this.getEngineId();
+        if (engines[i].getId().equals(selectedEngine) && engines[i].isValidModule(module)) {
+          return true;
+        }
+      }
+    }
+    setErrorMessage("Testing engine not support specified script");
+    return true;
+  }
+
+  @Override
+  protected void doPerformApply(ILaunchConfigurationWorkingCopy config) {
+    super.doPerformApply(config);
+    config.setAttribute(DLTKTestingConstants.ATTR_ENGINE_ID, getEngineId());
+  }
+
+  private String getEngineId() {
+    return (String) this.nameToId.get(this.engineType.getText());
+  }
+
+  @Override
+  protected void doInitializeForm(ILaunchConfiguration config) {
+    super.doInitializeForm(config);
+    ITextMarkerTestingEngine[] engines = TextMarkerTestingEngineManager.getEngines();
+    String id = null;
+    try {
+      id = config.getAttribute(DLTKTestingConstants.ATTR_ENGINE_ID, "");
+    } catch (CoreException e) {
+      if (DLTKCore.DEBUG) {
+        e.printStackTrace();
+      }
+    }
+    if (id == null || id.length() == 0) {
+      handleDetectButtonSelected();
+    } else {
+      // this.engineType.select(0);
+      for (int i = 0; i < engines.length; i++) {
+        if (engines[i].getId().equals(id)) {
+          this.engineType.select(i);
+        }
+      }
+    }
+    // handleDetectButtonSelected();
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingMainLaunchConfigurationTab.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingMainLaunchConfigurationTab.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingPlugin.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingPlugin.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingPlugin.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingPlugin.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,41 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+public class TextMarkerTestingPlugin extends AbstractUIPlugin {
+
+  public static final String PLUGIN_ID = "org.apache.uima.tm.dltk.testing";
+
+  private static TextMarkerTestingPlugin plugin;
+
+  public TextMarkerTestingPlugin() {
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see de.uniwue.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+   */
+  @Override
+  public void start(BundleContext context) throws Exception {
+    super.start(context);
+    plugin = this;
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see de.uniwue.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+   */
+  @Override
+  public void stop(BundleContext context) throws Exception {
+    plugin = null;
+    super.stop(context);
+  }
+
+  public static TextMarkerTestingPlugin getDefault() {
+    return plugin;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingPlugin.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingPlugin.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingTabGroup.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingTabGroup.java?rev=1152804&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingTabGroup.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingTabGroup.java Mon Aug  1 14:37:34 2011
@@ -0,0 +1,31 @@
+package org.apache.uima.tm.dltk.internal.testing;
+
+import org.apache.uima.tm.dltk.internal.debug.ui.interpreters.TextMarkerInterpreterTab;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
+import org.eclipse.debug.ui.CommonTab;
+import org.eclipse.debug.ui.EnvironmentTab;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.debug.ui.ILaunchConfigurationDialog;
+import org.eclipse.debug.ui.ILaunchConfigurationTab;
+import org.eclipse.dltk.debug.ui.launchConfigurations.ScriptArgumentsTab;
+
+
+public class TextMarkerTestingTabGroup extends AbstractLaunchConfigurationTabGroup {
+
+  public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
+    TextMarkerTestingMainLaunchConfigurationTab main = new TextMarkerTestingMainLaunchConfigurationTab(
+            mode);
+    ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] { main,
+        new ScriptArgumentsTab(), new TextMarkerInterpreterTab(main), new EnvironmentTab(),
+        new CommonTab() {
+          @Override
+          public void performApply(ILaunchConfigurationWorkingCopy configuration) {
+            super.performApply(configuration);
+            configuration.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, (String) null);
+          }
+        } };
+    setTabs(tabs);
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingTabGroup.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.dltk.testing/src/main/java/org/apache/uima/tm/dltk/internal/testing/TextMarkerTestingTabGroup.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message