Index: lams_central/src/java/org/lamsfoundation/lams/web/development/DisplayDeserialisedPacketServlet.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/web/development/DisplayDeserialisedPacketServlet.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/web/development/DisplayDeserialisedPacketServlet.java (revision 14f91e4d4a063f4ac05b18e7dba1d5b3174a2024) @@ -0,0 +1,131 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ +package org.lamsfoundation.lams.web.development; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.util.wddx.WDDXProcessor; +import org.lamsfoundation.lams.web.servlet.AbstractStoreWDDXPacketServlet; + + +/** + * Deserialise a packet and display the contents. Used to test whether WDDX can process + * a packet correctly. + * + * @author Fiona Malikoff + * + * @web:servlet name="deserialise" + * @web:servlet-mapping url-pattern="/deserialise" + + */ +public class DisplayDeserialisedPacketServlet extends AbstractStoreWDDXPacketServlet { + + /** + * + */ + private static final long serialVersionUID = -478481724893217965L; + + private static Logger log = Logger.getLogger(DisplayDeserialisedPacketServlet.class); + + private static final String MESSAGE_KEY = "deserialise"; + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws IOException + { + + PrintWriter writer = null; + String packet = null; + try { + writer = response.getWriter(); + + packet = getBody(request); + + if(containsNulls(packet)){ + outputPage(writer,"

WDDXPacket contains null. WDDXPacket was

"+packet); + } + + Hashtable table = (Hashtable)WDDXProcessor.deserialize(packet); + outputPage(writer,"

Deserialised Object

"+processMap(table)+"

Packet was"+packet+"

"); + + } catch ( Exception e ) { + log.warn("DisplayDeserialisedPacket: Unable to deserialize packet. ",e); + outputPage(writer,"

Unable to deserialize packet. See log for exception. WDDXPacket was

"+packet); + } + } + + private String processMap(Map map) { + Set entries = map.entrySet(); + String retValue = ""; + for ( Map.Entry entry : entries ) { + retValue=retValue+""; + } + retValue+="
"+entry.getKey()+""+processEntry(entry.getValue())+"
"; + return retValue; + } + + private String processList(List list) { + String retValue = "

"; + return retValue; + } + + private String processEntry(Object value) { + if (value instanceof Map) { + return processMap((Map)value); + } else if ( value instanceof List ) { + return processList((List)value); + }else { + return value.toString(); + } + } + + protected String process(String wddxPacket, HttpServletRequest request) + throws Exception + { + return null; + } + + private void outputPage(PrintWriter writer, String body) { + writer.println("Deserialisation Test"); + writer.write(body); + writer.println(""); + } + + protected String getMessageKey(String designDetails, HttpServletRequest request) { + return MESSAGE_KEY; + } + +} \ No newline at end of file Index: lams_central/web/WEB-INF/web.xml =================================================================== diff -u -r43f03d1dda667ed5718a241c963ea26bd88ccc94 -r14f91e4d4a063f4ac05b18e7dba1d5b3174a2024 --- lams_central/web/WEB-INF/web.xml (.../web.xml) (revision 43f03d1dda667ed5718a241c963ea26bd88ccc94) +++ lams_central/web/WEB-INF/web.xml (.../web.xml) (revision 14f91e4d4a063f4ac05b18e7dba1d5b3174a2024) @@ -82,6 +82,11 @@ + deserialise + org.lamsfoundation.lams.web.development.DisplayDeserialisedPacketServlet + + + storeLD org.lamsfoundation.lams.authoring.web.StoreLDServlet @@ -201,6 +206,10 @@ /flashCrashDump + deserialise + /deserialise + + storeLD /authoring/storeLearningDesignDetails