[Dive4elements-commits] [PATCH] flys/#657: Shapefile upload service returns success or failure to client (i18n tbd)

Wald Commits scm-commit at wald.intevation.org
Mon Feb 18 16:33:19 CET 2013


# HG changeset patch
# User Christian Lins <christian.lins at intevation.de>
# Date 1361201593 -3600
# Node ID 7c8ce0a95a6462d47d355cdd3d884d6eed40ab24
# Parent  04ccec566689afcb8d75448ead1e9b32df00c3c2
flys/#657: Shapefile upload service returns success or failure to client (i18n tbd)

diff -r 04ccec566689 -r 7c8ce0a95a64 flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/FileUploadService.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/FileUploadService.java	Mon Feb 18 16:29:37 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/FileUploadService.java	Mon Feb 18 16:33:13 2013 +0100
@@ -18,6 +18,7 @@
 import org.w3c.dom.Element;
 
 /**
+ * Service that receives XML-packed Shapefile bundles from the client.
  * @author <a href="mailto:raimund.renkert at intevation.de">Raimund Renkert</a>
  */
 public class FileUploadService extends FLYSService {
@@ -35,7 +36,6 @@
     public FileUploadService() {
     }
 
-
     @Override
     protected Document doProcess(
         Document data,
@@ -44,6 +44,13 @@
     ) {
         logger.debug("FileUploadService.process");
 
+        Document doc = XMLUtils.newDocument();
+        ElementCreator ec = new ElementCreator(doc, null, null);
+        Element resp   = ec.create("response");
+        Element status = ec.create("status");
+        resp.appendChild(status);
+        doc.appendChild(resp);
+
         String uuid = extractUuid(data);
 
         byte[] fileData = extractData(data);
@@ -58,6 +65,9 @@
                     new File(artifactDir, "user-rgd.zip"));
                 try {
                     fos.write(fileData);
+
+                    // Write operation successful
+                    status.setTextContent("Upload erfolgreich!"); // TODO: i18n
                 }
                 finally {
                     fos.close();
@@ -65,27 +75,32 @@
             }
             catch (IOException ioe) {
                 logger.warn(ioe, ioe);
+                status.setTextContent("Upload fehlgeschlagen!");
             }
         }
         else {
             logger.debug("No data in uploaded xml.");
+            status.setTextContent("Upload fehlgeschlagen!");
         }
 
-        Document doc = XMLUtils.newDocument();
-        ElementCreator ec = new ElementCreator(doc, null, null);
-        Element resp = ec.create("response");
-        doc.appendChild(resp);
-
         return doc;
     }
 
-
+    /**
+     * Extracts the UUID from the XML document.
+     * @param data
+     * @return
+     */
     protected String extractUuid(Document data) {
         return XMLUtils.xpathString(
             data, XPATH_ARTIFACT_UUID, ArtifactNamespaceContext.INSTANCE);
     }
 
-
+    /**
+     * Extracts the base64 encoded ZIP file from the XML document.
+     * @param data
+     * @return
+     */
     protected byte[] extractData(Document data) {
         String b64Data = XMLUtils.xpathString(
             data, XPATH_DATA, ArtifactNamespaceContext.INSTANCE);


More information about the Dive4elements-commits mailing list