Bug 4371: Initial stub for an expedition all in one import servlet

This commit is contained in:
Steffen Schaefer committed 2017-12-18 15:09:36 +01:00
1 parent 0f3145ce3c
commit d94deaa0a6
2 files changed
+57

No files matched your search

@@ -190,6 +190,14 @@
<servlet-name>SensorDataImportServlet</servlet-name>
<url-pattern>/sensordata/import</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ExpeditionAllInOneImportServlet</servlet-name>
<servlet-class>com.sap.sailing.server.gateway.trackfiles.impl.ExpeditionAllInOneImportServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ExpeditionAllInOneImportServlet</servlet-name>
<url-pattern>/expedition/import</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileUploadServlet</servlet-name>
<servlet-class>com.sap.sailing.server.gateway.impl.FileUploadServlet</servlet-class>
@@ -0,0 +1,49 @@
package com.sap.sailing.server.gateway.trackfiles.impl;
import java.io.IOException;
import java.util.List;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import com.sap.sailing.server.gateway.impl.AbstractFileUploadServlet;
import com.sap.sailing.server.gateway.trackfiles.impl.ExpeditionAllInOneImporter.ImporterResult;
/**
* Import servlet for sensor data files. Importers are located through the OSGi service registry and matched against the
* name provided by the upload form.
*/
public class ExpeditionAllInOneImportServlet extends AbstractFileUploadServlet {
private static final long serialVersionUID = 1120226743039934620L;
private static final Logger logger = Logger.getLogger(ExpeditionAllInOneImportServlet.class.getName());
/**
* Process the uploaded file items.
*/
@Override
protected void process(List<FileItem> fileItems, HttpServletRequest req, HttpServletResponse resp)
throws IOException {
JsonHolder jsonResult = new JsonHolder(logger);
try {
String fileName = null;
FileItem fileItem = null;
for (FileItem fi : fileItems) {
if (!fi.isFormField()) {
fileName = fi.getName();
fileItem = fi;
}
}
if (fileItem == null) {
throw new RuntimeException("No file to import");
}
ImporterResult importerResult = new ExpeditionAllInOneImporter(getService(), /* TODO */ null, getServiceFinderFactory(), getContext()).importFiles(fileName, fileItem);
} catch (Exception e) {
jsonResult.add(e);
} finally {
jsonResult.writeJSONString(resp);
}
}
}