annotate src/main/java/de/mpiwg/gazetteer/utils/UpdateFileStatus.java @ 102:6a508b605b5f

1. add new page : footer.jsp. 2. embed footer.jsp into other pages.
author Calvin Yeh <cyeh@mpipw-berlin.mpg.com>
date Fri, 29 Sep 2017 16:03:06 +0200
parents 2e1662afc81c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package de.mpiwg.gazetteer.utils;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
3
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 import java.io.IOException;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 import java.util.Date;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import java.util.List;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 import java.util.logging.Logger;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
8
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 import javax.servlet.ServletException;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 import javax.servlet.http.HttpServlet;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 import javax.servlet.http.HttpServletRequest;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 import javax.servlet.http.HttpServletResponse;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
13
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 import org.apache.commons.lang.StringUtils;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 import org.json.JSONArray;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 import org.json.JSONException;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 import org.json.JSONObject;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
18
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 import de.mpiwg.gazetteer.bo.LGFile;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 import de.mpiwg.gazetteer.dataverse.DataverseUtils;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
21
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
22
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 public class UpdateFileStatus extends HttpServlet{
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
24
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
25
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 private static final Logger logger = Logger.getLogger(UpdateFileStatus.class.getName());
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
27
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
28
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 // Set response content type
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 response.setContentType("application/json");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 response.setCharacterEncoding("UTF-8");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
33
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 JSONObject jsonResponse = new JSONObject();
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
35
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 String datasetId = request.getParameter("datasetId");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 //logger.info("datasetId: " + datasetId);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
38
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 JSONObject filesJson = DataverseUtils.getAllFilesInDataset(datasetId);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
40
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 String datasetPersistentId = request.getParameter("datasetPersistentId");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 logger.info("sync files for dataset: " + datasetPersistentId);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
43
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 try {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
45
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 if(StringUtils.equals(filesJson.getString("status"), "OK")){
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 // get all files with "datasetPersistentId=datasetPersistentId" from db
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 List<LGFile> filesInLGFile = DBService.getLGFileInDatasetFromDB(datasetPersistentId);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
49
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 //logger.info("files in dataset in LGServices: " + filesInLGFile);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
51 //logger.info("files: ");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
52
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 // find files in the "filesInLGFile" but not in the "filesJson"
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 JSONArray data = filesJson.getJSONArray("data");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
55
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 for (int i = 0; i < filesInLGFile.size(); i ++) {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 Long fileIdInDv = filesInLGFile.get(i).getFileIdInDv();
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
58 boolean updateFileIdInDv2Null = true;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
59
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 for (int j = 0 ; j < data.length(); j ++) {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 int id = data.getJSONObject(j).getJSONObject("datafile").getInt("id");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
62 //logger.info("id= "+id + ", fileIdInDv= "+fileIdInDv);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
63
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 if (id == fileIdInDv) {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 // found file, so don't update fileIdInDv
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
66 updateFileIdInDv2Null = false;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
67 break;
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
68 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
70
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
71 if (updateFileIdInDv2Null) {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 // update file in LGServices database.File
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
73 logger.info("update fileIdInDv2=" + fileIdInDv + " for file (id): " + filesInLGFile.get(i).getId() );
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 filesInLGFile.get(i).setFileIdInDv(null);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
75
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
76 Date date = new Date();
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 DBService.saveDBEntry(filesInLGFile.get(i), date);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
79 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
80
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
81 jsonResponse.put("status", "OK");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
82 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
83 } catch (JSONException e1) {
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 e1.printStackTrace();
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
85 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
86
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
87 // ======================
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
88
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 response.setHeader("Access-Control-Allow-Origin", "*");
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
90
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 java.io.PrintWriter out = response.getWriter();
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
92 out.print(jsonResponse);
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
93 out.flush();
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
94
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
95 }
2e1662afc81c new: add synchronization for files uploaded to LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
96 }