diff src/main/java/de/mpiwg/gazetteer/utils/LGDatasetPage.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
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/gazetteer/utils/LGDatasetPage.java	Mon Nov 02 16:41:23 2015 +0100
@@ -0,0 +1,85 @@
+package de.mpiwg.gazetteer.utils;
+
+
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.util.logging.Logger;
+
+import javax.ejb.EJB;
+import javax.faces.context.FacesContext;
+import javax.inject.Named;
+
+import org.apache.commons.lang.StringUtils;
+import org.primefaces.json.JSONException;
+import org.primefaces.json.JSONObject;
+
+import de.mpiwg.gazetteer.utils.HTTPUtils.HttpStringResponse;
+import edu.harvard.iq.dataverse.DatasetServiceBean;
+import edu.harvard.iq.dataverse.FileMetadata;
+
+@Named("LGDatasetPage")
+public class LGDatasetPage{
+
+    private static final Logger logger = Logger.getLogger(LGDatasetPage.class.getCanonicalName());
+    
+    @EJB
+    DatasetServiceBean datasetService;
+    
+    
+    // synchronize dataset to LGServices
+    public String syncDatasetToLGServices(String datasetId, String persistentId) {
+    	logger.info("syncDatasetToLGServices. datasetId: " + datasetId);
+        
+    	// notify LGServices the deleted file
+        // this is not efficient
+    	// sync the dataset at once, need to go through all files in the dataset
+ 
+		HttpStringResponse response = null;
+		try {
+	    	//String LGServicesPath = "http://localhost:8080/LGServices";
+	    	String LGServicesPath = PropertiesUtils.getPropValue("LGServices");	// get property in config.properties file
+	    	
+			String query = LGServicesPath + "/updateFileStatus?datasetId="+datasetId+"&datasetPersistentId="+persistentId;		// get all dataverse alias from LGDataverse
+			
+			response = HTTPUtils.getStringResponse(query);
+			JSONObject data = new JSONObject(response.content);
+			String status = data.getString("status");
+			//logger.info("status: " + status);
+			if (!StringUtils.equals(status, "OK")) {
+				logger.warning("error when updateFileStatus in LGServices.");
+			}
+			
+		} catch (KeyManagementException | NoSuchAlgorithmException
+				| IOException | JSONException e) {
+			
+			e.printStackTrace();
+		}
+		
+    	return "";
+    }
+    
+    
+    // out link to LGMap
+    public String viewLGMapOutputLink(FileMetadata fm) {
+    	System.out.println("viewLGMapOutputLink");
+  
+    	Long fileId = fm.getDataFile().getId();
+    
+    	try {
+        	// get LGMap url from the config.properties file
+        	String LGMapPath = PropertiesUtils.getPropValue("LGMap");	// get property in config.properties file
+    		String retVal = LGMapPath + "/map.php?mode=1&name="+URLEncoder.encode(fm.getLabel(), "UTF-8")+"&fileId="+fileId;
+        	//logger.info("open LGMap at " + retVal);
+        	
+        	FacesContext.getCurrentInstance().getExternalContext().redirect(retVal);
+        } catch (IOException ex) {
+            logger.warning("Failed to issue a redirect to file download url.");
+        }
+               
+    	return "";
+    }
+ 
+    
+}