Mercurial > hg > fulltextSearchServer
view src/de/mpiwg/dwinter/fulltextSearchServer/SearchServerInfo.java @ 0:db87c1b7eb6d
initial
author | dwinter |
---|---|
date | Wed, 03 Nov 2010 12:18:46 +0100 |
parents | |
children | 83e9a828e794 |
line wrap: on
line source
package de.mpiwg.dwinter.fulltextSearchServer; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Properties; import org.restlet.data.Form; import org.restlet.data.MediaType; import org.restlet.data.Status; import org.restlet.representation.Representation; import org.restlet.representation.StringRepresentation; import org.restlet.resource.Options; import org.restlet.resource.ServerResource; import org.restlet.resource.Get; import de.mpiwg.dwinter.fulltext.search.FulltextSearchConfig; import de.mpiwg.dwinter.fulltextSearchServer.Utils.ConfigurationManager; public class SearchServerInfo extends ServerResource{ //need options for crossdomain scripting private File lineIndex; private File docIndex; private FulltextSearchConfig config; public SearchServerInfo() throws IOException{ Properties defaultProperties = ConfigurationManager.getConfig(); lineIndex = new File(defaultProperties.getProperty("lineIndex")); docIndex = new File(defaultProperties.getProperty("docIndex")); config = new FulltextSearchConfig(docIndex, lineIndex); } @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 getInfosXML(){ // response header fuer cross-site.scripting 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", "*"); String param = (String) getRequestAttributes().get("param"); if (param.equals("supportedLanguages")){ return getSupportedLanguages(); } else{ setStatus(Status.CLIENT_ERROR_NOT_FOUND); return null; } } @Get("html") public Representation getInfosHTML(){ // response header fuer cross-site.scripting 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", "*"); String param = (String) getRequestAttributes().get("param"); if (param.equals("supportedLanguages")){ return getSupportedLanguagesHTML(); } else{ setStatus(Status.CLIENT_ERROR_NOT_FOUND); return null; } } private Representation getSupportedLanguages() { // TODO Auto-generated method stub ArrayList<String> langs = config.getSupportedLanguages(); String ret="<info><supportedLanguages>"; for (String lang: langs){ ret+="<lang>"+lang+"</lang>"; } ret+="</supportedLanguages></info>"; return new StringRepresentation(ret, MediaType.TEXT_XML); } private Representation getSupportedLanguagesHTML() { // TODO Auto-generated method stub ArrayList<String> langs = config.getSupportedLanguages(); String ret="<div class=\"supportedLanguages\">"; for (String lang: langs){ ret+="<div class=\"supportedLanguage\">"+lang+"</div>"; } ret+="</div>"; return new StringRepresentation(ret, MediaType.TEXT_HTML); } }