14 package cz.vutbr.fit.knot.annotations.modules.suggestionManager;
18 import java.io.BufferedReader;
19 import java.io.BufferedWriter;
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.InputStreamReader;
24 import java.io.OutputStream;
25 import java.io.OutputStreamWriter;
26 import java.util.List;
27 import java.util.logging.Level;
28 import java.util.logging.Logger;
115 public synchronized boolean init() {
125 @SuppressWarnings(
"unchecked")
126 List<ServerSetting> settingsList = AppBean.getPersistenceManager().queryDB(
"ServerSetting.findByName",params);
127 if(settingsList != null && !settingsList.isEmpty()){
128 secApiCommand = settingsList.get(0).getSettingValue();
132 @SuppressWarnings(
"unchecked")
133 List<ServerSetting> settingsListP = AppBean.getPersistenceManager().queryDB(
"ServerSetting.findByName",paramsP);
134 if(settingsListP != null && !settingsListP.isEmpty()){
135 nerPath = settingsListP.get(0).getSettingValue();
141 processBuilder.directory(
new File(nerPath));
142 processBuilder.redirectErrorStream(
true);
144 }
catch (IOException e) {
148 stdin = processVar.getOutputStream ();
149 stderr = processVar.getErrorStream ();
150 stdout = processVar.getInputStream ();
151 brStdIn =
new BufferedWriter(
new OutputStreamWriter(
stdin));
152 brStdOut =
new BufferedReader(
new InputStreamReader(stdout));
153 brStdErrOut =
new BufferedReader(
new InputStreamReader(stdout));
167 @SuppressWarnings(
"unchecked")
168 List<ServerSetting> settingsList = AppBean.getPersistenceManager().queryDB(
"ServerSetting.findByName",params);
169 if(settingsList != null && !settingsList.isEmpty()){
170 String secApiCommand = settingsList.get(0).getSettingValue();
171 if (secApiCommand.isEmpty()) {
185 public synchronized String
makeRequest(String s)
throws Exception {
186 StringBuilder output =
new StringBuilder();
192 boolean processEnd =
false;
198 processVar.exitValue();
201 }
catch (Exception e) {
203 if (output.length() == 10
204 && (output.substring(0, 9).equalsIgnoreCase(
"Exception") || output.substring(1, 10).equalsIgnoreCase(
"Exception"))) {
205 Logger.getLogger(NERInterface.class.getName()).log(Level.SEVERE,
"SEC API failed. It returned exception.");
209 throw new Exception(
"Process was terminated");
217 }
while (!(ch ==
'}' && counter <= 0));
218 }
catch (IOException e) {
220 StringBuilder erStr =
new StringBuilder(
"");
221 String row = brStdErrOut.readLine();
222 while (row != null) {
224 row = brStdErrOut.readLine();
226 Logger.getLogger(NERInterface.class.getName()).log(Level.SEVERE,
"SEC API terminated! Error stream: " + erStr.toString());
227 }
catch (Exception exc) {
229 throw new Exception(
"Process was terminated");
231 return output.toString();
242 }
catch (Exception exception) {
247 BufferedReader brCleanUp =
new BufferedReader(
new InputStreamReader(
stderr));
248 while (brCleanUp.readLine() != null) {
253 processVar.destroy();
254 }
catch (IOException e) {}
synchronized boolean init()
Class representing parameter of server settings.
static final String SEC_API_PATH
static boolean isSecCommandEmpty()
synchronized String makeRequest(String s)
Singleton for storing global variables.
BufferedReader brStdErrOut
Interface for call of SEC API as external program (deamon)
ProcessBuilder processBuilder
static final String SEC_API_PATH_SETTING_NAME
static final String SEC_API_SETTING_NAME
static final String SEC_API_COMMAND