fae8b167 by Ean Schuessler

Make ProgressRecord fields final, fix tabs

BFP-1784
1 parent c6e31085
......@@ -18,48 +18,49 @@ import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.ofbiz.base.util.HttpClient;
public class NGINXUploadProcessor extends HttpServlet {
class ProgressRecord {
boolean complete = false;
long bytesRead;
long contentLength;
int items;
public ProgressRecord(long bytesRead, long contentLength, int items) {
this.bytesRead = bytesRead;
this.contentLength = contentLength;
this.items = items;
}
}
class ProgressRecord {
final boolean complete;
final long bytesRead;
final long contentLength;
final int items;
public ProgressRecord(long bytesRead, long contentLength, int items, boolean complete) {
this.bytesRead = bytesRead;
this.contentLength = contentLength;
this.items = items;
this.complete = complete;
}
}
private static final long serialVersionUID = 1L;
private ServletConfig config;
private static final ConcurrentHashMap<String, ProgressRecord> progress = new ConcurrentHashMap<String, ProgressRecord>();
private static final long serialVersionUID = 1L;
private ServletConfig config;
private static final ConcurrentHashMap<String, ProgressRecord> progress = new ConcurrentHashMap<String, ProgressRecord>();
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return this.config;
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return this.config;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (request.getRequestURI().contains("progress")) {
PrintWriter out = new PrintWriter(response.getWriter());
String xProgressId = request.getHeader("X-Progress-ID");
......@@ -67,7 +68,7 @@ public class NGINXUploadProcessor extends HttpServlet {
if (xProgressId != null && progress.get(xProgressId) != null) {
ProgressRecord record = progress.get(xProgressId);
out.println("({ \"state\" : \""+ (record.complete ? "done" : "uploading") +"\", \"received\" : " +
record.bytesRead + ", \"size\" : " + record.contentLength + " });");
record.bytesRead + ", \"size\" : " + record.contentLength + " });");
} else {
out.println("({ \"error\" : \"Invalid X-Progress-ID\" });");
}
......@@ -75,7 +76,7 @@ public class NGINXUploadProcessor extends HttpServlet {
} else {
String xProgressId = request.getParameter("X-Progress-ID");
System.err.println("STORE: [" + xProgressId + "]");
progress.put(xProgressId, new ProgressRecord(-1, 0, 1));
progress.put(xProgressId, new ProgressRecord(-1, 0, 1, false));
if (ServletFileUpload.isMultipartContent(request)) {
// Create a factory for disk-based file items
......@@ -94,29 +95,29 @@ public class NGINXUploadProcessor extends HttpServlet {
// Parse the request
PrintWriter out = new PrintWriter(response.getWriter());
try {
Map<String, FileItem> itemMap = new HashMap<String, FileItem>();
Map<String, FileItem> itemMap = new HashMap<String, FileItem>();
class UploadProgressListener implements ProgressListener {
String xProgressId;
Map<String, ProgressRecord> progress;
public UploadProgressListener(String xProgressId, Map<String, ProgressRecord> progress) {
this.xProgressId = xProgressId;
this.progress = progress;
}
@Override
public void update(long sent, long length, int items) {
System.err.println("PROGRESS: " + sent + " " + length + " " + items);
progress.put(xProgressId, new ProgressRecord(sent, length, items));
}
};
ProgressListener listener = (ProgressListener) new UploadProgressListener(xProgressId, this.progress);
upload.setProgressListener(listener);
class UploadProgressListener implements ProgressListener {
String xProgressId;
Map<String, ProgressRecord> progress;
public UploadProgressListener(String xProgressId, Map<String, ProgressRecord> progress) {
this.xProgressId = xProgressId;
this.progress = progress;
}
@Override
public void update(long bytesRead, long contentLength, int items) {
System.err.println("PROGRESS: " + bytesRead + " " + contentLength + " " + items);
progress.put(xProgressId, new ProgressRecord(bytesRead, contentLength, items, false));
}
};
ProgressListener listener = (ProgressListener) new UploadProgressListener(xProgressId, this.progress);
upload.setProgressListener(listener);
List<FileItem> items = (List<FileItem>)upload.parseRequest(request);
for (FileItem item : items) {
itemMap.put(item.getFieldName(), item);
itemMap.put(item.getFieldName(), item);
}
HashMap parameters = new HashMap();
......@@ -130,7 +131,8 @@ public class NGINXUploadProcessor extends HttpServlet {
System.err.println("FINISHED:" + pResponse);
out.print(pResponse);
progress.get(xProgressId).complete = true;
ProgressRecord oldRecord = progress.get(xProgressId);
progress.put(xProgressId, new ProgressRecord(oldRecord.bytesRead, oldRecord.contentLength, oldRecord.items, true));
} catch (Exception ex) {
ex.printStackTrace();
}
......@@ -141,5 +143,5 @@ public class NGINXUploadProcessor extends HttpServlet {
out.close();
}
}
}
}
}
......