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";
+ for ( Map.Entry entry : entries ) {
+ retValue=retValue+"
";
+ return retValue;
+ }
+
+ private String processList(List list) {
+ String retValue = " ";
+ }
+ retValue+=""+entry.getKey()+" "+processEntry(entry.getValue())+" ";
+ for ( Object entry : list ) {
+ retValue=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 @@