NLPHub added logs and correct various problems
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-analysis/nlphub@169586 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
d74cc320be
commit
3da3b475f8
49
pom.xml
49
pom.xml
|
@ -31,7 +31,6 @@
|
|||
<dependency>
|
||||
<groupId>com.googlecode.json-simple</groupId>
|
||||
<artifactId>json-simple</artifactId>
|
||||
<version>1.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
@ -40,53 +39,45 @@
|
|||
<version>2.8.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- GCube -->
|
||||
<!-- <dependency> -->
|
||||
<!-- <groupId>org.gcube.data.analysis</groupId> -->
|
||||
<!-- <artifactId>data-miner-manager-cl</artifactId> -->
|
||||
<!-- <version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version> -->
|
||||
<!-- <scope>compile</scope> -->
|
||||
<!-- </dependency> -->
|
||||
<!-- GCube -->
|
||||
<!-- <dependency> -->
|
||||
<!-- <groupId>org.gcube.data.analysis</groupId> -->
|
||||
<!-- <artifactId>data-miner-manager-cl</artifactId> -->
|
||||
<!-- <version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version> -->
|
||||
<!-- <scope>compile</scope> -->
|
||||
<!-- </dependency> -->
|
||||
<dependency>
|
||||
<groupId>org.gcube.common</groupId>
|
||||
<artifactId>common-authorization</artifactId>
|
||||
<version>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</version>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.common</groupId>
|
||||
<artifactId>authorization-client</artifactId>
|
||||
<version>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.contentmanagement</groupId>
|
||||
<artifactId>storage-manager-wrapper</artifactId>
|
||||
<version>[2.1.0-SNAPSHOT,)</version>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.resources.discovery</groupId>
|
||||
<artifactId>discovery-client</artifactId>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-configuration-scanner</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT,)</version>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.resources</groupId>
|
||||
<artifactId>registry-publisher</artifactId>
|
||||
<version>[1.2.1-SNAPSHOT,3.0.0-SNAPSHOT)</version>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-scope</artifactId>
|
||||
<scope>compile</scope>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-scope</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Sevlet jars for compilation, provided by Tomcat -->
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat</groupId>
|
||||
|
@ -97,7 +88,6 @@
|
|||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -113,13 +103,14 @@
|
|||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- JUnit -->
|
||||
<!-- JUnit TEST -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<version>4.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>nlphub</finalName>
|
||||
|
|
|
@ -0,0 +1,143 @@
|
|||
package org.gcube.data.analysis.nlphub;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.xml.stream.FactoryConfigurationError;
|
||||
import javax.xml.stream.XMLInputFactory;
|
||||
import javax.xml.stream.XMLStreamConstants;
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamReader;
|
||||
|
||||
import org.gcube.data.analysis.nlphub.session.SessionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Servlet implementation class NLPHub
|
||||
*/
|
||||
@WebServlet(asyncSupported = true, name = "DiscoverDataMinerServlet", urlPatterns = { "/discover-dataminer-servlet" })
|
||||
public class DiscoverDataMinerService extends HttpServlet {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private static final Logger logger = LoggerFactory.getLogger(DiscoverDataMinerService.class);
|
||||
|
||||
/**
|
||||
* @see HttpServlet#HttpServlet()
|
||||
*/
|
||||
public DiscoverDataMinerService() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/**
|
||||
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
|
||||
* response)
|
||||
*/
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
doWork(request, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
|
||||
* response)
|
||||
*/
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
doWork(request, response);
|
||||
}
|
||||
|
||||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
logger.debug("Discover DataMinerService");
|
||||
String token = SessionUtils.getToken(request);
|
||||
|
||||
discoverDataMinerService(request, response, token);
|
||||
|
||||
}
|
||||
|
||||
private void discoverDataMinerService(HttpServletRequest request, HttpServletResponse response, String token)
|
||||
throws ServletException, IOException {
|
||||
|
||||
HttpURLConnection connection = null;
|
||||
String dataMinerServiceUrl = "";
|
||||
response.setContentType("text/plain;charset=UTF-8");
|
||||
try (PrintWriter writer = response.getWriter()) {
|
||||
|
||||
try {
|
||||
String urlInformationSystem = "http://registry.d4science.org/icproxy/gcube/service/ServiceEndpoint/DataAnalysis/DataMiner?";
|
||||
|
||||
logger.debug("Request url: " + urlInformationSystem);
|
||||
urlInformationSystem += "gcube-token=" + token;
|
||||
URL url = new URL(urlInformationSystem);
|
||||
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("GET");
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(false);
|
||||
connection.setUseCaches(false);
|
||||
|
||||
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||||
dataMinerServiceUrl = readProfileInfo(r);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Discover DataMiner Service error: " + e.getLocalizedMessage(), e);
|
||||
} finally {
|
||||
try {
|
||||
if (connection != null)
|
||||
connection.disconnect();
|
||||
} catch (Exception e) {
|
||||
logger.error("Discover DataMiner Service error: " + e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
writer.println(dataMinerServiceUrl);
|
||||
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Error discovering DataMiner Service Url: " + e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private String readProfileInfo(BufferedReader r) throws FactoryConfigurationError, XMLStreamException {
|
||||
String dataMinerServiceUrl = null;
|
||||
XMLInputFactory xmlInFact = XMLInputFactory.newInstance();
|
||||
XMLStreamReader reader = xmlInFact.createXMLStreamReader(r);
|
||||
while (reader.hasNext()) {
|
||||
int eventType = reader.next();
|
||||
if (eventType == XMLStreamConstants.START_ELEMENT) {
|
||||
logger.debug("Read Element: " + reader.getLocalName());
|
||||
if (reader.getLocalName().compareToIgnoreCase("EndPoint") == 0) {
|
||||
logger.debug("Attribute count:" + reader.getAttributeCount());
|
||||
for (int i = 0; i < reader.getAttributeCount(); i++) {
|
||||
logger.debug("Attribute Name: " + reader.getAttributeName(i));
|
||||
logger.debug("Attribute Value: " + reader.getAttributeValue(i));
|
||||
if (reader.getAttributeName(i).toString().compareToIgnoreCase("EntryName") == 0
|
||||
&& reader.getAttributeValue(i).toString()
|
||||
.compareToIgnoreCase("dataminer-prototypes.d4science.org") == 0) {
|
||||
dataMinerServiceUrl = reader.getElementText();
|
||||
dataMinerServiceUrl=dataMinerServiceUrl.trim();
|
||||
dataMinerServiceUrl = dataMinerServiceUrl.replace("\\n", "").replace("\\r", "");
|
||||
logger.debug("url lenght: "+dataMinerServiceUrl.length());
|
||||
logger.debug("DataMiner service url retrieved: " + dataMinerServiceUrl);
|
||||
return dataMinerServiceUrl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return dataMinerServiceUrl;
|
||||
}
|
||||
|
||||
}
|
|
@ -6,6 +6,7 @@ import java.io.InputStreamReader;
|
|||
import java.io.PrintWriter;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
|
@ -68,22 +69,27 @@ public class NLPHub extends HttpServlet {
|
|||
} else {
|
||||
runAlgorithms(request, response, token);
|
||||
}
|
||||
logger.debug("NLPHub work done");
|
||||
}
|
||||
|
||||
private void getAlgorithmInfo(HttpServletRequest request, HttpServletResponse response, String token)
|
||||
throws ServletException, IOException {
|
||||
try {
|
||||
String dataMiner = request.getParameter("dataminer");
|
||||
//dataMiner=java.net.URLDecoder.decode(dataMiner,"UTF-8");
|
||||
|
||||
String algId = request.getParameter("algId");
|
||||
logger.debug("NLPHub getAlgorithmInfo: [DataMiner="+dataMiner+", algorithmID="+algId+"]");
|
||||
HttpURLConnection connection = null;
|
||||
BufferedReader r = null;
|
||||
String algAbsrtact = "";
|
||||
PrintWriter writer = response.getWriter();
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
try {
|
||||
String finalUrl = "https://" + dataMiner + NlpAsyncNerRunner.WPS_DESCRIBE_PROCESS_URL + "&gcube-token="
|
||||
String finalUrl = "https://" + dataMiner + NlpAsyncNerRunner.WPS_DESCRIBE_PROCESS_URL+"&lang=en-US&Identifier=" + algId;
|
||||
logger.debug("Request url: "+finalUrl);
|
||||
finalUrl+="&gcube-token="
|
||||
+ token;
|
||||
finalUrl += "&lang=en-US&Identifier=" + algId;
|
||||
URL url = new URL(finalUrl);
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setDoInput(true);
|
||||
|
@ -106,7 +112,7 @@ public class NLPHub extends HttpServlet {
|
|||
writer.close();
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
logger.error("NLPHub error in GET algorithmInfo: "+e.getLocalizedMessage(),e);
|
||||
writer.println(new JsonManager().getErrorJsonResponse("" + e.getLocalizedMessage()));
|
||||
writer.close();
|
||||
} finally {
|
||||
|
@ -116,12 +122,12 @@ public class NLPHub extends HttpServlet {
|
|||
if (connection != null)
|
||||
connection.disconnect();
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
logger.error("NLPHub error in GET algorithmInfo: "+e.getLocalizedMessage(),e);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
logger.error("NLPHub error in GET algorithmInfo: "+e.getLocalizedMessage(),e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,19 +135,27 @@ public class NLPHub extends HttpServlet {
|
|||
throws ServletException, IOException {
|
||||
try {
|
||||
String dataMiner = request.getParameter("dataminer");
|
||||
//dataMiner=java.net.URLDecoder.decode(dataMiner,"UTF-8");
|
||||
|
||||
String[] algs = request.getParameter("algs").split(",");
|
||||
String plink=request.getParameter("plink");
|
||||
String annotations=request.getParameter("annotations");
|
||||
logger.debug("NLPHub getAlgorithmInfo: [DataMiner="+dataMiner+", plink="+plink+
|
||||
", annotations="+annotations+", algorithms="+Arrays.toString(algs)+"]");
|
||||
|
||||
|
||||
for (int i = 0; i < algs.length; i++) {
|
||||
algs[i] = algs[i].trim();
|
||||
}
|
||||
|
||||
RunnerCommander commander = new RunnerCommander(dataMiner, algs, request.getParameter("plink"),
|
||||
request.getParameter("annotations"), token, response);
|
||||
RunnerCommander commander = new RunnerCommander(dataMiner, algs,plink ,
|
||||
annotations, token, response);
|
||||
commander.setSleepTime(100);
|
||||
commander.setMaxWaitingTime(90 * 1000);
|
||||
commander.startProcess();
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
logger.error("NLPHub runAlgorithms: "+e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
package org.gcube.data.analysis.nlphub;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.gcube.data.analysis.nlphub.session.SessionUtils;
|
||||
import org.gcube.data.analysis.nlphub.shared.Constants;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Servlet implementation class NLPHub
|
||||
*/
|
||||
@WebServlet(asyncSupported = true, name = "NLPInit", urlPatterns = { "/nlpinit-servlet" })
|
||||
public class NLPInit extends HttpServlet {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private static final Logger logger = LoggerFactory.getLogger(NLPInit.class);
|
||||
|
||||
|
||||
public NLPInit() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
doWork(request, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
doWork(request, response);
|
||||
}
|
||||
|
||||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
|
||||
logger.debug("NLPInit");
|
||||
String token = SessionUtils.getToken(request);
|
||||
String res = request.getParameter(Constants.REQUEST);
|
||||
RequestType r=RequestType.getRequestTypeFromString(res);
|
||||
if(r==null){
|
||||
throw new ServletException("Invalid request: "+res);
|
||||
}
|
||||
switch(r){
|
||||
case DataminerService:
|
||||
dataminerServiceDiscover(request, response, token);
|
||||
break;
|
||||
default:
|
||||
throw new ServletException("Invalid request: "+res);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void dataminerServiceDiscover(HttpServletRequest request, HttpServletResponse response,String token) throws ServletException {
|
||||
|
||||
/*
|
||||
PrintWriter writer = response.getWriter();
|
||||
response.setContentType("text/plain;charset=UTF-8");
|
||||
response
|
||||
String result = null;
|
||||
result = request.getSession().getId();
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
|
||||
} finally {
|
||||
writer.println(result);
|
||||
writer.close();
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -74,6 +74,11 @@ public class NLPUploader extends HttpServlet {
|
|||
private void handleFreeText(HttpServletRequest request, HttpServletResponse response, String token,
|
||||
WorkspaceManager ws) throws ServletException, IOException {
|
||||
String freeText = request.getParameter("freetext");
|
||||
String langParameter=request.getParameter("getlang");
|
||||
String dataMiner = request.getParameter("dataminer");
|
||||
//dataMiner=java.net.URLDecoder.decode(dataMiner,"UTF-8");
|
||||
|
||||
|
||||
freeText = NlpUtils.replaceDirtyCharacters(freeText);
|
||||
|
||||
byte[] content = freeText.getBytes("UTF-8");
|
||||
|
@ -86,11 +91,11 @@ public class NLPUploader extends HttpServlet {
|
|||
return;
|
||||
}
|
||||
String link = ws.getPublicLink(fileName, token);
|
||||
if (request.getParameter("getlang") != null) {
|
||||
if (langParameter != null) {
|
||||
String sentence = NlpUtils.getLanguageRecognizerDigest(new String(content));
|
||||
logger.info(sentence);
|
||||
try {
|
||||
NLpLanguageRecognizer.run(request.getParameter("dataminer"), sentence, token, link, response);
|
||||
NLpLanguageRecognizer.run(dataMiner, sentence, token, link, response);
|
||||
} catch (NlpHubException ex) {
|
||||
writer.println(new JsonManager().getSuccessJsonResponse(Constants.UNAVAILABLE, link));
|
||||
}
|
||||
|
@ -107,6 +112,9 @@ public class NLPUploader extends HttpServlet {
|
|||
int contentLength = request.getContentLength();
|
||||
|
||||
Part filePart = request.getPart("mytxtfile");
|
||||
String dataMiner = request.getParameter("dataminer");
|
||||
//dataMiner=java.net.URLDecoder.decode(dataMiner,"UTF-8");
|
||||
|
||||
|
||||
String fileName = getFileName(filePart);
|
||||
|
||||
|
@ -147,7 +155,7 @@ public class NLPUploader extends HttpServlet {
|
|||
String sentence = NlpUtils.getLanguageRecognizerDigest(stringContent);
|
||||
logger.info(sentence);
|
||||
try {
|
||||
NLpLanguageRecognizer.run(request.getParameter("dataminer"), sentence, token, link, response);
|
||||
NLpLanguageRecognizer.run(dataMiner, sentence, token, link, response);
|
||||
} catch (NlpHubException ex) {
|
||||
writer.println(new JsonManager().getSuccessJsonResponse(Constants.UNAVAILABLE, link));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package org.gcube.data.analysis.nlphub;
|
||||
|
||||
|
||||
public enum RequestType {
|
||||
DataminerService("DataminerService");
|
||||
|
||||
private final String id;
|
||||
|
||||
private RequestType(final String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public static RequestType getRequestTypeFromString(String res){
|
||||
if(res==null||res.isEmpty()){
|
||||
return null;
|
||||
}
|
||||
for(RequestType r:RequestType.values()){
|
||||
if(r.id.compareToIgnoreCase(res)==0){
|
||||
return r;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -49,9 +49,9 @@ public class NLpLanguageRecognizer {
|
|||
try {
|
||||
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";
|
||||
//else
|
||||
// dataMiner = "http://" + dataMiner;
|
||||
String urlService = dataMiner + "?request=Execute&service=WPS&Version=1.0.0";
|
||||
urlService += "&gcube-token=" + token;
|
||||
urlService += "&lang=en-US";
|
||||
urlService += "&Identifier=" + RECOGNIZER_ID;
|
||||
|
|
|
@ -12,7 +12,6 @@ import java.util.ArrayList;
|
|||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
import org.gcube.data.analysis.nlphub.legacy.AsyncHttpRequest;
|
||||
import org.gcube.data.analysis.nlphub.legacy.NerOutput;
|
||||
import org.gcube.data.analysis.nlphub.shared.Constants;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -22,52 +21,64 @@ import org.w3c.dom.NodeList;
|
|||
import org.xml.sax.InputSource;
|
||||
|
||||
public class NlpAsyncNerRunner extends AsyncHttpRequest {
|
||||
private static final Logger logger = LoggerFactory.getLogger(NerOutput.class);
|
||||
public static final String WPS_EXECUTE_URL = "/wps/WebProcessingService?request=Execute&service=WPS&Version=1.0.0";
|
||||
public static final String WPS_DESCRIBE_PROCESS_URL = "/wps/WebProcessingService?request=DescribeProcess&service=WPS&Version=1.0.0";
|
||||
private String identifier, token, httpMethod, annotations, publicLink, dataMiner;
|
||||
private static final Logger logger = LoggerFactory.getLogger(NlpAsyncNerRunner.class);
|
||||
public static final String WPS_EXECUTE_URL = "?request=Execute&service=WPS&Version=1.0.0";
|
||||
public static final String WPS_DESCRIBE_PROCESS_URL = "?request=DescribeProcess&service=WPS&Version=1.0.0";
|
||||
public static final String DATAMINER_DEFAULT="http://dataminer-prototypes.d4science.org/wps/WebProcessingService";
|
||||
// private String identifier, token, httpMethod, annotations, publicLink,
|
||||
// dataMiner;
|
||||
private String identifier;
|
||||
private RunnerCommander commander;
|
||||
|
||||
public NlpAsyncNerRunner(String dataMiner, String identifier, String token, String publicLink, String annotations,
|
||||
String language, RunnerCommander commander) {
|
||||
super();
|
||||
this.identifier = identifier;
|
||||
this.token = token;
|
||||
this.httpMethod = "GET";
|
||||
this.annotations = annotations;
|
||||
this.publicLink = publicLink;
|
||||
this.commander=commander;
|
||||
this.identifier=identifier;
|
||||
String httpMethod = "GET";
|
||||
|
||||
this.commander = commander;
|
||||
if (dataMiner == null)
|
||||
this.dataMiner = Constants.DEFAULT_DATAMINER_URL;
|
||||
else
|
||||
this.dataMiner = "http://" + dataMiner;
|
||||
dataMiner = Constants.DEFAULT_DATAMINER_URL;
|
||||
// else
|
||||
// this.dataMiner = "http://" + dataMiner;
|
||||
|
||||
ArrayList<NlpParameter> params = buildParameterString();
|
||||
String serviceUrl = this.dataMiner + WPS_EXECUTE_URL + "&gcube-token=" + token + "&lang=en-US&Identifier="
|
||||
+ identifier;
|
||||
serviceUrl += "&" + setUrl(params);
|
||||
super.setBaseUrl(serviceUrl);
|
||||
logger.debug("NlpAsyncNerRunner: [identifier=" + identifier + ", httpMethod=" + httpMethod + ", annotations="
|
||||
+ annotations + ", publicLink=" + publicLink + ", dataminer=" + dataMiner + "]");
|
||||
|
||||
ArrayList<NlpParameter> params = buildParameterString(dataMiner, identifier, publicLink, annotations, token);
|
||||
StringBuilder serviceUrl = new StringBuilder();
|
||||
serviceUrl.append(dataMiner);
|
||||
serviceUrl.append(WPS_EXECUTE_URL);
|
||||
serviceUrl.append("&lang=en-US&Identifier=");
|
||||
serviceUrl.append(identifier);
|
||||
serviceUrl.append("&");
|
||||
serviceUrl.append(setParams(params));
|
||||
serviceUrl.append("&gcube-token=" + token);
|
||||
|
||||
logger.debug("NlpAsyncNerRunner: [serviceUrl=" + serviceUrl + ", method=" + httpMethod + "]");
|
||||
super.setBaseUrl(serviceUrl.toString());
|
||||
super.setMethod(httpMethod);
|
||||
}
|
||||
|
||||
public NlpAsyncNerRunner(String baseUrl, String method) {
|
||||
/*public NlpAsyncNerRunner(String baseUrl, String method) {
|
||||
super(baseUrl, method, null);
|
||||
}
|
||||
}*/
|
||||
|
||||
/*
|
||||
public String getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
|
||||
public String getHttpMethod() {
|
||||
return httpMethod;
|
||||
}
|
||||
}*/
|
||||
|
||||
private String setUrl(ArrayList<NlpParameter> parameters) {
|
||||
private String setParams(ArrayList<NlpParameter> parameters) {
|
||||
String url = "DataInputs=";
|
||||
for (NlpParameter p : parameters) {
|
||||
try {
|
||||
|
@ -76,22 +87,33 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest {
|
|||
logger.error(ex.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
logger.debug("");
|
||||
return url;
|
||||
}
|
||||
|
||||
private ArrayList<NlpParameter> buildParameterString() {
|
||||
private ArrayList<NlpParameter> buildParameterString(String dataMiner, String identifier, String publicLink,
|
||||
String annotations, String token) {
|
||||
ArrayList<NlpParameter> parameters = new ArrayList<>();
|
||||
HttpURLConnection connection = null;
|
||||
BufferedReader r = null;
|
||||
try {
|
||||
String finalUrl = dataMiner + WPS_DESCRIBE_PROCESS_URL + "&gcube-token=" + token;
|
||||
finalUrl += "&lang=en-US&Identifier=" + identifier;
|
||||
URL url = new URL(finalUrl);
|
||||
StringBuilder serviceUrl = new StringBuilder();
|
||||
serviceUrl.append(dataMiner);
|
||||
serviceUrl.append(WPS_DESCRIBE_PROCESS_URL);
|
||||
serviceUrl.append("&lang=en-US&Identifier=");
|
||||
serviceUrl.append(identifier);
|
||||
logger.debug("BuildParameterString request URL: " + serviceUrl);
|
||||
serviceUrl.append("&gcube-token=");
|
||||
serviceUrl.append(token);
|
||||
|
||||
URL url = new URL(serviceUrl.toString());
|
||||
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setRequestMethod("GET");
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(false);
|
||||
connection.setUseCaches(false);
|
||||
|
||||
r = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(r));
|
||||
doc.getDocumentElement().normalize();
|
||||
|
@ -125,7 +147,7 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest {
|
|||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
logger.error("NlpAsyncNerRunner buildParameterString: " + e.getLocalizedMessage(), e);
|
||||
} finally {
|
||||
try {
|
||||
if (r != null)
|
||||
|
@ -146,7 +168,7 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest {
|
|||
@Override
|
||||
public void asyncHttpRequestCallback() {
|
||||
elapsedTime = System.currentTimeMillis() - elapsedTime;
|
||||
logger.info("ID: " + identifier.substring(identifier.lastIndexOf(".") + 1) + " elapsed time: " + elapsedTime);
|
||||
logger.debug("ID: " + identifier.substring(identifier.lastIndexOf(".") + 1) + " elapsed time: " + elapsedTime);
|
||||
String result = super.getResult();
|
||||
String theLink = "";
|
||||
try {
|
||||
|
|
|
@ -24,7 +24,7 @@ public class RunnerCommander extends Thread {
|
|||
private long maxWaitingTime = 5l * 60l * 1000l;
|
||||
private boolean complete = false;
|
||||
|
||||
public RunnerCommander(String dataMiner, String[] identifiers, String link, String annotationList, String token) {
|
||||
/*public RunnerCommander(String dataMiner, String[] identifiers, String link, String annotationList, String token) {
|
||||
this.identifiers = identifiers;
|
||||
this.annotationList = annotationList;
|
||||
this.link = link;
|
||||
|
@ -33,7 +33,7 @@ public class RunnerCommander extends Thread {
|
|||
this.sleepTime = 500l;
|
||||
this.dataMiner = dataMiner;
|
||||
outResultList = new ArrayList<String>();
|
||||
}
|
||||
}*/
|
||||
|
||||
public RunnerCommander(String dataMiner, String[] identifiers, String link, String annotationList, String token,
|
||||
HttpServletResponse response) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.gcube.data.analysis.nlphub.session;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.gcube.data.analysis.nlphub.shared.Constants;
|
||||
|
@ -9,14 +10,37 @@ import org.slf4j.LoggerFactory;
|
|||
public class SessionUtils {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SessionUtils.class);
|
||||
|
||||
public static String getToken(HttpServletRequest request) {
|
||||
public static String getToken(HttpServletRequest request) throws ServletException {
|
||||
String token = request.getParameter(Constants.TOKEN_PARAMETER);
|
||||
logger.debug("Token in request: "+token);
|
||||
if(token == null || token.isEmpty()){
|
||||
logger.error("Token in request is null");
|
||||
logger.debug("Token in request: " + token);
|
||||
if (token == null || token.isEmpty()) {
|
||||
logger.debug("Token is null");
|
||||
throw new ServletException("Token is null");
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
/*
|
||||
private static void checkToken(String token) throws Exception {
|
||||
if (token == null || token.isEmpty()) {
|
||||
logger.error("Token is null");
|
||||
throw new Exception("Token is null");
|
||||
} else {
|
||||
AuthorizationEntry entry;
|
||||
|
||||
entry = authorizationService().get(token);
|
||||
ClientInfo clientInfo = entry.getClientInfo();
|
||||
if (clientInfo == null) {
|
||||
logger.error("User not found.");
|
||||
throw new Exception("Authorization failed!");
|
||||
} else {
|
||||
logger.debug("User: " + clientInfo.getId());
|
||||
String context = entry.getContext();
|
||||
logger.debug("Context: " + context);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
}
|
||||
|
|
|
@ -7,18 +7,20 @@ public class Constants {
|
|||
public static final String DEFAULT_USER = "giancarlo.panichi";
|
||||
public static final String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
|
||||
|
||||
public static final String DEFAULT_DATAMINER_URL = "http://dataminer-prototypes.d4science.org";
|
||||
public static final String DEFAULT_DATAMINER_URL = "http://dataminer-prototypes.d4science.org/wps/WebProcessingService";
|
||||
|
||||
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 final String REQUEST = "Request";
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -60,8 +60,8 @@ public class WorkspaceManager {
|
|||
return link;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new NlpHubException(e.getLocalizedMessage(), e);
|
||||
logger.error("Error in WorkspaceManager for getPublicLink: "+e.getLocalizedMessage(), e);
|
||||
throw new NlpHubException("Error in WorkspaceManager for getPublicLink: "+e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
<configuration scan="true" debug="false">
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/home/gcube/tomcat/logs/ghn.log</file>
|
||||
<append>true</append>
|
||||
<encoder>
|
||||
<pattern>%date [%thread] %-5level %logger{0}: %msg%n</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>/home/gcube/tomcat/logs/ghn.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxHistory>30</maxHistory>
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="ACCOUNT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/home/gcube/tomcat/logs/accounting.log</file>
|
||||
<append>true</append>
|
||||
<encoder>
|
||||
<pattern>%date [%thread] %-5level %logger{0}: %msg%n</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>/home/gcube/tomcat/logs/accounting.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxHistory>30</maxHistory>
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="ACCESS_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/home/gcube/tomcat/logs/access.log</file>
|
||||
<append>true</append>
|
||||
<encoder>
|
||||
<pattern>%date [%thread] %-5level %logger{0}: %msg%n</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>/home/gcube/tomcat/logs/access.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxHistory>30</maxHistory>
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="NLP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/home/gcube/tomcat/logs/nlphub.log</file>
|
||||
<append>true</append>
|
||||
<encoder>
|
||||
<pattern>%date [%thread] %-5level %logger{0}: %msg%n</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>/home/gcube/tomcat/logs/nlphub.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxHistory>30</maxHistory>
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
|
||||
|
||||
<logger name="org.gcube.data.publishing" level="ERROR">
|
||||
<appender-ref ref="ACCOUNT_FILE" />
|
||||
</logger>
|
||||
<logger name="org.gcube.documentstore" level="ERROR">
|
||||
<appender-ref ref="ACCOUNT_FILE" />
|
||||
</logger>
|
||||
|
||||
<logger name="org.gcube.smartgears.handlers.application.request" level="INFO">
|
||||
<appender-ref ref="ACCESS_FILE" />
|
||||
</logger>
|
||||
|
||||
<logger name="org.gcube" level="WARN" />
|
||||
<logger name="org.gcube.smartgears" level="WARN" />
|
||||
<logger name="org.gcube.common.events" level="WARN" />
|
||||
|
||||
|
||||
<logger name="org.gcube.data.analysis.nlphub" level="DEBUG">
|
||||
<appender-ref ref="NLP_FILE" />
|
||||
</logger>
|
||||
|
||||
<root level="WARN">
|
||||
<appender-ref ref="FILE" />
|
||||
</root>
|
||||
</configuration>
|
|
@ -1,36 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true" version="3.0">
|
||||
<display-name>NLPHub</display-name>
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
<welcome-file>index.htm</welcome-file>
|
||||
<welcome-file>index.jsp</welcome-file>
|
||||
<welcome-file>default.html</welcome-file>
|
||||
<welcome-file>default.htm</welcome-file>
|
||||
<welcome-file>default.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
<servlet>
|
||||
<servlet-name>NLPServlet</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.NLPHub</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>NLPServlet</servlet-name>
|
||||
<url-pattern>/nlphub-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet>
|
||||
<servlet-name>NLPUploader</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.NLPUploader</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>NLPUploader</servlet-name>
|
||||
<url-pattern>/nlphub-uploader-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet>
|
||||
<servlet-name>NLPMapper</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.NLPMapper</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>NLPMapper</servlet-name>
|
||||
<url-pattern>/nlphub-mapper-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
||||
metadata-complete="true" version="3.0">
|
||||
<display-name>NLPHub</display-name>
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
<welcome-file>index.htm</welcome-file>
|
||||
<welcome-file>index.jsp</welcome-file>
|
||||
<welcome-file>default.html</welcome-file>
|
||||
<welcome-file>default.htm</welcome-file>
|
||||
<welcome-file>default.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
<servlet>
|
||||
<servlet-name>NLPServlet</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.NLPHub</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>NLPServlet</servlet-name>
|
||||
<url-pattern>/nlphub-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet>
|
||||
<servlet-name>NLPUploader</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.NLPUploader</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>NLPUploader</servlet-name>
|
||||
<url-pattern>/nlphub-uploader-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet>
|
||||
<servlet-name>NLPMapper</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.NLPMapper</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>NLPMapper</servlet-name>
|
||||
<url-pattern>/nlphub-mapper-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet>
|
||||
<servlet-name>DiscoverDataMinerServlet</servlet-name>
|
||||
<servlet-class>org.gcube.data.analysis.nlphub.DiscoverDataMinerService</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>DiscoverDataMinerServlet</servlet-name>
|
||||
<url-pattern>/discover-dataminer-servlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
</web-app>
|
|
@ -27,7 +27,7 @@
|
|||
String requestToken=request.getParameter(Constants.TOKEN_PARAMETER);
|
||||
if( requestToken == null||requestToken.isEmpty()) {
|
||||
%>
|
||||
var gCubeToken = "";
|
||||
var gCubeToken = "fea75a5a-d84c-495f-b0ca-09cdd95bacce-843339462";
|
||||
<% } else { %>
|
||||
var gCubeToken = <%=requestToken%>
|
||||
|
||||
|
|
|
@ -27,11 +27,57 @@ $(document).ready(function() {
|
|||
console.log('HREF: '+appLocation);
|
||||
appRoot=contextPath;
|
||||
console.log('appRoot: '+ appRoot );
|
||||
evaluateRequest();
|
||||
});
|
||||
|
||||
evaluateRequest = function(){
|
||||
$(".popup-text").hide();
|
||||
disableExecuteButton();
|
||||
showAnnotationsList();
|
||||
checkAuth();
|
||||
}
|
||||
|
||||
checkAuth = function(){
|
||||
if(gCubeToken ===undefined || gCubeToken==null){
|
||||
alert("Unexpected error token is null!\n.");
|
||||
return null;
|
||||
}
|
||||
dataMinerClusterInfo();
|
||||
checkInputLink();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
dataMinerClusterInfo = function(){
|
||||
if(gCubeToken ===undefined || gCubeToken==null){
|
||||
alert("Unexpected error token is null!\n.");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
var discoverDataMinerServiceUrl=appRoot+"/discover-dataminer-servlet?gcube-token="+gCubeToken;
|
||||
|
||||
$.ajax({
|
||||
url : discoverDataMinerServiceUrl,
|
||||
type : "GET",
|
||||
async : true,
|
||||
success : function(data) {
|
||||
var dataminerHost=data;
|
||||
console.log("Retrieved dataMinerServiceUrl: "+dataminerHost);
|
||||
dataMiner=dataminerHost;
|
||||
//alert("DataMiner Host: "+dataminerHost);
|
||||
return;
|
||||
},
|
||||
error : function(request, error) {
|
||||
alert("Unexpected error reading from link: '" + discoverDataMinerServiceUrl
|
||||
+ "'\nStatus: " + request.status + "\nError: "
|
||||
+ error + "\n.");
|
||||
hideProgress();
|
||||
initApplication();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
checkInputLink = function() {
|
||||
if (inputFile != "") {
|
||||
|
@ -45,7 +91,7 @@ checkInputLink = function() {
|
|||
var uploaderUrl = appRoot
|
||||
+ "/nlphub-uploader-servlet?getlang=on&freetext="
|
||||
+ encodeURIComponent(freeText) + "&dataminer="
|
||||
+ encodeURIComponent(dataMiner);
|
||||
+ dataMiner; //encodeURIComponent(dataMiner);
|
||||
|
||||
if (gCubeToken.length > 0)
|
||||
uploaderUrl += "&gcube-token=" + gCubeToken;
|
||||
|
@ -90,8 +136,8 @@ initApplication = function() {
|
|||
contentType : "text/plain; charset=utf-8",
|
||||
success : function(data, stato) {
|
||||
$("#ner-result-container").hide();
|
||||
var lineTokens = manageCsvData(data);
|
||||
getAlgorithms(lineTokens);
|
||||
var algorithmsEnable = manageCsvData(data);
|
||||
getAlgorithms(algorithmsEnable);
|
||||
buildLanguageSelection();
|
||||
buildLanguageList();
|
||||
buildAnnotations();
|
||||
|
@ -111,7 +157,8 @@ initApplication = function() {
|
|||
disableExecuteButton();
|
||||
var uploaderUrl = appRoot
|
||||
+ "/nlphub-uploader-servlet?dataminer="
|
||||
+ encodeURIComponent(dataMiner);
|
||||
//+ encodeURIComponent(dataMiner);
|
||||
+ dataMiner;
|
||||
if (gCubeToken.length > 0)
|
||||
uploaderUrl += "&gcube-token=" + gCubeToken;
|
||||
|
||||
|
@ -272,7 +319,8 @@ setEventListeners = function() {
|
|||
+ "/nlphub-uploader-servlet?freetext="
|
||||
+ encodeURIComponent(freeText)
|
||||
+ "&dataminer="
|
||||
+ encodeURIComponent(dataMiner);
|
||||
//+ encodeURIComponent(dataMiner);
|
||||
+dataMiner;
|
||||
|
||||
if (gCubeToken.length > 0)
|
||||
uploaderUrl += "&gcube-token=" + gCubeToken;
|
||||
|
@ -327,8 +375,11 @@ enableAjaxFileUpload = function() {
|
|||
$(".ajax-file-upload").attr("enabled", "true");
|
||||
$(".ajax-file-upload").css("background", pageGreen);
|
||||
try {
|
||||
document.getElementById("ajax-file-upload-id").removeEventListener(
|
||||
var fUploadElement=document.getElementById("ajax-file-upload-id");
|
||||
if(fUploadElement!=null){
|
||||
fUploadElement.removeEventListener(
|
||||
"click", listenAjaxFileUpload);
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err.message);
|
||||
}
|
||||
|
@ -428,8 +479,8 @@ manageCsvData = function(data) {
|
|||
|
||||
lineTokens.push(tokens);
|
||||
var description = tokens[1].toUpperCase().trim();
|
||||
if (description == "CLOUD COMPUTING")
|
||||
dataMiner = tokens[2];
|
||||
/*if (description == "CLOUD COMPUTING")
|
||||
dataMiner = tokens[2];*/
|
||||
tokens = [];
|
||||
}
|
||||
|
||||
|
@ -605,7 +656,7 @@ runAlgorithm = function() {
|
|||
algList = algList.substring(0, algList.length - 1);
|
||||
|
||||
var parameters = "annotations=" + annList;
|
||||
parameters += "&dataminer=" + encodeURIComponent(dataMiner);
|
||||
parameters += "&dataminer=" +dataMiner; //+ encodeURIComponent(dataMiner);
|
||||
parameters += "&lang=" + $("#language-select").val();
|
||||
parameters += "&plink=" + encodeURIComponent(publicLink);
|
||||
parameters += "&algs=" + algList;
|
||||
|
@ -822,10 +873,14 @@ getAlgInformation = function(alg) {
|
|||
return;
|
||||
}
|
||||
|
||||
console.log("getAlgorithm from dataMiner: "+dataMiner);
|
||||
|
||||
var parameters = "getInfo=on";
|
||||
parameters += "&dataminer=" + encodeURIComponent(dataMiner);
|
||||
parameters += "&dataminer=" + dataMiner; //encodeURIComponent(dataMiner);
|
||||
parameters += "&algId=" + algId;
|
||||
|
||||
console.log("parameters: "+parameters);
|
||||
|
||||
var nlphubUrl = appRoot + "/nlphub-servlet?" + parameters;
|
||||
if (gCubeToken.length > 0)
|
||||
nlphubUrl += "&gcube-token=" + gCubeToken;
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
package nlphub;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
import javax.xml.stream.FactoryConfigurationError;
|
||||
import javax.xml.stream.XMLInputFactory;
|
||||
import javax.xml.stream.XMLStreamConstants;
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamReader;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.gcube.data.analysis.nlphub.shared.Constants;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class DiscoverDataMinerServiceTest {
|
||||
private static final Logger logger = LoggerFactory.getLogger(DiscoverDataMinerServiceTest.class);
|
||||
|
||||
@Test
|
||||
public void discover() {
|
||||
if (Constants.TEST_ENABLE) {
|
||||
|
||||
try {
|
||||
String dataMinerServiceUrl = null;
|
||||
String urlInformationSystem = "http://registry.d4science.org/icproxy/gcube/service/ServiceEndpoint/DataAnalysis/DataMiner?";
|
||||
|
||||
logger.debug("Request url: " + urlInformationSystem);
|
||||
urlInformationSystem += "gcube-token=" + "f57441ac-b361-4c2d-992a-40db034f1b8c-843339462";
|
||||
URL url = new URL(urlInformationSystem);
|
||||
|
||||
HttpURLConnection connection = null;
|
||||
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("GET");
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(false);
|
||||
connection.setUseCaches(false);
|
||||
|
||||
try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||||
dataMinerServiceUrl = readProfileInfo(r);
|
||||
}
|
||||
|
||||
logger.debug("DataMinerServiceUrl: " + dataMinerServiceUrl);
|
||||
Assert.assertTrue(true);
|
||||
} catch (Throwable e) {
|
||||
logger.error("Error retrieving DataMinerServiceUrl: "+e.getLocalizedMessage(),e);
|
||||
Assert.fail("Error retrieving DataMinerServiceUrl: "+e.getLocalizedMessage());
|
||||
}
|
||||
} else {
|
||||
Assert.assertTrue(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String readProfileInfo(BufferedReader r) throws FactoryConfigurationError, XMLStreamException {
|
||||
String dataMinerServiceUrl = null;
|
||||
XMLInputFactory xmlInFact = XMLInputFactory.newInstance();
|
||||
XMLStreamReader reader = xmlInFact.createXMLStreamReader(r);
|
||||
while (reader.hasNext()) {
|
||||
int eventType = reader.next();
|
||||
if (eventType == XMLStreamConstants.START_ELEMENT) {
|
||||
logger.debug("Read Element: " + reader.getLocalName());
|
||||
if (reader.getLocalName().compareToIgnoreCase("EndPoint") == 0) {
|
||||
logger.debug("Attribute count:" + reader.getAttributeCount());
|
||||
for (int i = 0; i < reader.getAttributeCount(); i++) {
|
||||
logger.debug("Attribute Name: " + reader.getAttributeName(i));
|
||||
logger.debug("Attribute Value: " + reader.getAttributeValue(i));
|
||||
if (reader.getAttributeName(i).toString().compareToIgnoreCase("EntryName") == 0
|
||||
&& reader.getAttributeValue(i).toString()
|
||||
.compareToIgnoreCase("dataminer-prototypes.d4science.org") == 0) {
|
||||
dataMinerServiceUrl = reader.getElementText();
|
||||
dataMinerServiceUrl = dataMinerServiceUrl.replace("\\n", "").replace("\\r", "");
|
||||
logger.debug("DataMiner service url retrieved: " + dataMinerServiceUrl);
|
||||
return dataMinerServiceUrl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return dataMinerServiceUrl;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue