94 lines
3.0 KiB
Java
94 lines
3.0 KiB
Java
package org.gcube.portlets.user.dataminerexecutor.server.invocation;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.URL;
|
|
import java.net.URLConnection;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
|
|
import javax.xml.bind.JAXBException;
|
|
|
|
import org.gcube.data.analysis.dataminermanagercl.shared.exception.ServiceException;
|
|
import org.gcube.data.analysis.dminvocation.DataMinerInvocationManager;
|
|
import org.gcube.data.analysis.dminvocation.model.DataMinerInvocation;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.xml.sax.SAXException;
|
|
|
|
public class InvocationManager {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(InvocationManager.class);
|
|
private static final String INVOCATION_NAME = "DMInvocation";
|
|
private static final String INVOCATION_XML_EXTENTION = ".xml";
|
|
private DataMinerInvocationManager manager;
|
|
|
|
public InvocationManager() throws ServiceException {
|
|
try {
|
|
manager = DataMinerInvocationManager.getInstance();
|
|
} catch (JAXBException | IOException | SAXException e) {
|
|
logger.error("Error in DataMiner Invocation Manager: " + e.getLocalizedMessage(), e);
|
|
throw new ServiceException("Error in DataMiner Invocation Manager: " + e.getLocalizedMessage());
|
|
}
|
|
|
|
}
|
|
|
|
public DataMinerInvocation readInvocation(String invocationFileUrl) throws ServiceException {
|
|
try {
|
|
|
|
logger.info("Read DataMiner Invocation Model");
|
|
Path destination = Files.createTempFile(INVOCATION_NAME, INVOCATION_XML_EXTENTION);
|
|
logger.info("Destination: [destination=" + destination + "]");
|
|
|
|
logger.info("Read invocation: [fileUrl=" + invocationFileUrl+"]");
|
|
URL smpFile = new URL(invocationFileUrl);
|
|
URLConnection uc = (URLConnection) smpFile.openConnection();
|
|
|
|
DataMinerInvocation dmInvocation=null;
|
|
|
|
try (InputStream is = uc.getInputStream();) {
|
|
dmInvocation = manager.unmarshalingXML(uc.getInputStream(), true);
|
|
}
|
|
|
|
logger.debug("DMInvocation: "+dmInvocation);
|
|
return dmInvocation;
|
|
|
|
} catch (Throwable e) {
|
|
logger.error("Error reading DataMiner invocation file: " + e.getLocalizedMessage(), e);
|
|
throw new ServiceException("Error reading DataMiner invocation file: "+e.getLocalizedMessage());
|
|
}
|
|
}
|
|
//
|
|
// public void readInvocation(String invocationFileUrl) throws ServiceException {
|
|
//
|
|
// try {
|
|
// Path file=retrieveFile(invocationFileUrl);
|
|
//
|
|
// try (InputStream in = Files.newInputStream(uc.getrn_demo)) {
|
|
// while ((n = in.read()) != -1) {
|
|
// System.out.print((char) n);
|
|
// }
|
|
// } catch (IOException e) {
|
|
// System.err.println(e);
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// List<String> lines = createInfoTxtData();
|
|
// Files.write(tempFile, lines, Charset.defaultCharset(), StandardOpenOption.WRITE);
|
|
// logger.debug(tempFile.toString());
|
|
// return tempFile;
|
|
//
|
|
// } catch (IOException e) {
|
|
// logger.error(e.getLocalizedMessage());
|
|
// e.printStackTrace();
|
|
// throw new ServiceException(e.getLocalizedMessage(), e);
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// }
|
|
}
|