view 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 source

/**
 * 
 */
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);
	
}
}