Mercurial > hg > LGDataverses
annotate src/main/java/de/mpiwg/gazetteer/servlet/SaveResource.java @ 14:be7787c36e58 default tip
new: nofity LGSercies for deleted files
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 02 Nov 2015 16:41:23 +0100 |
parents | c2e2d794847f |
children |
rev | line source |
---|---|
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 package de.mpiwg.gazetteer.servlet; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 import static edu.harvard.iq.dataverse.util.JsfHelper.JH; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 import java.io.ByteArrayInputStream; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 import java.io.File; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 import java.io.FileOutputStream; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 import java.io.IOException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 import java.io.InputStream; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
10 import java.io.InputStreamReader; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11 import java.net.MalformedURLException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 import java.net.URLConnection; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13 import java.net.URL; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 import java.nio.charset.StandardCharsets; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 import java.util.ArrayList; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 import java.util.Collection; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 import java.util.HashMap; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18 import java.util.Iterator; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
19 import java.util.List; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 import java.util.Map; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 import java.util.logging.Level; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 import java.util.logging.Logger; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 import javax.ejb.EJB; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 import javax.ejb.EJBException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 import javax.faces.application.FacesMessage; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27 import javax.faces.context.FacesContext; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28 import javax.servlet.ServletException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 import javax.servlet.annotation.MultipartConfig; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30 import javax.servlet.http.HttpServletRequest; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 import javax.servlet.http.HttpServletResponse; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 import javax.servlet.http.Part; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 import org.apache.commons.fileupload.FileItem; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 import org.apache.commons.fileupload.disk.DiskFileItemFactory; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 import org.apache.commons.fileupload.servlet.ServletFileUpload; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 import org.apache.commons.lang.StringUtils; |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
38 import org.primefaces.json.JSONArray; |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 import org.primefaces.json.JSONException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 import org.primefaces.json.JSONObject; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 import org.primefaces.model.UploadedFile; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43 import edu.harvard.iq.dataverse.DataFile; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 import edu.harvard.iq.dataverse.Dataset; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
45 import edu.harvard.iq.dataverse.DatasetServiceBean; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
46 import edu.harvard.iq.dataverse.DatasetVersion; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 import edu.harvard.iq.dataverse.DatasetVersionServiceBean; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 import edu.harvard.iq.dataverse.EjbDataverseEngine; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 import edu.harvard.iq.dataverse.UserNotification; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 import edu.harvard.iq.dataverse.DatasetPage.EditMode; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 import edu.harvard.iq.dataverse.authorization.AuthenticationRequest; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 import edu.harvard.iq.dataverse.authorization.exceptions.AuthenticationFailedException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 import edu.harvard.iq.dataverse.engine.command.Command; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 import edu.harvard.iq.dataverse.engine.command.exception.CommandException; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
56 import edu.harvard.iq.dataverse.engine.command.impl.CreateDatasetCommand; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
57 import edu.harvard.iq.dataverse.engine.command.impl.UpdateDatasetCommand; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 import edu.harvard.iq.dataverse.ingest.IngestServiceBean; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 import edu.harvard.iq.dataverse.util.JsfHelper; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62 @MultipartConfig |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 public class SaveResource extends AbstractMonographServlet { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 private static final long serialVersionUID = 1L; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68 private static final String TMP_DIR = "/gazetteer-server/tmp/"; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 private int maxFileSize = 100 * 1024; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
72 private int maxMemSize = 4 * 1024; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
73 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
74 private static final Logger logger = Logger.getLogger("monographs.SaveResource"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
75 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
76 @EJB |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
77 IngestServiceBean ingestService; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
78 @EJB |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
79 DatasetServiceBean datasetService; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
80 @EJB |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
81 DatasetVersionServiceBean datasetVersionService; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
82 @EJB |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
83 EjbDataverseEngine commandEngine; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
84 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
85 private DatasetVersion workingVersion; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
86 private Dataset dataset; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
87 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
88 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
89 Map<String, String> params = new HashMap<String, String>(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
90 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
91 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
92 public void init() throws ServletException { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
93 super.init(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
94 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
95 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
96 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
97 protected JSONObject saveFile(UpFile upFile) { |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
98 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
99 JSONObject jsonSavedResult= new JSONObject(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
100 |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
101 //String datasetGlobalId = "doi:10.5072/FK2/1EWLIR"; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
102 String datasetGlobalId = params.get("datasetGlobalId"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
103 dataset = datasetService.findByGlobalId(datasetGlobalId); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
104 workingVersion = dataset.getEditVersion(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
105 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
106 List<DataFile> dFileList = null; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
107 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
108 String fileContent = upFile.getFileContent(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
109 String fileName = upFile.getFileName(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
110 String contentType = upFile.getContentType(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
111 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
112 InputStream fileStream = new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8)); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
113 dFileList = ingestService.createDataFiles(workingVersion, fileStream, fileName, contentType); |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
114 |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
115 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
116 } catch (IOException ioex) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
117 logger.warning("Failed to process and/or save the file " + upFile.getFileName() + "; " + ioex.getMessage()); |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
118 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
119 try { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
120 jsonSavedResult.put("status", "error"); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
121 jsonSavedResult.put("message", "Failed to process and/or save the file " + upFile.getFileName() + "; " + ioex.getMessage()); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
122 } catch (JSONException e) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
123 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
124 e.printStackTrace(); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
125 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
126 return jsonSavedResult; |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
127 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
128 |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
129 // get file list in the dataset first (before add file), in order to compare with the list after saving, to get saved fileId |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
130 List<DataFile> beforeAdding = dataset.getFiles(); |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
131 |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
132 ingestService.addFiles(workingVersion, dFileList); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
133 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
134 |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
135 // Use the API to save the dataset: |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
136 Command<Dataset> cmd; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
137 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
138 cmd = new UpdateDatasetCommand(dataset, this.authUser); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
139 dataset = commandEngine.submit(cmd); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
140 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
141 } catch (EJBException ex) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
142 StringBuilder error = new StringBuilder(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
143 error.append(ex).append(" "); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
144 error.append(ex.getMessage()).append(" "); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
145 Throwable cause = ex; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
146 while (cause.getCause()!= null) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
147 cause = cause.getCause(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
148 error.append(cause).append(" "); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
149 error.append(cause.getMessage()).append(" "); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
150 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
151 logger.log(Level.FINE, "Couldn''t save dataset: {0}", error.toString()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
152 //populateDatasetUpdateFailureMessage(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
153 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
154 jsonSavedResult.put("status", "error"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
155 jsonSavedResult.put("message", "Could not save dataset."); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
156 } catch (JSONException e) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
157 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
158 e.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
159 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
160 return jsonSavedResult; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
161 } catch (CommandException ex) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
162 FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Dataset Save Failed", " - " + ex.toString())); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
163 logger.severe(ex.getMessage()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
164 //populateDatasetUpdateFailureMessage(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
165 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
166 jsonSavedResult.put("status", "error"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
167 jsonSavedResult.put("message", "Dataset Save Failed"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
168 } catch (JSONException e) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
169 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
170 e.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
171 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
172 return jsonSavedResult; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
173 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
174 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
175 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
176 // Call Ingest Service one more time, to |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
177 // queue the data ingest jobs for asynchronous execution: |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
178 ingestService.startIngestJobs(dataset, (AuthenticatedUser) this.authUser); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
179 |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
180 // saved fileId is not obvious |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
181 List<DataFile> afterAdding = dataset.getFiles(); // get file list after ingestService.addFiles() |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
182 List<DataFile> diffList = this.getAddedDataFile(afterAdding, beforeAdding); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
183 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
184 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
185 // try to return fields, got after saving to dataset, returning info for the saved file. |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
186 // indicating the file has been uploaded |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
187 |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
188 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
189 jsonSavedResult.put("status", "ok"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
190 jsonSavedResult.put("message", "Dataset Saved!"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
191 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
192 JSONObject fileMetadata = new JSONObject(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
193 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
194 System.out.println(dataset.getDisplayName()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
195 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
196 fileMetadata.put("datasetTitle", dataset.getDisplayName()); |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
197 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
198 // compare beforeAdding and afterAdding list, but it's not efficient to do that. |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
199 if (diffList != null) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
200 fileMetadata.put("fileId", diffList.get(0).getId()); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
201 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
202 |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
203 jsonSavedResult.put("fileMetadata", fileMetadata); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
204 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
205 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
206 } catch (JSONException e) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
207 e.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
208 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
209 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
210 return jsonSavedResult; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
211 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
212 |
14
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
213 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
214 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
215 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
216 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
217 private List<DataFile> getAddedDataFile(List<DataFile> a, |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
218 List<DataFile> b) { |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
219 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
220 List<DataFile> diff = new ArrayList<DataFile>(a); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
221 diff.removeAll(b); |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
222 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
223 return diff; |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
224 } |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
225 |
be7787c36e58
new: nofity LGSercies for deleted files
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
12
diff
changeset
|
226 |
12
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
227 private void loadParameters(HttpServletRequest request) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
228 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
229 params.put("user", request.getParameter("user")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
230 params.put("password", request.getParameter("password")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
231 params.put("datasetGlobalId", request.getParameter("datasetGlobalId")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
232 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
233 return; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
234 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
235 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
236 private class UpFile { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
237 public String fileName; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
238 public String fileContent; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
239 public String contentType; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
240 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
241 public UpFile (String fileName, String fileContent, String contentType) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
242 this.fileName = fileName; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
243 this.fileContent = fileContent; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
244 this.contentType = contentType; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
245 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
246 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
247 public String getFileName() { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
248 return fileName; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
249 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
250 public void setFileName(String fileName) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
251 this.fileName = fileName; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
252 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
253 public String getFileContent() { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
254 return fileContent; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
255 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
256 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
257 public void setFileContent(String fileContent) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
258 this.fileContent = fileContent; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
259 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
260 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
261 public String getContentType() { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
262 return contentType; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
263 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
264 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
265 public void setContentType(String contentType) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
266 this.contentType = contentType; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
267 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
268 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
269 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
270 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
271 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
272 @Override |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
273 protected void doPost(HttpServletRequest request, HttpServletResponse response) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
274 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
275 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
276 response.setContentType("application/json"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
277 JSONObject jsonResponse = new JSONObject(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
278 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
279 loadParameters(request); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
280 UpFile upFile = getFile(request); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
281 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
282 String fileName = upFile.getFileName(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
283 String fileContent = upFile.getFileContent(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
284 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
285 if(StringUtils.isNotEmpty(fileContent) && StringUtils.isNotEmpty(fileName)){ |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
286 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
287 String datasetGlobalId = params.get("datasetGlobalId"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
288 String user = params.get("user"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
289 String password = params.get("password"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
290 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
291 if(StringUtils.isNotEmpty(datasetGlobalId) && StringUtils.isNotEmpty(user) && StringUtils.isNotEmpty(password)){ |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
292 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
293 AuthenticationRequest authReq = new AuthenticationRequest(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
294 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
295 authReq.putCredential("Username", user); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
296 authReq.putCredential("Password", password); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
297 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
298 String credentialsAuthProviderId = "builtin"; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
299 this.authUser = authSvc.authenticate(credentialsAuthProviderId, authReq); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
300 System.out.println("User authenticated: " + authUser.getIdentifier()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
301 } catch (AuthenticationFailedException ex) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
302 ex.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
303 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
304 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
305 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
306 JSONObject jsonSavedResult = saveFile(upFile); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
307 jsonResponse.put("status", jsonSavedResult.getString("status")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
308 jsonResponse.put("message", jsonSavedResult.getString("message")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
309 if (jsonSavedResult.has("fileMetadata")) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
310 jsonResponse.put("fileMetadata", jsonSavedResult.getJSONObject("fileMetadata")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
311 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
312 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
313 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
314 }else{ |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
315 jsonResponse.put("status", "error"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
316 jsonResponse.put("error", "The parameters studyId, user and password."); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
317 jsonResponse.put("datasetGlobalId", datasetGlobalId); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
318 jsonResponse.put("user", user); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
319 jsonResponse.put("password", password); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
320 //jsonResponse.put("fileLabel", fileLabel); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
321 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
322 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
323 }else if(StringUtils.isNotEmpty(fileName)){ |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
324 jsonResponse.put("status", "error"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
325 jsonResponse.put("message", "A file has been found as parameter, however it was empty. Check the temporal folder configured in Dataverse. " + TMP_DIR); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
326 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
327 }else { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
328 jsonResponse.put("status", "error"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
329 jsonResponse.put("message", "No file found in the request."); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
330 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
331 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
332 java.io.PrintWriter out = response.getWriter(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
333 out.print(jsonResponse); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
334 out.flush(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
335 } catch (Exception e) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
336 e.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
337 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
338 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
339 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
340 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
341 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
342 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
343 private UpFile getFile(HttpServletRequest request) throws IOException { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
344 JSONObject fileObj; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
345 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
346 fileObj = new JSONObject(request.getParameter("file")); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
347 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
348 String contentType = "text/plain; charset=UTF-8"; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
349 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
350 Iterator keys = fileObj.keys(); //gets all the keys |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
351 while (keys.hasNext()) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
352 String fileName = (String) keys.next(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
353 String fileTable = fileObj.getString(fileName); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
354 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
355 UpFile upFile = new UpFile(fileName, fileTable, contentType); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
356 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
357 return upFile; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
358 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
359 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
360 } catch (JSONException e) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
361 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
362 e.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
363 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
364 return null; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
365 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
366 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
367 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
368 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
369 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
370 // delete this |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
371 private File getFile_old(HttpServletRequest request, HttpServletResponse response) throws IOException { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
372 File file = null; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
373 boolean isMultipart = ServletFileUpload.isMultipartContent(request); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
374 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
375 if(isMultipart){ |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
376 DiskFileItemFactory factory = new DiskFileItemFactory(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
377 // maximum size that will be stored in memory |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
378 factory.setSizeThreshold(maxMemSize); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
379 // Location to save data that is larger than maxMemSize. |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
380 factory.setRepository(new File(TMP_DIR)); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
381 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
382 // Create a new file upload handler |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
383 ServletFileUpload upload = new ServletFileUpload(factory); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
384 // maximum file size to be uploaded. |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
385 upload.setSizeMax(maxFileSize); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
386 upload.setFileSizeMax(maxFileSize); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
387 upload.setHeaderEncoding("UTF-8"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
388 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
389 StringBuilder sb = new StringBuilder(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
390 try { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
391 // Parse the request to get file items. |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
392 List<FileItem> fileItems = upload.parseRequest(request); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
393 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
394 // Process the uploaded file items |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
395 Iterator<FileItem> i = fileItems.iterator(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
396 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
397 while (i.hasNext()) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
398 FileItem fi = (FileItem) i.next(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
399 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
400 sb.append(fi.getFieldName()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
401 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
402 if(fi.isFormField()){ |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
403 sb.append(" is Field"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
404 params.put(fi.getFieldName(), fi.getString()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
405 } else { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
406 sb.append(" is FILE ***"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
407 // Get the uploaded file parameters |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
408 String fileName = fi.getName(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
409 // Write the file |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
410 if (fileName.lastIndexOf("\\") >= 0) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
411 file = new File(TMP_DIR + fileName.substring(fileName.lastIndexOf("\\"))); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
412 } else { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
413 file = new File(TMP_DIR + fileName.substring(fileName.lastIndexOf("\\") + 1)); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
414 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
415 fi.write(file); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
416 sb.append(" Size: " + file.length()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
417 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
418 sb.append("\n"); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
419 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
420 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
421 } catch (Exception ex) { |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
422 ex.printStackTrace(); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
423 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
424 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
425 sb.append((file == null) ? "File is null" + ".\nWhen the file is empty, maybe the tmp folder is wrong configured.\nTMP_DIR: " + TMP_DIR : "File Size=" + file.length() ); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
426 logger.log(Level.INFO, "getFile Information:\n" + sb.toString()); |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
427 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
428 return file; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
429 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
430 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
431 return null; |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
432 } |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
433 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
434 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
435 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
436 |
c2e2d794847f
new: add config.properties file for gazetteer
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
437 } |