// TestApplet.java // ----------------------- // (C) 2006 by Alexander Schier // part of YACY // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.lang.reflect.InvocationTargetException; import java.util.Iterator; import de.anomic.http.httpHeader; import de.anomic.http.httpTemplate; import de.anomic.http.httpdFileHandler; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverByteBuffer; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; public class TestApplet { public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { serverObjects prop = new serverObjects(); plasmaSwitchboard sb = (plasmaSwitchboard) env; httpdFileHandler filehandler=new httpdFileHandler(sb); if(post== null || !post.containsKey("url")){ prop.put("mode", "0"); return prop; } serverObjects args=new serverObjects(); String[] lines=((String)post.get("arguments")).split("\n"); String[] pair; for(int i=0;i<lines.length;i++){ pair=lines[i].split("="); if(pair.length==2){ args.put(pair[0], pair[1]); } } prop.put("mode", "1"); File templatefile=filehandler.getOverlayedFile((String)post.get("url")); File classfile=filehandler.getOverlayedClass((String)post.get("url")); httpHeader header2=new httpHeader(); header2.put("CLIENTIP", "127.0.0.1"); header2.put("PATH", (String)post.get("url")); serverObjects tp=null; try { if(classfile==null || !classfile.exists()){ prop.put("mode_templates", "classfile does not exist"); return prop; }else{ tp=(serverObjects)filehandler.invokeServlet(classfile, header2, args); } } catch (IllegalArgumentException e) {} catch (IllegalAccessException e) {} catch (InvocationTargetException e) {} if(tp==null){ prop.put("templates", "some error occured."); prop.put("structure", ""); prop.put("text", ""); return prop; } Iterator it=tp.keySet().iterator(); StringBuffer tmp=new StringBuffer(); String key=""; while(it.hasNext()){ key=(String)it.next(); tmp.append(key).append("=").append(tp.get(key)).append("\n"); } prop.put("mode_templates", tmp.toString()); FileInputStream fis=null; try { fis=new FileInputStream(templatefile); serverByteBuffer o=new serverByteBuffer(); byte[] structure=httpTemplate.writeTemplate(fis, (OutputStream)o, tp, "-UNRESOLVED_PATTERN-".getBytes("UTF-8")); prop.put("mode_structure", structure); prop.put("mode_text", o.toString()); return prop; } catch (FileNotFoundException e) {} catch (UnsupportedEncodingException e) {} catch (IOException e) {} prop.put("mode_text", "could not finish correctly"); //very informative errormessage return prop; } }