Mercurial > hg > MetaDataManager
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); + +} +}