parent
d9dfa5a06d
commit
688a3183cd
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
<wb-module deploy-name="nlphub-1.0.1-SNAPSHOT">
|
||||
<wb-module deploy-name="nlphub-1.1.0-SNAPSHOT">
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<root>
|
||||
<facet id="jst.jaxrs">
|
||||
<node name="libprov">
|
||||
<attribute name="provider-id" value="jaxrs-no-op-library-provider"/>
|
||||
</node>
|
||||
</facet>
|
||||
</root>
|
|
@ -4,4 +4,5 @@
|
|||
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||
<installed facet="java" version="1.8"/>
|
||||
<installed facet="jst.web" version="3.0"/>
|
||||
<installed facet="jst.jaxrs" version="2.0"/>
|
||||
</faceted-project>
|
||||
|
|
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -2,8 +2,15 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
|
||||
# Changelog for "nlphub"
|
||||
|
||||
## [v1.1.0] - 2020-09-08
|
||||
|
||||
## [v1-0-1] - 2019-06-18
|
||||
### Features
|
||||
|
||||
- Updated to StorageHub [#21970]
|
||||
|
||||
|
||||
|
||||
## [v1.0.1] - 2019-06-18
|
||||
|
||||
### Features
|
||||
|
||||
|
@ -11,7 +18,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
|
||||
|
||||
|
||||
## [v1-0-0] - 2019-02-25
|
||||
## [v1.0.0] - 2019-02-25
|
||||
|
||||
### Features
|
||||
|
||||
|
|
11
pom.xml
11
pom.xml
|
@ -12,7 +12,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.gcube.data.analysis</groupId>
|
||||
<artifactId>nlphub</artifactId>
|
||||
<version>1.0.1-SNAPSHOT</version>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
|
||||
<scm>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<dependency>
|
||||
<groupId>org.gcube.distribution</groupId>
|
||||
<artifactId>maven-portal-bom</artifactId>
|
||||
<version>3.6.0</version>
|
||||
<version>3.6.3</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
@ -129,6 +129,12 @@
|
|||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- StorageHub -->
|
||||
<dependency>
|
||||
<groupId>org.gcube.common</groupId>
|
||||
<artifactId>storagehub-client-library</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- LOGGER -->
|
||||
<dependency>
|
||||
|
@ -142,6 +148,7 @@
|
|||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- JUnit TEST -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
|
|
|
@ -50,7 +50,8 @@ public class DiscoverDataMinerService extends HttpServlet {
|
|||
|
||||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
logger.debug("Discover DataMinerService");
|
||||
String token = SessionUtils.getToken(request);
|
||||
SessionUtils sessionUtils=new SessionUtils();
|
||||
String token = sessionUtils.getToken(request);
|
||||
|
||||
discoverDataMinerService(request, response, token);
|
||||
|
||||
|
|
|
@ -52,7 +52,8 @@ public class NLPHub extends HttpServlet {
|
|||
|
||||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
logger.debug("NLPHub");
|
||||
String token = SessionUtils.getToken(request);
|
||||
SessionUtils sessionUtils=new SessionUtils();
|
||||
String token = sessionUtils.getToken(request);
|
||||
|
||||
if (request.getParameter("getInfo") != null) {
|
||||
getAlgorithmInfo(request, response, token);
|
||||
|
|
|
@ -41,7 +41,8 @@ public class NLPInit extends HttpServlet {
|
|||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
|
||||
logger.debug("NLPInit");
|
||||
String token = SessionUtils.getToken(request);
|
||||
SessionUtils sessionUtils=new SessionUtils();
|
||||
String token = sessionUtils.getToken(request);
|
||||
String res = request.getParameter(Constants.REQUEST);
|
||||
RequestType r=RequestType.getRequestTypeFromString(res);
|
||||
if(r==null){
|
||||
|
|
|
@ -59,7 +59,8 @@ public class NLPMapper extends HttpServlet {
|
|||
|
||||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
logger.debug("NLPMapper");
|
||||
String token = SessionUtils.getToken(request);
|
||||
SessionUtils sessionUtils=new SessionUtils();
|
||||
String token = sessionUtils.getToken(request);
|
||||
WorkspaceManager ws = new WorkspaceManager();
|
||||
|
||||
response.setContentType("application/json");
|
||||
|
@ -154,14 +155,14 @@ public class NLPMapper extends HttpServlet {
|
|||
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);
|
||||
ws.deleteFile(fileName);
|
||||
|
||||
byte[] byteContent = jsonResult.getBytes(StandardCharsets.UTF_8);
|
||||
if (!ws.uploadFile(byteContent, fileName, Constants.DEFAULT_DESCRIPTION, token)) {
|
||||
if (!ws.uploadFile(byteContent, fileName, Constants.DEFAULT_DESCRIPTION)) {
|
||||
throw new NlpHubException("Error writing file: " + fileName + " on workspace (token: " + token + ")", null);
|
||||
}
|
||||
|
||||
String link = ws.getPublicLink(fileName, token);
|
||||
String link = ws.getPublicLink(fileName);
|
||||
|
||||
logger.info("Output json [" + fileName + "] created in " + (System.currentTimeMillis() - now) + " millisec.");
|
||||
return link;
|
||||
|
|
|
@ -62,7 +62,8 @@ public class NLPUploader extends HttpServlet {
|
|||
|
||||
private void doWork(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
logger.debug("NLPUploader");
|
||||
String token = SessionUtils.getToken(request);
|
||||
SessionUtils sessionUtils=new SessionUtils();
|
||||
String token = sessionUtils.getToken(request);
|
||||
WorkspaceManager ws = new WorkspaceManager();
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
if (request.getParameter("freetext") == null)
|
||||
|
@ -85,12 +86,12 @@ public class NLPUploader extends HttpServlet {
|
|||
String fileName = generateFileName();
|
||||
PrintWriter writer = response.getWriter();
|
||||
try {
|
||||
if (!ws.uploadFile(content, fileName, Constants.DEFAULT_DESCRIPTION, token)) {
|
||||
if (!ws.uploadFile(content, fileName, Constants.DEFAULT_DESCRIPTION)) {
|
||||
writer.println(new JsonManager().getErrorJsonResponse(
|
||||
"Error uploading file. A file called '" + fileName + "' is already in the workspace?"));
|
||||
return;
|
||||
}
|
||||
String link = ws.getPublicLink(fileName, token);
|
||||
String link = ws.getPublicLink(fileName);
|
||||
if (langParameter != null) {
|
||||
String sentence = NlpUtils.getLanguageRecognizerDigest(new String(content));
|
||||
logger.info(sentence);
|
||||
|
@ -143,15 +144,15 @@ public class NLPUploader extends HttpServlet {
|
|||
String stringContent = new String(bufferedContent);
|
||||
stringContent = NlpUtils.replaceDirtyCharacters(stringContent);
|
||||
|
||||
ws.deleteFile(fileName, token);
|
||||
ws.deleteFile(fileName);
|
||||
|
||||
if (!ws.uploadFile(stringContent.getBytes(), fileName, Constants.DEFAULT_DESCRIPTION, token)) {
|
||||
if (!ws.uploadFile(stringContent.getBytes(), fileName, Constants.DEFAULT_DESCRIPTION)) {
|
||||
writer.println(new JsonManager().getErrorJsonResponse(
|
||||
"Error uploading file. A file called '" + fileName + "' is already in the workspace?"));
|
||||
return;
|
||||
}
|
||||
|
||||
String link = ws.getPublicLink(fileName, token);
|
||||
String link = ws.getPublicLink(fileName);
|
||||
String sentence = NlpUtils.getLanguageRecognizerDigest(stringContent);
|
||||
logger.info(sentence);
|
||||
try {
|
||||
|
|
|
@ -4,6 +4,9 @@ public class NlpHubException extends Exception {
|
|||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public NlpHubException(String message) {
|
||||
super(message);
|
||||
}
|
||||
public NlpHubException(String message, Throwable throwable) {
|
||||
super(message, throwable);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,12 @@ package org.gcube.data.analysis.nlphub.session;
|
|||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.gcube.common.authorization.library.AuthorizationEntry;
|
||||
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
|
||||
import org.gcube.common.authorization.library.provider.ClientInfo;
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.authorization.library.utils.Caller;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.data.analysis.nlphub.shared.Constants;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -10,37 +16,50 @@ import org.slf4j.LoggerFactory;
|
|||
public class SessionUtils {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SessionUtils.class);
|
||||
|
||||
public static String getToken(HttpServletRequest request) throws ServletException {
|
||||
public 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.debug("Token is null");
|
||||
throw new ServletException("Token is null");
|
||||
}
|
||||
|
||||
setAuth(token);
|
||||
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);
|
||||
}
|
||||
|
||||
private void setAuth(String token) throws ServletException {
|
||||
try {
|
||||
SecurityTokenProvider.instance.set(token);
|
||||
AuthorizationEntry authorizationEntry = org.gcube.common.authorization.client.Constants
|
||||
.authorizationService().get(token);
|
||||
ClientInfo clientInfo = authorizationEntry.getClientInfo();
|
||||
logger.debug("User : {} - Type : {}", clientInfo.getId(), clientInfo.getType().name());
|
||||
String qualifier = authorizationEntry.getQualifier();
|
||||
Caller caller = new Caller(clientInfo, qualifier);
|
||||
AuthorizationProvider.instance.set(caller);
|
||||
ScopeProvider.instance.set(authorizationEntry.getContext());
|
||||
} catch (Exception e) {
|
||||
logger.error("Error in set context: " + e.getLocalizedMessage(), e);
|
||||
throw new ServletException("Error in set context: " + e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
/*
|
||||
* 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); }
|
||||
*
|
||||
* }
|
||||
*
|
||||
* }
|
||||
*/
|
||||
|
||||
}
|
||||
|
|
|
@ -1,147 +1,158 @@
|
|||
package org.gcube.data.analysis.nlphub.workspace;
|
||||
|
||||
import static org.gcube.common.authorization.client.Constants.authorizationService;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.FolderContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ListResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
import org.gcube.data.analysis.nlphub.legacy.NlpHubException;
|
||||
import org.gcube.data.analysis.nlphub.shared.Constants;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class WorkspaceManager {
|
||||
private static final Logger logger = LoggerFactory.getLogger(WorkspaceManager.class);
|
||||
|
||||
public String getPublicLink(String fileName, String token) throws NlpHubException {
|
||||
try {
|
||||
String link = "";
|
||||
String user = authorizationService().get(token).getClientInfo().getId();
|
||||
String wsRoot = "/Home/" + user + "/Workspace/";
|
||||
String webapp = "https://workspace-repository.d4science.org/home-library-webapp";
|
||||
String uri = webapp + "/rest/GetPublicLink?absPath=" + URLEncoder.encode(wsRoot + fileName, "UTF-8")
|
||||
+ "&shortUrl=false";
|
||||
URL url = new URL(uri);
|
||||
public String getPublicLink(String fileName) throws NlpHubException {
|
||||
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestProperty(Constants.TOKEN_PARAMETER, token);
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setRequestMethod("GET");
|
||||
|
||||
BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||
|
||||
StringBuffer response = new StringBuffer();
|
||||
String inputLine;
|
||||
while ((inputLine = r.readLine()) != null) {
|
||||
response.append(inputLine);
|
||||
}
|
||||
|
||||
String xmlOut = response.toString();
|
||||
|
||||
String begin = "<string>";
|
||||
String end = "</string>";
|
||||
int b = xmlOut.indexOf(begin);
|
||||
int e = xmlOut.indexOf(end);
|
||||
|
||||
if (xmlOut.contains("Exception") || (e < 0) || (b < 0)) {
|
||||
String message = "Invalid link: " + URLEncoder.encode(xmlOut, "UTF-8");
|
||||
logger.error(message);
|
||||
throw new NlpHubException(message, null);
|
||||
}
|
||||
|
||||
link = xmlOut.substring(b + begin.length(), e);
|
||||
return link;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Error in WorkspaceManager for getPublicLink: "+e.getLocalizedMessage(), e);
|
||||
throw new NlpHubException("Error in WorkspaceManager for getPublicLink: "+e.getLocalizedMessage(), e);
|
||||
if (fileName == null || fileName.isEmpty()) {
|
||||
String error = "Error in get public link, the filename requested is invalid: Null";
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteFile(String fileName, String token) throws NlpHubException {
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
FolderContainer rootContainer = shc.getWSRoot();
|
||||
|
||||
ListResolver listResolver;
|
||||
try {
|
||||
String user = authorizationService().get(token).getClientInfo().getId();
|
||||
String wsRoot = "/Home/" + user + "/Workspace/";
|
||||
String webapp = "https://workspace-repository.d4science.org/home-library-webapp";
|
||||
String uri = webapp + "/rest/Delete?absPath=" + URLEncoder.encode(wsRoot + fileName, "UTF-8");
|
||||
URL url = new URL(uri);
|
||||
|
||||
// System.out.println(uri);
|
||||
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestProperty(Constants.TOKEN_PARAMETER, token);
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setRequestMethod("GET");
|
||||
|
||||
BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||
|
||||
StringBuffer response = new StringBuffer();
|
||||
String inputLine;
|
||||
while ((inputLine = r.readLine()) != null) {
|
||||
response.append(inputLine);
|
||||
}
|
||||
|
||||
String xmlOut = response.toString();
|
||||
logger.debug("deleteFile: " + xmlOut);
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new NlpHubException(e.getLocalizedMessage(), e);
|
||||
listResolver = rootContainer.findByName(fileName);
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error retrieving SH Id for file " + fileName + " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean uploadFile(byte[] in, String name, String description, String token) throws NlpHubException {
|
||||
OutputStream output = null;
|
||||
List<? extends Item> items;
|
||||
try {
|
||||
String user = authorizationService().get(token).getClientInfo().getId();
|
||||
String wsRoot = "/Home/" + user + "/Workspace/";
|
||||
String webapp = "https://workspace-repository.d4science.org/home-library-webapp";
|
||||
String uri = webapp + "/rest/Upload?name=" + URLEncoder.encode(name, "UTF-8") + "&description="
|
||||
+ URLEncoder.encode(description, "UTF-8") + "&parentPath=" + URLEncoder.encode(wsRoot, "UTF-8");
|
||||
URL url = new URL(uri);
|
||||
items = listResolver.getItems();
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error retrieving SH Id for file " + fileName + " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestProperty(Constants.TOKEN_PARAMETER, token);
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setRequestProperty(Constants.CONTENT_TYPE, Constants.MIME_TEXT);
|
||||
connection.setRequestMethod("POST");
|
||||
output = connection.getOutputStream();
|
||||
output.write(in);
|
||||
|
||||
BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||
|
||||
StringBuffer response = new StringBuffer();
|
||||
String inputLine;
|
||||
while ((inputLine = r.readLine()) != null) {
|
||||
response.append(inputLine);
|
||||
}
|
||||
|
||||
String xmlOut = response.toString();
|
||||
if (xmlOut.contains("Exception"))
|
||||
return false;
|
||||
return true;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new NlpHubException(e.getLocalizedMessage(), e);
|
||||
} finally {
|
||||
// output stream must be closed anyway...
|
||||
if (output != null)
|
||||
if (items == null || items.isEmpty()) {
|
||||
String error = "Error file not found in workspace: " + fileName;
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
} else {
|
||||
Item item = items.get(0);
|
||||
logger.debug("Item: " + item);
|
||||
if (item != null) {
|
||||
logger.debug("Item Id=" + item.getId());
|
||||
URL url;
|
||||
try {
|
||||
output.close();
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
url = shc.open(item.getId()).asFile().getPublicLink();
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error in get public link for file " + fileName + " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
logger.debug("getPublicLink: " + url);
|
||||
return url.toString();
|
||||
} else {
|
||||
String error = "Error file not found in workspace: " + fileName;
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void deleteFile(String fileName) throws NlpHubException {
|
||||
if (fileName == null || fileName.isEmpty()) {
|
||||
String error = "Error in delete file, the filename requested is invalid: Null";
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
}
|
||||
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
FolderContainer rootContainer = shc.getWSRoot();
|
||||
|
||||
ListResolver listResolver;
|
||||
try {
|
||||
listResolver = rootContainer.findByName(fileName);
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error retrieving SH Id for file " + fileName + " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
|
||||
List<? extends Item> items;
|
||||
try {
|
||||
items = listResolver.getItems();
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error retrieving SH Id for file " + fileName + " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
|
||||
if (items == null || items.isEmpty()) {
|
||||
String error = "Error file not found in workspace: " + fileName;
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
} else {
|
||||
Item item = items.get(0);
|
||||
logger.debug("Item: " + item);
|
||||
if (item != null) {
|
||||
logger.debug("Item Id=" + item.getId());
|
||||
try {
|
||||
OpenResolver openResolver = shc.open(item.getId());
|
||||
ItemContainer<Item> itemContainer = openResolver.asItem();
|
||||
itemContainer.delete();
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error in delete operation for file " + fileName + " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
|
||||
} else {
|
||||
String error = "Error file not found in workspace: " + fileName;
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean uploadFile(byte[] in, String name, String description) throws NlpHubException {
|
||||
if (name == null || name.isEmpty()) {
|
||||
String error = "Error uploading the file, the filename is invalid: Null";
|
||||
logger.error(error);
|
||||
throw new NlpHubException(error);
|
||||
}
|
||||
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
FolderContainer rootContainer = shc.getWSRoot();
|
||||
InputStream inputStream = new ByteArrayInputStream(in);
|
||||
|
||||
try {
|
||||
FileContainer fileContainer = rootContainer.uploadFile(inputStream,
|
||||
name,description);
|
||||
logger.debug("Item uploaded: " + fileContainer.get().getId());
|
||||
} catch (StorageHubException e) {
|
||||
String error = "Error uploading the file " + name+ " : " + e.getLocalizedMessage();
|
||||
logger.error(error, e);
|
||||
throw new NlpHubException(error, e);
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue