diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml
index 8eb66239d0..0fd4c5e568 100644
--- a/config/alfresco/web-scripts-application-context.xml
+++ b/config/alfresco/web-scripts-application-context.xml
@@ -736,6 +736,11 @@
+
+
+
+
+
diff --git a/source/java/org/alfresco/repo/web/scripts/transfer/PostSnapshotCommandProcessor.java b/source/java/org/alfresco/repo/web/scripts/transfer/PostSnapshotCommandProcessor.java
index 76c213d554..7bbdbaf8cf 100644
--- a/source/java/org/alfresco/repo/web/scripts/transfer/PostSnapshotCommandProcessor.java
+++ b/source/java/org/alfresco/repo/web/scripts/transfer/PostSnapshotCommandProcessor.java
@@ -94,20 +94,6 @@ public class PostSnapshotCommandProcessor implements CommandProcessor
receiver.saveSnapshot(transferId, item.openStream());
}
}
-
-// so the following code does not work
-// WebScriptServletRequest alfRequest = (WebScriptServletRequest)req;
-// FormField field = alfRequest.getFileField(TransferCommons.PART_NAME_MANIFEST);
-//
-// if(field != null)
-// {
-// logger.debug("got manifest file");
-// receiver.saveSnapshot(transferId, field.getInputStream());
-// }
-// else
-// {
-// logger.debug("manifest is missing");
-// }
logger.debug("success");
resp.setStatus(Status.STATUS_OK);
diff --git a/source/java/org/alfresco/repo/web/scripts/transfer/ReportCommandProcessor.java b/source/java/org/alfresco/repo/web/scripts/transfer/ReportCommandProcessor.java
new file mode 100644
index 0000000000..5cf23fe966
--- /dev/null
+++ b/source/java/org/alfresco/repo/web/scripts/transfer/ReportCommandProcessor.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2009-2010 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+
+package org.alfresco.repo.web.scripts.transfer;
+
+import java.io.BufferedInputStream;
+import java.io.OutputStream;
+import java.io.StringWriter;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.alfresco.service.cmr.transfer.TransferException;
+import org.alfresco.service.cmr.transfer.TransferProgress;
+import org.alfresco.service.cmr.transfer.TransferReceiver;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+import org.springframework.extensions.webscripts.WebScriptResponse;
+import org.springframework.extensions.webscripts.json.JSONWriter;
+import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
+
+/**
+ * This command processor is used to get the server side transfer report.
+ *
+ * @author brian
+ *
+ */
+public class ReportCommandProcessor implements CommandProcessor
+{
+ private static final String MSG_CAUGHT_UNEXPECTED_EXCEPTION = "transfer_service.receiver.caught_unexpected_exception";
+
+ private TransferReceiver receiver;
+
+ private final static Log logger = LogFactory.getLog(ReportCommandProcessor.class);
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.alfresco.repo.web.scripts.transfer.CommandProcessor#process(org.alfresco .web.scripts.WebScriptRequest,
+ * org.alfresco.web.scripts.WebScriptResponse)
+ */
+ public int process(WebScriptRequest req, WebScriptResponse resp)
+ {
+ //Read the transfer id from the request
+ HttpServletRequest servletRequest = ((WebScriptServletRequest)req).getHttpServletRequest();
+ String transferId = servletRequest.getParameter("transferId");
+
+ if (transferId == null)
+ {
+ logger.debug("transferId is missing");
+ resp.setStatus(Status.STATUS_BAD_REQUEST);
+ return Status.STATUS_BAD_REQUEST;
+ }
+
+ try
+ {
+ OutputStream out = resp.getOutputStream();
+ resp.setContentType("text/xml");
+ resp.setContentEncoding("utf-8");
+
+ BufferedInputStream br = new BufferedInputStream(receiver.getProgressMonitor().getLogInputStream(transferId));
+ byte[] buffer = new byte[1000];
+ int i = br.read(buffer);
+ while(i > 0)
+ {
+ out.write(buffer, 0, i);
+ i = br.read(buffer);
+ }
+ out.flush();
+ out.close();
+
+ return Status.STATUS_OK;
+ }
+ catch (TransferException ex)
+ {
+ throw ex;
+ }
+ catch (Exception ex)
+ {
+ throw new TransferException(MSG_CAUGHT_UNEXPECTED_EXCEPTION, ex);
+ }
+ }
+
+ /**
+ * @param receiver
+ * the receiver to set
+ */
+ public void setReceiver(TransferReceiver receiver)
+ {
+ this.receiver = receiver;
+ }
+
+}