You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2016/07/18 15:55:43 UTC
svn commit: r1753252 - in /uima/ruta/trunk:
ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/
ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/
ruta-ep-ide-ui/src/main/resources/org/apache/uima/ruta/ide/ui/preferences...
Author: pkluegl
Date: Mon Jul 18 15:55:43 2016
New Revision: 1753252
URL: http://svn.apache.org/viewvc?rev=1753252&view=rev
Log:
UIMA-5017
- enable different CAS formats with preferences
Modified:
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConfigurationDelegate.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConstants.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaProjectPreferencePage.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/resources/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.properties
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/RutaCorePreferences.java
uima/ruta/trunk/ruta-parent/pom.xml
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConfigurationDelegate.java?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConfigurationDelegate.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConfigurationDelegate.java Mon Jul 18 15:55:43 2016
@@ -37,6 +37,7 @@ import org.apache.uima.ruta.ide.RutaIdeC
import org.apache.uima.ruta.ide.RutaIdeUIPlugin;
import org.apache.uima.ruta.ide.core.RutaCorePreferences;
import org.apache.uima.ruta.ide.core.builder.RutaProjectUtils;
+import org.apache.uima.util.SerializationFormat;
import org.eclipse.core.internal.resources.Folder;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.resources.IResource;
@@ -44,7 +45,6 @@ import org.eclipse.core.resources.Resour
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -80,13 +80,18 @@ public class RutaLaunchConfigurationDele
IPreferenceStore preferenceStore = RutaIdeUIPlugin.getDefault().getPreferenceStore();
boolean addSDI = preferenceStore.getBoolean(RutaCorePreferences.ADD_SDI);
+ String defaultFormat = preferenceStore
+ .getString(RutaCorePreferences.DEFAULT_CAS_SERIALIZATION_FORMAT);
+ if (defaultFormat == null) {
+ defaultFormat = SerializationFormat.XMI.name();
+ }
IResource member = proj.getProject().findMember(mainScriptAttribute);
IPath projectPath = proj.getResource().getLocation();
IPath inputDirPath = projectPath.append(RutaProjectUtils.getDefaultInputLocation());
IPath outputDirPath = projectPath.append(RutaProjectUtils.getDefaultOutputLocation());
- IPath analysisEngineDescriptorPath = RutaProjectUtils.getAnalysisEngineDescriptorPath(
- member.getLocation(), proj.getProject());
+ IPath analysisEngineDescriptorPath = RutaProjectUtils
+ .getAnalysisEngineDescriptorPath(member.getLocation(), proj.getProject());
String engineDefaultMethod = "";
if (analysisEngineDescriptorPath != null) {
engineDefaultMethod = analysisEngineDescriptorPath.toPortableString();
@@ -112,16 +117,18 @@ public class RutaLaunchConfigurationDele
cmdline.append(URLEncoder.encode(engine, RutaLauncher.URL_ENCODING) + " ");
cmdline.append(RutaLaunchConstants.ARG_INPUT_FOLDER + " ");
- cmdline.append(URLEncoder.encode(makeAbsolute(input, configuration),
- RutaLauncher.URL_ENCODING) + " ");
+ cmdline.append(
+ URLEncoder.encode(makeAbsolute(input, configuration), RutaLauncher.URL_ENCODING)
+ + " ");
cmdline.append(RutaLaunchConstants.ARG_OUTPUT_FOLDER + " ");
- cmdline.append(URLEncoder.encode(makeAbsolute(output, configuration),
- RutaLauncher.URL_ENCODING) + " ");
+ cmdline.append(
+ URLEncoder.encode(makeAbsolute(output, configuration), RutaLauncher.URL_ENCODING)
+ + " ");
} catch (UnsupportedEncodingException e) {
- throw new CoreException(new Status(IStatus.ERROR, RutaIdeUIPlugin.PLUGIN_ID,
- "Unsupported Encoding"));
+ throw new CoreException(
+ new Status(IStatus.ERROR, RutaIdeUIPlugin.PLUGIN_ID, "Unsupported Encoding"));
}
cmdline.append(RutaLaunchConstants.ARG_MODE + " ");
cmdline.append(mode + " ");
@@ -138,6 +145,9 @@ public class RutaLaunchConfigurationDele
cmdline.append(RutaLaunchConstants.ARG_ADD_SDI + " ");
cmdline.append(addSDI + " ");
+ cmdline.append(RutaLaunchConstants.ARG_FORMAT + " ");
+ cmdline.append(defaultFormat + " ");
+
return cmdline.toString();
}
@@ -164,10 +174,11 @@ public class RutaLaunchConfigurationDele
.getScriptProject(configuration);
extendedClasspath.addAll(getClassPath(scriptProject));
String[] result = extendedClasspath.toArray(new String[extendedClasspath.size()]);
-
-// ILog log = RutaIdeUIPlugin.getDefault().getLog();
-// log.log(new Status(IStatus.INFO, RutaIdeUIPlugin.PLUGIN_ID, "Classpath of "+ configuration.getName()+": " + StringUtils.join(result, ";")));
-
+
+ // ILog log = RutaIdeUIPlugin.getDefault().getLog();
+ // log.log(new Status(IStatus.INFO, RutaIdeUIPlugin.PLUGIN_ID, "Classpath of "+
+ // configuration.getName()+": " + StringUtils.join(result, ";")));
+
return result;
}
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConstants.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConstants.java?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConstants.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLaunchConstants.java Mon Jul 18 15:55:43 2016
@@ -43,6 +43,8 @@ public class RutaLaunchConstants {
public static final String VIEW = "org.apache.uima.ruta.ide.launching.view";
- public static final String ARG_ADD_SDI = "org.apache.uima.ruta.ide.launching.addsdi";;
+ public static final String ARG_ADD_SDI = "org.apache.uima.ruta.ide.launching.addsdi";
+
+ public static final String ARG_FORMAT = "org.apache.uima.ruta.ide.launching.defaultFormat";
}
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java Mon Jul 18 15:55:43 2016
@@ -20,31 +20,34 @@
package org.apache.uima.ruta.ide.launching;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLDecoder;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
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.ResourceConfigurationException;
import org.apache.uima.ruta.engine.Ruta;
import org.apache.uima.ruta.engine.RutaEngine;
+import org.apache.uima.util.CasIOUtils;
import org.apache.uima.util.FileUtils;
-import org.apache.uima.util.XMLSerializer;
+import org.apache.uima.util.SerializationFormat;
import org.apache.uima.util.impl.ProcessTrace_impl;
import org.xml.sax.SAXException;
public class RutaLauncher {
+ public static final List<String> COMMON_PLAIN_TEXT_FILE_EXTENSIONS = Arrays.asList(new String[] {".txt", ".csv", "html", "xhtml"});
+
public static final String URL_ENCODING = "UTF-8";
private static File descriptor;
@@ -62,6 +65,8 @@ public class RutaLauncher {
private static String launchMode = "run";
private static String view = null;
+
+ private static String defaultFormat = null;
private static boolean parseCmdLineArgs(String[] args) throws UnsupportedEncodingException {
int index = 0;
@@ -110,6 +115,11 @@ public class RutaLauncher {
return false;
}
view = args[index++];
+ } else if (RutaLaunchConstants.ARG_FORMAT.equals(each)) {
+ if (index >= args.length) {
+ return false;
+ }
+ defaultFormat = args[index++];
}
}
return count == 2;
@@ -155,21 +165,32 @@ public class RutaLauncher {
}
}
- if (file.getName().endsWith(".xmi")) {
- XmiCasDeserializer.deserialize(new FileInputStream(file), cas, true);
- } else {
+
+ SerializationFormat format = SerializationFormat.valueOf(defaultFormat);
+ String extension = FilenameUtils.getExtension(file.getName());
+ if(COMMON_PLAIN_TEXT_FILE_EXTENSIONS.contains(extension)) {
String document = FileUtils.file2String(file, inputEncoding);
cas.setDocumentText(document);
+ } else {
+ try {
+ format = CasIOUtils.load(file, null, cas, true);
+ } catch (Exception e) {
+ // no format? maybe really a plain text format?
+ String document = FileUtils.file2String(file, inputEncoding);
+ cas.setDocumentText(document);
+ }
}
-
+
if (addSDI) {
RutaEngine.removeSourceDocumentInformation(cas);
RutaEngine.addSourceDocumentInformation(cas, file);
}
ae.process(cas);
if (outputFolder != null) {
- File outputFile = getOutputFile(file, inputFolder, outputFolder);
- writeXmi(cas, outputFile);
+ File outputFile = getOutputFile(file, inputFolder, outputFolder, format);
+ FileOutputStream os = new FileOutputStream(outputFile);
+ CasIOUtils.save(cas, os, format);
+ IOUtils.closeQuietly(os);
}
cas.reset();
}
@@ -205,25 +226,13 @@ public class RutaLauncher {
return result;
}
- private static void writeXmi(CAS cas, File file) throws IOException, SAXException {
- FileOutputStream out = null;
- try {
- out = new FileOutputStream(file);
- XmiCasSerializer ser = new XmiCasSerializer(cas.getTypeSystem());
- XMLSerializer xmlSer = new XMLSerializer(out, false);
- ser.serialize(cas, xmlSer.getContentHandler());
- } finally {
- if (out != null) {
- out.close();
- }
- }
- }
- private static File getOutputFile(File inputFile, File inputFolder, File outputFolder) {
+ private static File getOutputFile(File inputFile, File inputFolder, File outputFolder, SerializationFormat format) {
URI relativize = inputFolder.toURI().relativize(inputFile.toURI());
String path = relativize.getPath();
- if (!path.endsWith(".xmi")) {
- path += ".xmi";
+ String ext = "." + format.getDefaultFileExtension();
+ if (!path.endsWith(ext)) {
+ path += "ext";
}
File result = new File(outputFolder, path);
result.getParentFile().mkdirs();
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.java?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.java Mon Jul 18 15:55:43 2016
@@ -24,7 +24,6 @@ import org.eclipse.osgi.util.NLS;
public class RutaPreferencesMessages extends NLS {
private static final String BUNDLE_NAME = "org.apache.uima.ruta.ide.ui.preferences.RutaPreferencesMessages";//$NON-NLS-1$
-
private RutaPreferencesMessages() {
// Do not instantiate
@@ -83,4 +82,8 @@ public class RutaPreferencesMessages ext
public static String AddSDI;
public static String CompressWordLists;
+
+ public static String DefaultCasSerializationFormat;
+
+
}
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaProjectPreferencePage.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaProjectPreferencePage.java?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaProjectPreferencePage.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/preferences/RutaProjectPreferencePage.java Mon Jul 18 15:55:43 2016
@@ -21,7 +21,9 @@ package org.apache.uima.ruta.ide.ui.pref
import org.apache.uima.ruta.ide.RutaIdeUIPlugin;
import org.apache.uima.ruta.ide.core.RutaCorePreferences;
+import org.apache.uima.util.SerializationFormat;
import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
@@ -38,6 +40,8 @@ public class RutaProjectPreferencePage e
private BooleanFieldEditor addSDI;
+ private ComboFieldEditor defaultCasSerializationFormat;
+
public RutaProjectPreferencePage() {
setPreferenceStore(RutaIdeUIPlugin.getDefault().getPreferenceStore());
setDescription("Project Management");
@@ -56,6 +60,16 @@ public class RutaProjectPreferencePage e
addSDI = new BooleanFieldEditor(RutaCorePreferences.ADD_SDI,
RutaPreferencesMessages.AddSDI, getFieldEditorParent());
addField(addSDI);
+
+ SerializationFormat[] formats = SerializationFormat.values();
+ String[][] values = new String[formats.length][];
+ for (int i = 0; i < formats.length; i++) {
+ values[i] = new String[] {formats[i].toString(),formats[i].toString()};
+ }
+
+ defaultCasSerializationFormat = new ComboFieldEditor(RutaCorePreferences.DEFAULT_CAS_SERIALIZATION_FORMAT,
+ RutaPreferencesMessages.DefaultCasSerializationFormat, values, getFieldEditorParent());
+ addField(defaultCasSerializationFormat);
}
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/resources/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.properties
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/resources/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.properties?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/resources/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.properties (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/resources/org/apache/uima/ruta/ide/ui/preferences/RutaPreferencesMessages.properties Mon Jul 18 15:55:43 2016
@@ -43,4 +43,5 @@ BuilderIgnoreDuplicateShortnames = Hide
ProjectClearOutput = Clear output folder before running a script.
NoVMInDevMode = Do not start a VM in development mode.
AddSDI = Update Source Document Information when launching a script.
-CompressWordLists = Compress generated twl/mtwl word lists.
\ No newline at end of file
+CompressWordLists = Compress generated twl/mtwl word lists.
+DefaultCasSerializationFormat = Default CAS serialization format:
Modified: uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/RutaCorePreferences.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/RutaCorePreferences.java?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/RutaCorePreferences.java (original)
+++ uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/RutaCorePreferences.java Mon Jul 18 15:55:43 2016
@@ -33,4 +33,6 @@ public class RutaCorePreferences {
public static final String ADD_SDI = "AddSDI";
public static final String COMPRESS_WORDLISTS = "CompressWordLists";
+
+ public static final String DEFAULT_CAS_SERIALIZATION_FORMAT = "DefaultCasSerializationFormat";
}
Modified: uima/ruta/trunk/ruta-parent/pom.xml
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-parent/pom.xml?rev=1753252&r1=1753251&r2=1753252&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-parent/pom.xml (original)
+++ uima/ruta/trunk/ruta-parent/pom.xml Mon Jul 18 15:55:43 2016
@@ -127,7 +127,7 @@ This product contains icons developed by
(http://www.famfamfam.com/lab/icons/silk/), licensed under the
Creative Commons Attribution 3.0 License.
</postNoticeText>
- <uimaVersion>2.8.1</uimaVersion>
+ <uimaVersion>2.8.2-SNAPSHOT</uimaVersion>
<uimafit-version>2.2.0</uimafit-version>
<!--
BACKWARD_COMPATIBLE_IMPLEMENTER - patch version (=.=.+)