aboutsummaryrefslogtreecommitdiff
path: root/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java')
-rw-r--r--DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java522
1 files changed, 0 insertions, 522 deletions
diff --git a/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java b/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java
deleted file mode 100644
index 913c2f704..000000000
--- a/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java
+++ /dev/null
@@ -1,522 +0,0 @@
-package eu.stork.documentservice;
-
-import java.util.Date;
-import java.util.Properties;
-import java.util.UUID;
-
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.soap.MTOM;
-
-import org.apache.log4j.Logger;
-
-import com.sun.tools.ws.processor.model.ModelException;
-
-import eu.stork.documentservice.data.DatabaseConnector;
-import eu.stork.documentservice.data.DatabaseConnectorMySQLImpl;
-import eu.stork.documentservice.model.DocumentModel;
-import eu.stork.documentservice.model.RequestModel;
-import eu.stork.documentservice.model.TempDocumentModel;
-import eu.stork.documentservice.utils.ExternalDocservice;
-import eu.stork.documentservice.utils.XmlHelper;
-
-@MTOM(threshold=500)
-@WebService(endpointInterface = "eu.stork.documentservice.DocumentService", targetNamespace = "http://stork.eu", portName = "DocumentServicePort", serviceName = "DocumentService")
-public class DocumentServiceImpl implements DocumentService
-{
- //final static String PATH = "C:/Temp/upload/";
- static String COUNTRY;
- private DatabaseConnector conn;
- private Properties props = new Properties();
- private static final Logger LOG = Logger.getLogger(DocumentServiceImpl.class.getName());
-
- @Override
- public String addDocument(byte[] document, String xmlRequest, String destinationCountry, String SpId, String mimeType, String receiverCert) {
- String returnMessage = "";
- if (document != null)
- {
- try
- {
- LOG.trace("Adding document starting, document size: " + Integer.toString(document.length)
- + ", destination country: " + destinationCountry + ", SP Id: " + SpId
- + ", mime type: " + mimeType + ", receiver cert: " + receiverCert);
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- COUNTRY = props.getProperty("peps.country");
- RequestModel request = new RequestModel();
- request.setDestcountry(destinationCountry);
- request.setSpcountry(COUNTRY);
- request.setSpid(SpId);
- request.setRequestid(XmlHelper.getRequestId(xmlRequest));
- request.setXmlrequest(xmlRequest);
-
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- boolean ok = conn.addRequest(request);
- if (ok)
- {
- LOG.trace("Request added.");
- DocumentModel doc = new DocumentModel();
- doc.setDocid(UUID.randomUUID().toString());
- doc.setDocument(document);
- doc.setMimetype(mimeType);
- doc.setReicevercert(receiverCert);
- ok = conn.addDocument(doc);
- if (ok)
- {
- LOG.trace("Document added.");
- RequestModel req = conn.getRequest(request.getRequestid());
- if (req != null)
- {
- LOG.trace("Request found.");
- req.setDocid(doc.getDocid());
- if (conn.updateRequest(req))
- returnMessage = req.getFullDocID();
- else
- {
- LOG.warn("Could not update request.");
- throw new WebServiceException("Could not update request.");
- }
- }
- }
- else
- {
- LOG.warn("Could not add document.");
- throw new WebServiceException("Could not add document.");
- }
- }
- else
- {
- LOG.warn("Could not add request.");
- throw new WebServiceException("Could not add request.");
- }
- }
- catch (ModelException e)
- {
- LOG.error("Invalid model in input", e);
- e.printStackTrace();
- throw new WebServiceException("Invalid input.", e);
- }
- catch (Exception e)
- {
- LOG.error("Exception in addDocument.", e);
- e.printStackTrace();
- throw new WebServiceException("Upload Failed");
- }
- LOG.trace("Add document ending, return message: " + returnMessage);
- return returnMessage;
- }
- else
- throw new WebServiceException("No document to upload.");
- }
-
- @Override
- public byte[] getDocument(String documentTransferRequest, String dtlUrl)
- {
- try
- {
- String docId = XmlHelper.verifyRequest(documentTransferRequest);
- if (docId != null && !docId.isEmpty())
- {
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- String ownDtlUrl = props.getProperty("docservice.url");
- LOG.trace("Getting document starting for docId: " + docId);
- if (dtlUrl != null && !dtlUrl.isEmpty() && !ownDtlUrl.equalsIgnoreCase(dtlUrl))
- {
- LOG.trace("Getting document from external DTL for docId: " + docId);
- byte[] documentData = ExternalDocservice.getDocument(documentTransferRequest, dtlUrl);
- if (documentData != null)
- {
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- if (doc != null)
- {
- doc.setDocument(documentData);
- conn.updateDocument(doc);
- }
- else
- {
- doc = new DocumentModel();
- doc.setDocid(docId);
- doc.setDocument(documentData);
- doc.setMimetype(ExternalDocservice.getDocumentMime(docId, dtlUrl));
- //TODO handle cert
- doc.setReicevercert("");
- conn.addDocument(doc);
- }
- }
-
- LOG.trace("Getting document from external DTL ending.");
- return documentData;
- }
- else
- {
- LOG.trace("Getting document from database for docId: " + docId);
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- LOG.trace("Getting document from database ending.");
- return doc.getDocument();
- }
- }
- else
- {
- LOG.warn("Document id is null");
- throw new WebServiceException("Document Id is null");
- }
- }
- catch (Exception e)
- {
- LOG.error("Exception in getDocument.", e);
- e.printStackTrace();
- throw new WebServiceException("Download Failed", e);
- }
- }
-
- @Override
- /**
- * Get document mime type
- */
- public String getDocumentMime(String docId, String dtlUrl)
- {
- try
- {
- if (docId != null && !docId.isEmpty())
- {
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- String ownDtlUrl = props.getProperty("docservice.url");
- docId = XmlHelper.StripDocId(docId);
- LOG.trace("Getting mime starting for docId: " + docId);
- if (dtlUrl != null && !dtlUrl.isEmpty() && !ownDtlUrl.equalsIgnoreCase(dtlUrl))
- {
- LOG.trace("Getting mime from external DTL for docId: " + docId);
- String documentMime = ExternalDocservice.getDocumentMime(docId, dtlUrl);
- if (documentMime != null && !documentMime.isEmpty())
- {
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- if (doc != null)
- {
- doc.setMimetype(documentMime);
- conn.updateDocument(doc);
- }
- }
- LOG.trace("Getting mime from external DTL ending, docId: " + docId + ", mime " + documentMime);
- return documentMime;
- }
- else
- {
- LOG.trace("Getting mime from dabase for docId: " + docId);
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- LOG.trace("Getting mime from database ending, docId: " + docId + ", mime " + doc.getMimetype());
- return doc.getMimetype();
- }
- }
- else
- {
- LOG.warn("Document id is null");
- throw new WebServiceException("Document Id is null");
- }
- }
- catch (Exception e)
- {
- LOG.error("Exception in getDocumentMime.", e);
- e.printStackTrace();
- throw new WebServiceException("Download Failed", e);
- }
- }
-
- @Override
- /**
- * Update document in document service
- */
- public boolean updateDocument(String docId, String xmlResponse, byte[] document)
- {
- boolean success = false;
- if (docId != null && !docId.isEmpty())
- {
- if (document != null)
- {
- try
- {
- docId = XmlHelper.StripDocId(docId);
- LOG.trace("Starting document update for docId: " + docId);
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- if(doc != null)
- {
- doc.setDocument(document);
- success = conn.updateDocument(doc);
- if (success && xmlResponse != null && !xmlResponse.isEmpty())
- {
- RequestModel request = conn.getRequestByDocId(docId);
- if (request != null)
- {
- request.setXmlresponse(xmlResponse);
- request.setRestimestamp(new Date());
- success = conn.updateRequest(request);
- }
- }
- LOG.trace("Document " + docId + " updated successfully: " + Boolean.toString(success));
- }
- else
- {
- LOG.warn("No document found for docId: " + docId);
- throw new WebServiceException("Document is null");
- }
- }
- catch (Exception e)
- {
- LOG.error("Exception in updateDocument.", e);
- e.printStackTrace();
- throw new WebServiceException("Update Failed", e);
- }
- }
- }
- else
- {
- LOG.warn("Document id is null");
- throw new WebServiceException("Document Id is null");
- }
-
- return success;
- }
-
- @Override
- public String addSPDocument(String docId, String xmlRequest, String destinationCountry, String SpId, String receiverCert)
- {
- String returnMessage = "";
- if (docId != null && !docId.isEmpty())
- {
- try
- {
- LOG.trace("Adding document starting, document ID: " + docId
- + ", destination country: " + destinationCountry + ", SP Id: " + SpId
- + ", receiver cert: " + receiverCert);
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- COUNTRY = props.getProperty("peps.country");
- RequestModel request = new RequestModel();
- request.setDestcountry(destinationCountry);
- request.setSpcountry(COUNTRY);
- request.setSpid(SpId);
- request.setRequestid(XmlHelper.getRequestId(xmlRequest));
- request.setXmlrequest(xmlRequest);
-
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- boolean ok = conn.addRequest(request);
- if (ok)
- {
- LOG.trace("Request added.");
- LOG.trace("Getting temp document.");
- TempDocumentModel tempDoc = conn.getTempDocument(docId);
- if (tempDoc != null)
- {
- LOG.trace("Got temp document.");
- conn.updateTempDocument(tempDoc);
- LOG.trace("Temp document updated.");
- DocumentModel doc = new DocumentModel();
- doc.setDocid(tempDoc.getDocid());
- doc.setDocument(tempDoc.getDocument());
- doc.setMimetype(tempDoc.getMimetype());
- doc.setReicevercert(receiverCert);
- ok = conn.addDocument(doc);
- if (ok)
- {
- LOG.trace("Document added.");
- RequestModel req = conn.getRequest(request.getRequestid());
- if (req != null)
- {
- LOG.trace("Request found.");
- req.setDocid(doc.getDocid());
- if (conn.updateRequest(req))
- returnMessage = req.getFullDocID();
- else
- {
- LOG.warn("Could not update request.");
- throw new WebServiceException("Could not update request.");
- }
- }
- }
- else
- {
- LOG.warn("Could not add document.");
- throw new WebServiceException("Could not add document.");
- }
- }
- else
- {
- LOG.warn("No document found with id " + docId);
- throw new WebServiceException("No document found.");
- }
- }
- else
- {
- LOG.warn("Could not add request.");
- throw new WebServiceException("Could not add request.");
- }
- }
- catch (ModelException e)
- {
- LOG.error("Invalid model in input", e);
- e.printStackTrace();
- throw new WebServiceException("Invalid input.", e);
- }
- catch (Exception e)
- {
- LOG.error("Exception in addSPDocument.", e);
- e.printStackTrace();
- throw new WebServiceException("Upload Failed");
- }
- LOG.trace("Add SP document ending, return message: " + returnMessage);
- }
- else
- {
- LOG.warn("Document id is null");
- throw new WebServiceException("Document Id is null");
- }
-
- return returnMessage;
- }
-
- @Override
- public boolean updateSPDocument(String documentTransferRequest, String dtlUrl, String xmlResponse)
- {
- boolean success = false;
- if (documentTransferRequest != null && !documentTransferRequest.isEmpty())
- {
- if (xmlResponse != null && !xmlResponse.isEmpty())
- {
- try
- {
- String docId = XmlHelper.verifyRequest(documentTransferRequest);
- LOG.trace("Document transfer requst ok. Doc ID: " + docId);
- if (dtlUrl == null || dtlUrl.isEmpty())
- {
- LOG.trace("Starting SP document update from database for docId: " + docId);
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- if(doc != null)
- {
- TempDocumentModel tempDoc = conn.getTempDocument(docId);
- tempDoc.setDocument(doc.getDocument());
- success = conn.updateTempDocument(tempDoc);
- if (success && xmlResponse != null && !xmlResponse.isEmpty())
- {
- RequestModel request = conn.getRequestByDocId(docId);
- if (request != null)
- {
- request.setXmlresponse(xmlResponse);
- request.setRestimestamp(new Date());
- if (conn.updateRequest(request))
- {
- LOG.trace("Request updated.");
- success = true;
- }
- else
- {
- LOG.warn("Could not update request with id " + request.getRequestid());
- throw new WebServiceException("Update SP document failed");
- }
- }
- }
- LOG.trace("Document " + docId + " updated successfully: " + Boolean.toString(success));
- }
- else
- {
- LOG.warn("No document found for docId: " + docId);
- throw new WebServiceException("Document is null");
- }
- }
- else
- {
- LOG.trace("Starting SP document update from external DTL for docId: " + docId);
- byte[] documentData = ExternalDocservice.getDocument(documentTransferRequest, dtlUrl);
- if (documentData != null)
- {
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"),
- props.getProperty("sql.server"), props.getProperty("sql.database"));
- DocumentModel doc = conn.getDocument(docId);
- if (doc != null)
- {
- LOG.trace("Document found");
- doc.setDocument(documentData);
- if (conn.updateDocument(doc))
- {
- LOG.trace("Document updated");
- TempDocumentModel tempDoc = conn.getTempDocument(docId);
- if (tempDoc != null)
- {
- LOG.trace("Temp document found");
- tempDoc.setDocument(documentData);
- if (conn.updateTempDocument(tempDoc))
- {
- LOG.trace("Temp document updated");
- RequestModel request = conn.getRequestByDocId(docId);
- request.setXmlresponse(xmlResponse);
- request.setRestimestamp(new Date());
- if (conn.updateRequest(request))
- {
- LOG.trace("Request updated");
- success = true;
- }
- else
- {
- LOG.warn("Could not update request with doc id " + docId);
- throw new WebServiceException("SP update failed");
- }
- }
- else
- {
- LOG.warn("Could not update temp document with id " + docId);
- throw new WebServiceException("SP update failed");
- }
- }
- else
- {
- LOG.warn("Could not find temp document with id " + docId);
- throw new WebServiceException("SP update failed");
- }
- }
- else
- {
- LOG.warn("Could not update document with id " + docId);
- throw new WebServiceException("SP update failed");
- }
- }
- }
- }
- }
- catch (Exception e)
- {
- LOG.error("Exception in updateSPDocument.", e);
- e.printStackTrace();
- throw new WebServiceException("Update Failed", e);
- }
- }
- else
- {
- LOG.warn("XML signing response is null or empty");
- throw new WebServiceException("XML signing response is null");
- }
- }
- else
- {
- LOG.warn("Document transfer request is null or empty");
- throw new WebServiceException("Document transfer request is null");
- }
-
- return success;
- }
-}