diff --git a/pom.xml b/pom.xml index fca8c73..b5b40a9 100644 --- a/pom.xml +++ b/pom.xml @@ -105,20 +105,13 @@ org.slf4j slf4j-api - 1.6.4 - compile + 1.7.5 + provided org.slf4j slf4j-log4j12 - 1.6.4 - compile - - - log4j - log4j - 1.2.16 - compile + test diff --git a/src/main/java/org/gcube/data/analysis/nlphub/NLPHub.java b/src/main/java/org/gcube/data/analysis/nlphub/NLPHub.java index 38e0bcb..5f96f2a 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/NLPHub.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/NLPHub.java @@ -14,12 +14,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilderFactory; -import org.apache.log4j.Logger; -import org.gcube.data.analysis.nlphub.legacy.Constants; import org.gcube.data.analysis.nlphub.legacy.JsonManager; import org.gcube.data.analysis.nlphub.nlp.NlpAsyncNerRunner; -import org.gcube.data.analysis.nlphub.nlp.NlpParameter; import org.gcube.data.analysis.nlphub.nlp.RunnerCommander; +import org.gcube.data.analysis.nlphub.session.SessionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -30,12 +30,9 @@ import org.xml.sax.InputSource; */ @WebServlet(asyncSupported = true, name = "NLPServlet", urlPatterns = { "/nlphub-servlet" }) public class NLPHub extends HttpServlet { - private Logger logger = Logger.getLogger(NLPHub.class.getSimpleName()); private static final long serialVersionUID = 1L; - public static final String service = "http://dataminer-prototypes.d4science.org/wps/"; - private String token; //= "df2cc5f5-63ee-48c1-b2a6-1210030c57b8-843339462"; - private boolean devMode = true; - + private static final Logger logger = LoggerFactory.getLogger(NLPHub.class); + /** * @see HttpServlet#HttpServlet() */ @@ -63,16 +60,18 @@ public class NLPHub extends HttpServlet { } private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if(request.getParameter("getInfo") != null) { - getAlgorithmInfo(request, response); - } - else { - runAlgorithms(request, response); + logger.debug("NLPHub"); + String token = SessionUtils.getToken(request); + + if (request.getParameter("getInfo") != null) { + getAlgorithmInfo(request, response, token); + } else { + runAlgorithms(request, response, token); } } - - private void getAlgorithmInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - token = Constants.getToken(request, devMode); + + private void getAlgorithmInfo(HttpServletRequest request, HttpServletResponse response, String token) + throws ServletException, IOException { try { String dataMiner = request.getParameter("dataminer"); String algId = request.getParameter("algId"); @@ -82,7 +81,8 @@ public class NLPHub extends HttpServlet { PrintWriter writer = response.getWriter(); response.setContentType("application/json;charset=UTF-8"); try { - String finalUrl = "https://" + dataMiner + NlpAsyncNerRunner.WPS_DESCRIBE_PROCESS_URL + "&gcube-token=" + token; + String finalUrl = "https://" + dataMiner + NlpAsyncNerRunner.WPS_DESCRIBE_PROCESS_URL + "&gcube-token=" + + token; finalUrl += "&lang=en-US&Identifier=" + algId; URL url = new URL(finalUrl); connection = (HttpURLConnection) url.openConnection(); @@ -93,22 +93,21 @@ public class NLPHub extends HttpServlet { r = new BufferedReader(new InputStreamReader(connection.getInputStream())); Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(r)); doc.getDocumentElement().normalize(); - + NodeList nListInput = doc.getElementsByTagName("ows:Abstract"); - if(nListInput.getLength() <= 0) { + if (nListInput.getLength() <= 0) { algAbsrtact = "No description."; writer.println(new JsonManager().getErrorJsonResponse(algAbsrtact)); - } - else { + } else { Node nodeAbstract = nListInput.item(0); algAbsrtact = nodeAbstract.getTextContent(); writer.println(new JsonManager().getSuccessJsonResponse("" + algAbsrtact)); } writer.close(); - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); - writer.println(new JsonManager().getErrorJsonResponse("" + x.getLocalizedMessage())); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); + writer.println(new JsonManager().getErrorJsonResponse("" + e.getLocalizedMessage())); writer.close(); } finally { try { @@ -120,31 +119,30 @@ public class NLPHub extends HttpServlet { logger.error(e.getLocalizedMessage()); } } - - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); - } + + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); + } } - - private void runAlgorithms(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - token = Constants.getToken(request, devMode); + + private void runAlgorithms(HttpServletRequest request, HttpServletResponse response, String token) + throws ServletException, IOException { try { String dataMiner = request.getParameter("dataminer"); String[] algs = request.getParameter("algs").split(","); - for(int i=0; i 0) + String[] tokens; + if (toBeMap.indexOf("|") > 0) tokens = toBeMap.split("\\|"); else { tokens = new String[1]; tokens[0] = toBeMap; } - + String annotations = request.getParameter("annotations"); String language = request.getParameter("lang"); PrintWriter writer = response.getWriter(); try { String text = getDocument(documentLink); - text = text.replaceAll("\n", "\\\\n");; + text = text.replaceAll("\n", "\\\\n"); + text = text.replaceAll("\r", "\\\\r"); text = text.replaceAll("\t", "\\\\t"); text = text.replaceAll("\"", "\\\\\""); - + String out = "{"; out += "\"text\":\"" + text + "\","; out += "\"annotations\":\"" + annotations + "\","; @@ -90,9 +96,9 @@ public class NLPMapper extends HttpServlet { out += "\"result\": ["; for (int i = 0; i < tokens.length; i++) { - String token = tokens[i]; - String[] t = token.split(":::"); - if(t[1].equals(Constants.ERROR_ID)) { + String tk = tokens[i]; + String[] t = tk.split(":::"); + if (t[1].equals(Constants.ERROR_ID)) { logger.error("Algorithm " + t[0] + " in error. Bypass..."); continue; } @@ -106,24 +112,26 @@ public class NLPMapper extends HttpServlet { } } out += "]}"; - - String resultLink = saveResult(out); + + String resultLink = saveResult(out, token, ws); String outResult = "{"; outResult += "\"link\":\"" + resultLink + "\","; outResult += "\"output\":" + out; outResult += "}"; writer.append(outResult); - - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); - writer.println(new JsonManager().getErrorJsonResponse(x.getLocalizedMessage())); + + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); + writer.println(new JsonManager().getErrorJsonResponse(e.getLocalizedMessage())); } // response.getWriter().write(json); } - private Class getMapper(String algId) throws Exception { - return Class.forName("org.gcube.nlphub.mapper.DefaultMapper"); + private Class getMapper(String algId) throws Exception { + return DefaultMapper.class; + // return + // Class.forName("org.gcube.data.analynlphub.mapper.DefaultMapper"); } private String getDocument(String plink) throws Exception { @@ -142,20 +150,19 @@ public class NLPMapper extends HttpServlet { } return content; } - - private String saveResult(String jsonResult) throws NlpHubException { - WorkspaceManager ws = new WorkspaceManager(); + + private String saveResult(String jsonResult, String token, WorkspaceManager ws) throws NlpHubException { long now = System.currentTimeMillis(); String fileName = "result-nlp-" + now + ".json"; ws.deleteFile(fileName, token); - + byte[] byteContent = jsonResult.getBytes(StandardCharsets.UTF_8); if (!ws.uploadFile(byteContent, fileName, Constants.DEFAULT_DESCRIPTION, token)) { - throw new NlpHubException("Error writing file: " + fileName + " on workspace (token: " + token + ")", null); + throw new NlpHubException("Error writing file: " + fileName + " on workspace (token: " + token + ")", null); } String link = ws.getPublicLink(fileName, token); - + logger.info("Output json [" + fileName + "] created in " + (System.currentTimeMillis() - now) + " millisec."); return link; } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/NLPUploader.java b/src/main/java/org/gcube/data/analysis/nlphub/NLPUploader.java index d04c124..5bdce2f 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/NLPUploader.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/NLPUploader.java @@ -14,13 +14,15 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; -import org.apache.log4j.Logger; import org.gcube.data.analysis.nlphub.legacy.Constants; import org.gcube.data.analysis.nlphub.legacy.JsonManager; import org.gcube.data.analysis.nlphub.legacy.NlpHubException; import org.gcube.data.analysis.nlphub.nlp.NLpLanguageRecognizer; import org.gcube.data.analysis.nlphub.nlp.NlpUtils; +import org.gcube.data.analysis.nlphub.session.SessionUtils; import org.gcube.data.analysis.nlphub.workspace.WorkspaceManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Servlet implementation class NLPUploader @@ -30,10 +32,7 @@ import org.gcube.data.analysis.nlphub.workspace.WorkspaceManager; @MultipartConfig public class NLPUploader extends HttpServlet { private static final long serialVersionUID = 1L; - private Logger logger = Logger.getLogger(NLPUploader.class.getSimpleName()); - private boolean devMode = true; - private String token; // = "df2cc5f5-63ee-48c1-b2a6-1210030c57b8-843339462"; - private WorkspaceManager ws; + private static final Logger logger = LoggerFactory.getLogger(NLPUploader.class); /** * @see HttpServlet#HttpServlet() @@ -58,21 +57,22 @@ public class NLPUploader extends HttpServlet { */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - token = Constants.getToken(request, devMode); doWork(request, response); } private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - ws = new WorkspaceManager(); + logger.debug("NLPUploader"); + String token = SessionUtils.getToken(request); + WorkspaceManager ws = new WorkspaceManager(); response.setContentType("application/json;charset=UTF-8"); if (request.getParameter("freetext") == null) - handleFileUpload(request, response); + handleFileUpload(request, response, token, ws); else - handleFreeText(request, response); + handleFreeText(request, response, token, ws); } - private void handleFreeText(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { + private void handleFreeText(HttpServletRequest request, HttpServletResponse response, String token, + WorkspaceManager ws) throws ServletException, IOException { String freeText = request.getParameter("freetext"); freeText = NlpUtils.replaceDirtyCharacters(freeText); @@ -86,25 +86,24 @@ public class NLPUploader extends HttpServlet { return; } String link = ws.getPublicLink(fileName, token); - if(request.getParameter("getlang") != null) { + if (request.getParameter("getlang") != null) { String sentence = NlpUtils.getLanguageRecognizerDigest(new String(content)); logger.info(sentence); try { NLpLanguageRecognizer.run(request.getParameter("dataminer"), sentence, token, link, response); } catch (NlpHubException ex) { writer.println(new JsonManager().getSuccessJsonResponse(Constants.UNAVAILABLE, link)); - } - } - else writer.println(new JsonManager().getSuccessJsonResponse("" + link)); - } catch (Exception x) { - x.printStackTrace(); - logger.error(x.getClass().getName() + ": " + x.getLocalizedMessage()); - writer.println(new JsonManager().getErrorJsonResponse(x.getLocalizedMessage())); + } + } else + writer.println(new JsonManager().getSuccessJsonResponse("" + link)); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); + writer.println(new JsonManager().getErrorJsonResponse(e.getLocalizedMessage())); } } - private void handleFileUpload(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { + private void handleFileUpload(HttpServletRequest request, HttpServletResponse response, String token, + WorkspaceManager ws) throws ServletException, IOException { int contentLength = request.getContentLength(); Part filePart = request.getPart("mytxtfile"); @@ -154,10 +153,9 @@ public class NLPUploader extends HttpServlet { } // writer.println(new JsonManager().getSuccessJsonResponse("" + // link)); - } catch (Exception x) { - x.printStackTrace(); - logger.error(x.getClass().getName() + ": " + x.getLocalizedMessage()); - writer.println(new JsonManager().getErrorJsonResponse(x.getLocalizedMessage())); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); + writer.println(new JsonManager().getErrorJsonResponse(e.getLocalizedMessage())); } } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/AsyncHttpRequest.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/AsyncHttpRequest.java index 02a9f8a..39f2536 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/AsyncHttpRequest.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/AsyncHttpRequest.java @@ -6,13 +6,17 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; -import org.apache.log4j.Logger; + + import org.gcube.data.analysis.nlphub.nlp.NlpParameter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class AsyncHttpRequest extends Thread { private String baseUrl, finalUrl, result, method; private ArrayList parameters; - private Logger logger = Logger.getLogger(AsyncHttpRequest.class.getSimpleName()); + private static final Logger logger = LoggerFactory.getLogger(AsyncHttpRequest.class); + protected long elapsedTime; public AsyncHttpRequest() { @@ -20,13 +24,13 @@ public class AsyncHttpRequest extends Thread { this.parameters = null; this.method = "GET"; finalUrl = null; - elapsedTime = 0; + elapsedTime = 0; } - + public AsyncHttpRequest(String baseUrl, String method, ArrayList parameters) { this.baseUrl = baseUrl; this.parameters = parameters; - if(method == null) + if (method == null) this.method = "GET"; else this.method = (method.equalsIgnoreCase("GET") || method.equalsIgnoreCase("POST")) ? method : "GET"; @@ -36,7 +40,7 @@ public class AsyncHttpRequest extends Thread { public void run() { elapsedTime = System.currentTimeMillis(); - if(finalUrl == null) + if (finalUrl == null) finalUrl = baseUrl; HttpURLConnection connection = null; BufferedReader r = null; @@ -56,11 +60,11 @@ public class AsyncHttpRequest extends Thread { if (line != null) result += line.trim(); } - + asyncHttpRequestCallback(); - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); asyncHttpRequestCallback(); } finally { try { @@ -69,19 +73,19 @@ public class AsyncHttpRequest extends Thread { if (connection != null) connection.disconnect(); } catch (Exception e) { - logger.error(e.getLocalizedMessage()); + logger.error(e.getLocalizedMessage(),e); } } } - + public String getResult() { return result; } - + public void asyncHttpRequestCallback() { elapsedTime = System.currentTimeMillis() - elapsedTime; } - + public void setBaseUrl(String baseUrl) { this.baseUrl = baseUrl; } @@ -103,8 +107,8 @@ public class AsyncHttpRequest extends Thread { try { finalUrl += p.getName() + "=" + URLEncoder.encode((String) p.getValue(), "UTF-8"); finalUrl += "&"; - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); } } finalUrl = finalUrl.substring(0, finalUrl.length() - 1); diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/Constants.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/Constants.java index 8483bc5..1baddda 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/Constants.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/Constants.java @@ -1,29 +1,29 @@ package org.gcube.data.analysis.nlphub.legacy; -import javax.servlet.http.HttpServletRequest; public class Constants { - //public static String DATAMINER_URL = "http://dataminer0-proto.d4science.org"; - //public static String DATAMINER_URL = "http://dataminer2-proto.d4science.org"; - public static String DATAMINER_URL = "http://dataminer-prototypes.d4science.org"; - public static String DEFAULT_DESCRIPTION = "NlpHub upload"; - public static String TOKEN_PARAMETER = "gcube-token"; - public static String TEST_TOKEN = "df2cc5f5-63ee-48c1-b2a6-1210030c57b8-843339462"; - public static String PUBLIC_TOKEN = "f57441ac-b361-4c2d-992a-40db034f1b8c-843339462"; - public static String MIME_TEXT = "text/plain"; - public static String CONTENT_TYPE = "Content-Type"; - public static String UNAVAILABLE = "unavailable"; - public static String ERROR_ID = "ERROR"; - public static String INPUT_FILE_PARAMETER = "input"; + public static final boolean DEBUG = false; + public static final boolean TEST_ENABLE = false; - public static String getToken(HttpServletRequest request, boolean devMode) { - String token = request.getParameter(TOKEN_PARAMETER); - if(devMode) { - if(token == null) token = TEST_TOKEN; - } - return token; - } + public static final String DEFAULT_USER = "giancarlo.panichi"; + public static final String DEFAULT_SCOPE = "/gcube/devNext/NextNext"; + public static final String DEFAULT_TOKEN = "df2cc5f5-63ee-48c1-b2a6-1210030c57b8-843339462"; - public static String hexDump(byte[] bytes) { + public static final String DEFAULT_DATAMINER_URL = "http://dataminer-prototypes.d4science.org"; + + public static final String TOKEN_PARAMETER = "gcube-token"; + + public static final String DEFAULT_DESCRIPTION = "NlpHub upload"; + + //public static String PUBLIC_TOKEN = "f57441ac-b361-4c2d-992a-40db034f1b8c-843339462"; + public static final String MIME_TEXT = "text/plain"; + public static final String CONTENT_TYPE = "Content-Type"; + public static final String UNAVAILABLE = "unavailable"; + public static final String ERROR_ID = "ERROR"; + public static final String INPUT_FILE_PARAMETER = "input"; + + + + /*public static String hexDump(byte[] bytes) { char[] hexArray = "0123456789ABCDEF".toCharArray(); char[] hexChars = new char[bytes.length * 3]; for (int j = 0; j < bytes.length; j++) { @@ -32,5 +32,5 @@ public class Constants { hexChars[3*j+2] = ' '; } return new String(hexChars); - } + }*/ } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/DataminerException.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/DataminerException.java index 513c0ae..0f38871 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/DataminerException.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/DataminerException.java @@ -1,6 +1,10 @@ package org.gcube.data.analysis.nlphub.legacy; + class DataminerClientException extends Exception { + + private static final long serialVersionUID = 1L; + public DataminerClientException(String message, Throwable throwable) { super(message, throwable); } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/JsonManager.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/JsonManager.java index 8f7b530..5169266 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/JsonManager.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/JsonManager.java @@ -2,14 +2,18 @@ package org.gcube.data.analysis.nlphub.legacy; import java.io.Reader; -import java.util.ArrayList; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.gson.JsonArray; -import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class JsonManager { + private static final Logger logger = LoggerFactory.getLogger(JsonManager.class); + + public static String TEXT = "text"; public static String ANNOTATIONS = "annotations"; public static String LANGUAGE = "language"; @@ -23,9 +27,10 @@ public class JsonManager { public static String MESSAGE = "message"; private JsonObject jsonObjectRoot = null; - private JsonParser jsonParser = null; + //private JsonParser jsonParser = null; public JsonManager() { + logger.debug("JsonManager"); jsonObjectRoot = new JsonObject(); } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAlgorithm.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAlgorithm.java index cd1e036..14c6642 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAlgorithm.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAlgorithm.java @@ -1,14 +1,22 @@ package org.gcube.data.analysis.nlphub.legacy; import java.util.ArrayList; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class NerAlgorithm { + private static final Logger logger = LoggerFactory.getLogger(NerAlgorithm.class); + private String name; private ArrayList annotationsData; public NerAlgorithm(String name) { + logger.debug("NerAlgorithm: "+name); + this.name = name; annotationsData = new ArrayList<>(); } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAnnotationData.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAnnotationData.java index 55d295d..9ce5b14 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAnnotationData.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerAnnotationData.java @@ -1,10 +1,16 @@ package org.gcube.data.analysis.nlphub.legacy; import java.util.ArrayList; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class NerAnnotationData { + private static final Logger logger = LoggerFactory.getLogger(NerAnnotationData.class); + private String name; private ArrayList nerEntities; @@ -13,6 +19,7 @@ public class NerAnnotationData { * @param name */ public NerAnnotationData(String name) { + logger.debug("NerAnnotationData: "+name); this.name = name; nerEntities = new ArrayList<>(); } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerEntity.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerEntity.java index a2d4bd7..a25c5c3 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerEntity.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerEntity.java @@ -2,11 +2,17 @@ package org.gcube.data.analysis.nlphub.legacy; import java.util.HashMap; import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class NerEntity { + private static final Logger logger = LoggerFactory.getLogger(NerEntity.class); + private int startIndex, endIndex; private HashMap properties = null; @@ -16,6 +22,7 @@ public class NerEntity { * @param endIndex the end index of the matching annotation */ public NerEntity(int startIndex, int endIndex) { + logger.debug("NerEntity: [startIndex="+startIndex+", endIndex="+endIndex+"]"); this.startIndex = startIndex; this.endIndex = endIndex; properties = new HashMap<>(); diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerOutput.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerOutput.java index bdba0ac..ec12bf4 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerOutput.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NerOutput.java @@ -1,14 +1,21 @@ package org.gcube.data.analysis.nlphub.legacy; import java.util.ArrayList; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class NerOutput { + private static final Logger logger = LoggerFactory.getLogger(NerOutput.class); + private String text, annotations, language; private ArrayList result; public NerOutput(String text, String annotations, String language) { + logger.debug("NerOutput: [text="+text+", annotations="+annotations+", language="+language+"]"); this.text = text; this.annotations = annotations; this.language = language; diff --git a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NlpHubException.java b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NlpHubException.java index 2254307..8c4acfc 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/legacy/NlpHubException.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/legacy/NlpHubException.java @@ -1,6 +1,9 @@ package org.gcube.data.analysis.nlphub.legacy; public class NlpHubException extends Exception { + + private static final long serialVersionUID = 1L; + public NlpHubException(String message, Throwable throwable) { super(message, throwable); } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/mapper/DefaultMapper.java b/src/main/java/org/gcube/data/analysis/nlphub/mapper/DefaultMapper.java index d454eae..fd580f1 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/mapper/DefaultMapper.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/mapper/DefaultMapper.java @@ -10,13 +10,15 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonArray; import com.google.gson.JsonElement; -import org.apache.log4j.Logger; + import org.gcube.data.analysis.nlphub.legacy.NerAlgorithm; import org.gcube.data.analysis.nlphub.legacy.NerAnnotationData; import org.gcube.data.analysis.nlphub.legacy.NerEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DefaultMapper implements JsonMapper { - private Logger logger = Logger.getLogger(DefaultMapper.class.getSimpleName()); + private static final Logger logger = LoggerFactory.getLogger(DefaultMapper.class); public String getJson(String alg, String link) { NerAlgorithm algInfo = new NerAlgorithm(alg); @@ -59,33 +61,10 @@ public class DefaultMapper implements JsonMapper { } } return algInfo.toJson().toString(); - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(),e); return null; } } - /* - public static void main(String[] args) { - String remoteJson = "http://data.d4science.org/a2JtV0lOUUxsenZCM2RmcFRqVGtWWm42NU9LQnFGTk9HbWJQNStIS0N6Yz0-VLT"; - String alg = "ENGLISH_NAMED_ENTITY_RECOGNIZER"; - //remoteJson = "http://data.d4science.org/T21IcHlMSzFJRCttZ1lHVzMxd2dyWjVOUEpyY2dwUVNHbWJQNStIS0N6Yz0-VLT"; - //remoteJson = "http://data.d4science.org/bDZLVkdlaVBjZCtLSWsrWUNQdHk3MUs4cEtDUGF5NktHbWJQNStIS0N6Yz0"; - DefaultMapper dm = new DefaultMapper(); - try { - String s = dm.getJson(alg, remoteJson); - System.out.println("" + s); - String file = "/home/erico/debug.json"; - java.io.File f = new java.io.File(file); - f.createNewFile(); - java.io.FileWriter w = new java.io.FileWriter(f); - w.write(s); - w.flush(); - w.close(); - } catch (Exception x) { - System.out.println(x.getLocalizedMessage()); - x.printStackTrace(); - } - - }*/ } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java index 33c3bd6..2d79c28 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java @@ -5,45 +5,50 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilderFactory; -import org.apache.log4j.Logger; import org.gcube.data.analysis.nlphub.legacy.Constants; import org.gcube.data.analysis.nlphub.legacy.JsonManager; import org.gcube.data.analysis.nlphub.legacy.NlpHubException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.w3c.dom.Document; -import org.w3c.dom.NodeList; import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class NLpLanguageRecognizer { - private HttpServletResponse response; - private Logger logger = Logger.getLogger(NLpLanguageRecognizer.class.getSimpleName()); - private String sentence, publicLink; + private static final Logger logger = LoggerFactory.getLogger(NLpLanguageRecognizer.class); + + // private HttpServletResponse response; + // private String sentence, publicLink; public final static String RECOGNIZER_ID = "org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.LANGUAGE_RECOGNIZER"; - private String dataMiner = null; + // private String dataMiner = null; public NLpLanguageRecognizer(String service, String token, String sentence) { - this.sentence = sentence; - response = null; + logger.debug( + "NLpLanguageRecognizer: [service=" + service + ", token=" + token + ", sentence=" + sentence + "]"); + // this.sentence = sentence; + // response = null; } public NLpLanguageRecognizer(String dataMiner, String service, String token, String sentence, String publicLink, HttpServletResponse response) { - this.sentence = sentence; - this.response = response; - this.publicLink = publicLink; - this.dataMiner = dataMiner; + logger.debug("NLpLanguageRecognizer: [dataMiner=" + dataMiner + ",service=" + service + ", token=" + token + + ", sentence=" + sentence + ",publicLink" + publicLink + "]"); + // this.sentence = sentence; + // this.response = response; + // this.publicLink = publicLink; + // this.dataMiner = dataMiner; } - public static void run(String dataMiner, String sentence, String token, String publicLink, HttpServletResponse response) throws NlpHubException { + public static void run(String dataMiner, String sentence, String token, String publicLink, + HttpServletResponse response) throws NlpHubException { try { - if(dataMiner == null) - dataMiner = Constants.DATAMINER_URL; + if (dataMiner == null) + dataMiner = Constants.DEFAULT_DATAMINER_URL; else dataMiner = "http://" + dataMiner; String urlService = dataMiner + "/wps/WebProcessingService?request=Execute&service=WPS&Version=1.0.0"; @@ -53,7 +58,8 @@ public class NLpLanguageRecognizer { urlService += "&DataInputs=sentence=" + URLEncoder.encode(sentence, "UTF-8"); URL url = new URL(urlService); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - //connection.setRequestProperty(Constants.TOKEN_PARAMETER, super.getToken()); + // connection.setRequestProperty(Constants.TOKEN_PARAMETER, + // super.getToken()); connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); @@ -64,33 +70,31 @@ public class NLpLanguageRecognizer { doc.getDocumentElement().normalize(); NodeList nListData = doc.getElementsByTagName("d4science:Data"); NodeList nListDesc = doc.getElementsByTagName("d4science:Description"); - + int len = nListData.getLength(); - for(int i=0; i params = buildParameterString(); - String serviceUrl = this.dataMiner + WPS_EXECUTE_URL + "&gcube-token=" + token + "&lang=en-US&Identifier=" + identifier; + String serviceUrl = this.dataMiner + WPS_EXECUTE_URL + "&gcube-token=" + token + "&lang=en-US&Identifier=" + + identifier; serviceUrl += "&" + setUrl(params); super.setBaseUrl(serviceUrl); super.setMethod(httpMethod); @@ -120,8 +124,8 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest { parameters.add(nlpParam); } - } catch (Exception x) { - logger.error(x.getLocalizedMessage()); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(), e); } finally { try { if (r != null) @@ -129,7 +133,7 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest { if (connection != null) connection.disconnect(); } catch (Exception e) { - logger.error(e.getLocalizedMessage()); + logger.error(e.getLocalizedMessage(), e); } } return parameters; @@ -138,7 +142,7 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest { public long getElapsedTime() { return elapsedTime; } - + @Override public void asyncHttpRequestCallback() { elapsedTime = System.currentTimeMillis() - elapsedTime; @@ -147,35 +151,35 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest { String theLink = ""; try { BufferedReader r = new BufferedReader( - new InputStreamReader(new ByteArrayInputStream(result.getBytes(StandardCharsets.UTF_8)))); - + new InputStreamReader(new ByteArrayInputStream(result.getBytes(StandardCharsets.UTF_8)))); + Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(r)); doc.getDocumentElement().normalize(); NodeList nListResult = doc.getElementsByTagName("ogr:Result"); - - for (int i=0, found=0; (i 0) { + if (found > 0) { theLink = res; } } commander.updateResultList(identifier.substring(identifier.lastIndexOf(".") + 1) + ":::" + theLink); - } catch (Exception x) { - commander.updateResultList(identifier.substring(identifier.lastIndexOf(".") + 1) + ":::" + Constants.ERROR_ID); - logger.error(x.getLocalizedMessage()); + } catch (Exception e) { + commander.updateResultList( + identifier.substring(identifier.lastIndexOf(".") + 1) + ":::" + Constants.ERROR_ID); + logger.error(e.getLocalizedMessage(), e); } } } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpUtils.java b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpUtils.java index f0ef235..87eaa04 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpUtils.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpUtils.java @@ -1,7 +1,5 @@ package org.gcube.data.analysis.nlphub.nlp; -import java.util.ArrayList; - public class NlpUtils { public static String getLanguageRecognizerDigest(String content) { diff --git a/src/main/java/org/gcube/data/analysis/nlphub/nlp/RunnerCommander.java b/src/main/java/org/gcube/data/analysis/nlphub/nlp/RunnerCommander.java index 269a5df..38cdf85 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/nlp/RunnerCommander.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/nlp/RunnerCommander.java @@ -5,11 +5,14 @@ import java.util.ArrayList; import javax.servlet.http.HttpServletResponse; -import org.apache.log4j.Logger; import org.gcube.data.analysis.nlphub.legacy.Constants; import org.gcube.data.analysis.nlphub.legacy.JsonManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class RunnerCommander extends Thread { + private static final Logger logger = LoggerFactory.getLogger(RunnerCommander.class); + private HttpServletResponse response = null; private String annotationList = ""; private String[] identifiers = null; @@ -19,7 +22,6 @@ public class RunnerCommander extends Thread { private ArrayList outResultList = null; private long sleepTime = 500l; private long maxWaitingTime = 5l * 60l * 1000l; - private Logger logger = Logger.getLogger(RunnerCommander.class.getSimpleName()); private boolean complete = false; public RunnerCommander(String dataMiner, String[] identifiers, String link, String annotationList, String token) { @@ -76,8 +78,8 @@ public class RunnerCommander extends Thread { counter += sleepTime; if(counter > 2*maxWaitingTime) complete = true; - } catch (InterruptedException x) { - logger.info("Interrupted."); + } catch (InterruptedException e) { + logger.info("Interrupted. "+identifiers); } } } @@ -107,7 +109,7 @@ public class RunnerCommander extends Thread { } logger.error("Timeout error."); timeoutHandler(); - } catch (InterruptedException x) { + } catch (InterruptedException e) { logger.info("Elapsed time: " + counter + " msec."); logger.info("Thread interrupted."); timeoutHandler(); @@ -148,8 +150,7 @@ public class RunnerCommander extends Thread { } } catch (Exception ex) { - logger.error(ex.getLocalizedMessage()); - ex.printStackTrace(); + logger.error(ex.getLocalizedMessage(),ex); } finally { complete = true; if (writer != null) diff --git a/src/main/java/org/gcube/data/analysis/nlphub/session/SessionUtils.java b/src/main/java/org/gcube/data/analysis/nlphub/session/SessionUtils.java new file mode 100644 index 0000000..cbbcf53 --- /dev/null +++ b/src/main/java/org/gcube/data/analysis/nlphub/session/SessionUtils.java @@ -0,0 +1,22 @@ +package org.gcube.data.analysis.nlphub.session; + +import javax.servlet.http.HttpServletRequest; + +import org.gcube.data.analysis.nlphub.legacy.Constants; + +public class SessionUtils { + + public static String getToken(HttpServletRequest request) { + String token = request.getParameter(Constants.TOKEN_PARAMETER); + if(token == null || token.isEmpty()){ + if(Constants.DEBUG){ + token = Constants.DEFAULT_TOKEN; + } else { + + } + } + return token; + } + + +} diff --git a/src/main/java/org/gcube/data/analysis/nlphub/workspace/WorkspaceManager.java b/src/main/java/org/gcube/data/analysis/nlphub/workspace/WorkspaceManager.java index 1b4b8c6..5ee5246 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/workspace/WorkspaceManager.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/workspace/WorkspaceManager.java @@ -10,15 +10,13 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; -import javax.servlet.http.Part; - -import org.apache.log4j.Logger; -import org.gcube.data.analysis.nlphub.NLPUploader; import org.gcube.data.analysis.nlphub.legacy.Constants; import org.gcube.data.analysis.nlphub.legacy.NlpHubException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class WorkspaceManager { - private Logger logger = Logger.getLogger(WorkspaceManager.class.getSimpleName()); + private static final Logger logger = LoggerFactory.getLogger(WorkspaceManager.class); public String getPublicLink(String fileName, String token) throws NlpHubException { try { @@ -62,7 +60,7 @@ public class WorkspaceManager { return link; } catch (Exception e) { - logger.error(e.getLocalizedMessage()); + logger.error(e.getLocalizedMessage(), e); throw new NlpHubException(e.getLocalizedMessage(), e); } } @@ -93,8 +91,9 @@ public class WorkspaceManager { } String xmlOut = response.toString(); + logger.debug("deleteFile: " + xmlOut); } catch (Exception e) { - logger.error(e.getLocalizedMessage()); + logger.error(e.getLocalizedMessage(), e); throw new NlpHubException(e.getLocalizedMessage(), e); } } @@ -133,7 +132,7 @@ public class WorkspaceManager { return true; } catch (Exception e) { - logger.error(e.getLocalizedMessage()); + logger.error(e.getLocalizedMessage(), e); throw new NlpHubException(e.getLocalizedMessage(), e); } finally { // output stream must be closed anyway... @@ -141,7 +140,7 @@ public class WorkspaceManager { try { output.close(); } catch (IOException e) { - logger.error(e.getLocalizedMessage()); + logger.error(e.getLocalizedMessage(), e); } } } diff --git a/src/main/resources/clientlog4j.properties b/src/main/resources/clientlog4j.properties deleted file mode 100644 index 4a2e1cd..0000000 --- a/src/main/resources/clientlog4j.properties +++ /dev/null @@ -1,12 +0,0 @@ -log4j.rootLogger=DEBUG, A1 -log4j.appender.A1=org.apache.log4j.ConsoleAppender -log4j.appender.A1.layout=org.apache.log4j.PatternLayout - -# Print the date in ISO 8601 format -log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n - -# Print only messages of level TRACE or above in the package org.gcube -log4j.logger.org.gcube=TRACE -log4j.logger.org.gcube.application.framework.core.session=INFO -log4j.logger.org.gcube.common.scope.impl.DefaultScopeProvider=ERROR -log4j.logger.com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor=ERROR \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties deleted file mode 100644 index 0641702..0000000 --- a/src/main/resources/log4j.properties +++ /dev/null @@ -1,8 +0,0 @@ -log4j.rootLogger=INFO,stdout -log4j.logger.com.endeca=INFO -# Logger for crawl metrics -log4j.logger.com.endeca.itl.web.metrics=INFO - -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n diff --git a/src/main/resources/logback-test.xml b/src/main/resources/logback-test.xml deleted file mode 100644 index 93b1a59..0000000 --- a/src/main/resources/logback-test.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}: %msg%n - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/logback_xml_test b/src/main/resources/logback_xml_test new file mode 100644 index 0000000..d3931ec --- /dev/null +++ b/src/main/resources/logback_xml_test @@ -0,0 +1,83 @@ + + + /home/gcube/tomcat/logs/ghn.log + true + + %date [%thread] %-5level %logger{0}: %msg%n + + + /home/gcube/tomcat/logs/ghn.%d{yyyy-MM-dd}.%i.log + 30 + 10MB + 2GB + + + + + /home/gcube/tomcat/logs/accounting.log + true + + %date [%thread] %-5level %logger{0}: %msg%n + + + /home/gcube/tomcat/logs/accounting.%d{yyyy-MM-dd}.%i.log + 30 + 10MB + 2GB + + + + + /home/gcube/tomcat/logs/access.log + true + + %date [%thread] %-5level %logger{0}: %msg%n + + + /home/gcube/tomcat/logs/access.%d{yyyy-MM-dd}.%i.log + 30 + 10MB + 2GB + + + + + /home/gcube/tomcat/logs/nlphub.log + true + + %date [%thread] %-5level %logger{0}: %msg%n + + + /home/gcube/tomcat/logs/nlphub.%d{yyyy-MM-dd}.%i.log + 30 + 10MB + 2GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 7e834fb..2f65c37 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -11,7 +11,7 @@ NLPServlet - org.gcube.nlphub.NLPHub + org.gcube.data.analysis.nlphub.NLPHub NLPServlet @@ -19,7 +19,7 @@ NLPUploader - org.gcube.nlphub.NLPUploader + org.gcube.data.analysis.nlphub.NLPUploader NLPUploader @@ -27,7 +27,7 @@ NLPMapper - org.gcube.nlphub.NLPMapper + org.gcube.data.analysis.nlphub.NLPMapper NLPMapper diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 642b85b..2db6835 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -23,7 +23,15 @@