diff src/de/mpiwg/itgroup/metadataManager/indexMeta/server/IndexMetaProvider.java @ 1:2267d8c80a99

intial
author dwinter
date Sun, 23 Oct 2011 21:29:45 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpiwg/itgroup/metadataManager/indexMeta/server/IndexMetaProvider.java	Sun Oct 23 21:29:45 2011 +0200
@@ -0,0 +1,68 @@
+/**
+ * 
+ */
+package de.mpiwg.itgroup.metadataManager.indexMeta.server;
+
+import java.io.File;
+import java.io.InputStream;
+
+import org.apache.log4j.Logger;
+import org.restlet.data.Form;
+import org.restlet.data.MediaType;
+import org.restlet.data.Status;
+import org.restlet.representation.FileRepresentation;
+import org.restlet.representation.InputRepresentation;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.resource.Get;
+import org.restlet.resource.Options;
+import org.restlet.resource.ServerResource;
+
+/**
+ * @author dwinter
+ *
+ */
+public class IndexMetaProvider extends ServerResource {
+
+	Logger logger = Logger.getRootLogger();
+	String basePermanentPath="/Volumes/online_permanent/";
+
+/**
+ * Erlaubt cross scripting bei Aufruf aus Javascript
+ * @param entity
+ */
+@Options
+public void doOptions(Representation entity) {
+    Form responseHeaders = (Form) getResponse().getAttributes().get("org.restlet.http.headers");
+    if (responseHeaders == null) {
+        responseHeaders = new Form();
+        getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
+    }
+    responseHeaders.add("Access-Control-Allow-Origin", "*");
+    responseHeaders.add("Access-Control-Allow-Methods", "POST,OPTIONS,GET");
+    responseHeaders.add("Access-Control-Allow-Headers", "Content-Type");
+    responseHeaders.add("Access-Control-Allow-Credentials", "false");
+    responseHeaders.add("Access-Control-Max-Age", "60");
+}
+
+@Get("xml")
+public Representation getXML(){
+	logger.debug("getIndexMeta");
+	String restPath = getRequest().getResourceRef().getRemainingPart();
+	
+	String newpath=restPath.replace("/permanent/", basePermanentPath);
+	
+	String indexMetaStr=newpath+"/index.meta";
+	
+	File indexMetaFile = new File(indexMetaStr);
+	
+	if (!indexMetaFile.exists()){
+		getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND);
+		logger.debug("file not found");
+		return new StringRepresentation("Can't find:"+indexMetaStr);
+	}
+	
+	return new FileRepresentation(indexMetaStr, MediaType.TEXT_XML);
+	
+}
+}