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