annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
dwinter
parents:
diff changeset
1 /**
dwinter
parents:
diff changeset
2 *
dwinter
parents:
diff changeset
3 */
dwinter
parents:
diff changeset
4 package de.mpiwg.itgroup.metadataManager.indexMeta.server;
dwinter
parents:
diff changeset
5
dwinter
parents:
diff changeset
6 import java.io.File;
dwinter
parents:
diff changeset
7 import java.io.InputStream;
dwinter
parents:
diff changeset
8
dwinter
parents:
diff changeset
9 import org.apache.log4j.Logger;
dwinter
parents:
diff changeset
10 import org.restlet.data.Form;
dwinter
parents:
diff changeset
11 import org.restlet.data.MediaType;
dwinter
parents:
diff changeset
12 import org.restlet.data.Status;
dwinter
parents:
diff changeset
13 import org.restlet.representation.FileRepresentation;
dwinter
parents:
diff changeset
14 import org.restlet.representation.InputRepresentation;
dwinter
parents:
diff changeset
15 import org.restlet.representation.Representation;
dwinter
parents:
diff changeset
16 import org.restlet.representation.StringRepresentation;
dwinter
parents:
diff changeset
17 import org.restlet.resource.Get;
dwinter
parents:
diff changeset
18 import org.restlet.resource.Options;
dwinter
parents:
diff changeset
19 import org.restlet.resource.ServerResource;
dwinter
parents:
diff changeset
20
dwinter
parents:
diff changeset
21 /**
dwinter
parents:
diff changeset
22 * @author dwinter
dwinter
parents:
diff changeset
23 *
dwinter
parents:
diff changeset
24 */
dwinter
parents:
diff changeset
25 public class IndexMetaProvider extends ServerResource {
dwinter
parents:
diff changeset
26
dwinter
parents:
diff changeset
27 Logger logger = Logger.getRootLogger();
dwinter
parents:
diff changeset
28 String basePermanentPath="/Volumes/online_permanent/";
dwinter
parents:
diff changeset
29
dwinter
parents:
diff changeset
30 /**
dwinter
parents:
diff changeset
31 * Erlaubt cross scripting bei Aufruf aus Javascript
dwinter
parents:
diff changeset
32 * @param entity
dwinter
parents:
diff changeset
33 */
dwinter
parents:
diff changeset
34 @Options
dwinter
parents:
diff changeset
35 public void doOptions(Representation entity) {
dwinter
parents:
diff changeset
36 Form responseHeaders = (Form) getResponse().getAttributes().get("org.restlet.http.headers");
dwinter
parents:
diff changeset
37 if (responseHeaders == null) {
dwinter
parents:
diff changeset
38 responseHeaders = new Form();
dwinter
parents:
diff changeset
39 getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
dwinter
parents:
diff changeset
40 }
dwinter
parents:
diff changeset
41 responseHeaders.add("Access-Control-Allow-Origin", "*");
dwinter
parents:
diff changeset
42 responseHeaders.add("Access-Control-Allow-Methods", "POST,OPTIONS,GET");
dwinter
parents:
diff changeset
43 responseHeaders.add("Access-Control-Allow-Headers", "Content-Type");
dwinter
parents:
diff changeset
44 responseHeaders.add("Access-Control-Allow-Credentials", "false");
dwinter
parents:
diff changeset
45 responseHeaders.add("Access-Control-Max-Age", "60");
dwinter
parents:
diff changeset
46 }
dwinter
parents:
diff changeset
47
dwinter
parents:
diff changeset
48 @Get("xml")
dwinter
parents:
diff changeset
49 public Representation getXML(){
dwinter
parents:
diff changeset
50 logger.debug("getIndexMeta");
dwinter
parents:
diff changeset
51 String restPath = getRequest().getResourceRef().getRemainingPart();
dwinter
parents:
diff changeset
52
dwinter
parents:
diff changeset
53 String newpath=restPath.replace("/permanent/", basePermanentPath);
dwinter
parents:
diff changeset
54
dwinter
parents:
diff changeset
55 String indexMetaStr=newpath+"/index.meta";
dwinter
parents:
diff changeset
56
dwinter
parents:
diff changeset
57 File indexMetaFile = new File(indexMetaStr);
dwinter
parents:
diff changeset
58
dwinter
parents:
diff changeset
59 if (!indexMetaFile.exists()){
dwinter
parents:
diff changeset
60 getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND);
dwinter
parents:
diff changeset
61 logger.debug("file not found");
dwinter
parents:
diff changeset
62 return new StringRepresentation("Can't find:"+indexMetaStr);
dwinter
parents:
diff changeset
63 }
dwinter
parents:
diff changeset
64
dwinter
parents:
diff changeset
65 return new FileRepresentation(indexMetaStr, MediaType.TEXT_XML);
dwinter
parents:
diff changeset
66
dwinter
parents:
diff changeset
67 }
dwinter
parents:
diff changeset
68 }