Mercurial > hg > fulltextSearchServer
diff src/de/mpiwg/dwinter/fulltextSearchServer/ShowTicket.java @ 0:db87c1b7eb6d
initial
author | dwinter |
---|---|
date | Wed, 03 Nov 2010 12:18:46 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpiwg/dwinter/fulltextSearchServer/ShowTicket.java Wed Nov 03 12:18:46 2010 +0100 @@ -0,0 +1,115 @@ +package de.mpiwg.dwinter.fulltextSearchServer; + +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.apache.log4j.Logger; +import org.restlet.data.Form; +import org.restlet.data.MediaType; +import org.restlet.data.Parameter; +import org.restlet.data.Status; +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; + +import de.mpiwg.dwinter.fulltext.ticket.TicketWriter; +import de.mpiwg.dwinter.fulltextSearchServer.Utils.XMLTools; + +/** + * Zeigt das entsprechende Ticket an. + * @author dwinter + * + */ +public class ShowTicket extends ServerResource{ + + Logger logger = Logger.getRootLogger(); + + + @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("showticket"); + + // 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 ticket = (String) getRequest().getAttributes().get("ticket") ; + + + + StringRepresentation representation = null; + + String xml; + try { + + + xml = TicketWriter.getXML(ticket); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + logger.debug("show result of ticker: file not found xml"); + setStatus(Status.SERVER_ERROR_INTERNAL) ; + return null; + } catch (IOException e) { + logger.debug("show result of ticker: IO error xml"); + e.printStackTrace(); + setStatus(Status.SERVER_ERROR_INTERNAL) ; + return null; + } + representation = new StringRepresentation(xml, + MediaType.TEXT_XML) ; + if (xml != null) { + if (TicketWriter.isClosed(ticket)) + setStatus(Status.SUCCESS_CREATED); + else + setStatus(Status.SUCCESS_ACCEPTED); + return representation; + } else { + setStatus(Status.SUCCESS_ACCEPTED) ; + + return new StringRepresentation("<info>waiting</info>", + MediaType.TEXT_XML) ; + } + } + + @Get("html") + public Representation getHtml() throws IOException{ + + Representation repr = getXML(); + if (repr==null) + return null; + + String xml=repr.getText(); + + logger.debug("getHTML:"+xml); + + String txt = XMLTools.transformToHTML(xml,"/de/mpiwg/dwinter/fulltextSearchServer/xsl/showTicketToHTML.xsl"); + if (txt.equals("")){ + return new StringRepresentation("<html><body>waiting</body></html>", + MediaType.TEXT_HTML) ; + } + return new StringRepresentation(txt, + MediaType.TEXT_HTML) ; + } +}