();
try {
StringReader optionsString = new StringReader(options);
JsonReader reader = Json.createReader(optionsString);
JsonObject optionsJson = reader.readObject();
JsonObject data = optionsJson.getJsonObject("data");
JsonObject dataSettings = data.getJsonObject("data_settings");
String baseTextID = dataSettings.getString("base_text");
JsonObject unitData = data.getJsonObject("unit_data");
JsonArray documents = unitData.getJsonArray("data");
for (JsonValue v : documents) {
JsonObject document = (JsonObject)v;
documentLanguages.put(document.getString("_id"), document.getString("language"));
}
// this should be where our project language lives, but...
String projectLanguage = dataSettings.getString("language");
// let's reset our project language based on our baseText language
projectLanguage = documentLanguages.get(baseTextID);
System.out.println("Witness Languages: " + documentLanguages);
System.out.println("Project Language: " + projectLanguage);
}
catch(Exception e) {e.printStackTrace();}
*/
runCommand(args, resultBuf, errorBuf, options, logger);
logger.info("Finished calling Cat's stuff.");
if (reEncode) resultBuf = new StringBuffer(new String(resultBuf.toString().getBytes("iso8859-1"), "UTF-8"));
/*
fos = new FileOutputStream(from_collate_log, true);
fos.write(("\n=== START === " + new Date() + " ===\n").getBytes());
fos.write(resultBuf.toString().getBytes());
fos.write(("\n=== END === " + new Date() + " ===\n").getBytes());
fos.close();
*/
//logger.info("********************************************************* Result: " + resultBuf + "***** END RESULT *****");
// if (errorBuf.length() > 0) logger.error("*********************************************** Collation Error: " + errorBuf);
%>
<%= resultBuf %>
<%
return;
}
%>
vmrcre_collation
collation from the collation_editor to collatex
Parameters
options | data from collation_editor |
<%!
public static Thread startSlurpStreamThreaded(final InputStream is, final StringBuffer outBuf) {
Thread t = new Thread() {
InputStream myIS = is;
StringBuffer myOutBuf = outBuf;
public void run() {
try {
InputStreamReader isr = new InputStreamReader(myIS);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
myOutBuf.append(line + "\n");
}
catch (IOException ioe) {
ioe.printStackTrace();
}
}
};
t.start();
return t;
}
public static int runCommand(String command[], StringBuffer result, StringBuffer error, String toStdin, Logger logger) {
int retVal = -1;
try {
File cwd = new File(".");
String cmd = "";
for (String s: command) {
cmd += " [" + s + "]";
}
logger.debug("executing from cwd ("+cwd.getAbsolutePath()+"):" + cmd);
java.lang.Process p = Runtime.getRuntime().exec(command, new String[0], cwd);
p.getOutputStream().write(toStdin.getBytes(Charset.forName("UTF-8")));
Thread o = startSlurpStreamThreaded(p.getInputStream(), result);
Thread e = startSlurpStreamThreaded(p.getErrorStream(), error);
p.getOutputStream().close();
retVal = p.waitFor();
o.join();
e.join();
logger.debug("returned from executing executing....");
if (error.length() > 0) {
logger.warn("ERROR!!!!!!!!!!!!!!!!!!!!!!: " + error.toString());
}
}
catch (Exception e) {
logger.error("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!: " + e + "; retVal: " + retVal + "; stdout: " + result);
e.printStackTrace();
}
logger.debug("returned: " + retVal + "; stdout: " + result);
return retVal;
}
%>