- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 24 Sep 2009 15:34:37 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action In directory hutz:/tmp/cvs-serv29680/src/org/w3c/unicorn/action Modified Files: ObserveAction.java Log Message: createError method removed, redirection on Index is done in ouputModules Index: ObserveAction.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/ObserveAction.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- ObserveAction.java 23 Sep 2009 14:08:46 -0000 1.41 +++ ObserveAction.java 24 Sep 2009 15:34:35 -0000 1.42 @@ -13,7 +13,6 @@ import java.util.List; import java.util.Map; -import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -108,6 +107,8 @@ mapOfStringObject.put("messages", messages); mapOfStringObject.put("unicorncall", aUnicornCall); + resp.setContentType(mapOfOutputParameter.get("mimetype") + "; charset=UTF-8"); + // Retrieve the parameters from the request Map<String, Object> reqParams; try { @@ -115,7 +116,7 @@ } catch (FileUploadException e) { OutputModule aOutputModule = OutputFactory.createOutputModule(mapOfOutputParameter, mapOfSpecificParameter); messages.add(new Message(e)); - createError(req, resp, null, mapOfStringObject, aOutputModule); + aOutputModule.produceError(mapOfStringObject, resp.getWriter()); return; } @@ -154,6 +155,7 @@ } else if (paramName.equals("task")) { logger.trace("Task parameter: " + key + " - " + (String) reqParams.get(key)); String task = getTask((String) reqParams.get(key), messages); + mapOfStringObject.put("current_task", Framework.mapOfTask.get(task)); if (!task.equals(reqParams.get(key))) { mapOfStringObject.put("default_task", Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId())); logger.trace("Task parameter unsupported. Resolved to: " + task); @@ -205,6 +207,7 @@ reqParams.put(paramPrefix + "task", task); logger.debug("No task parameter found. Task parameter is set to task id: " + task); mapOfStringObject.put("default_task", Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId())); + mapOfStringObject.put("current_task", Framework.mapOfTask.get(task)); aUnicornCall.setTask(task); } @@ -212,11 +215,32 @@ if (!reqParams.containsKey(paramPrefix + "uri") && !reqParams.containsKey(paramPrefix + "text") && !reqParams.containsKey(paramPrefix + "file")) { messages.add(new Message(Message.Level.ERROR, "$message_nothing_to_validate", null)); - createError(req, resp, reqParams, mapOfStringObject, aOutputModule); + aOutputModule.produceError( mapOfStringObject, resp.getWriter()); return; } - resp.setContentType(mapOfOutputParameter.get("mimetype") + "; charset=" + mapOfOutputParameter.get("charset")); + //req.setAttribute("unicorn_parameters", reqParams); + + for (Object objKey : reqParams.keySet()) { + String key = (String) objKey; + String ref; + if (key.startsWith(Property.get("UNICORN_PARAMETER_OUTPUT_PREFIX"))) + continue; + if (key.startsWith(paramPrefix)) + ref = "param_" + key.substring(paramPrefix.length()); + else + ref = "param_" + key; + if (reqParams.get(key) instanceof String[]) { + String[] s = (String[]) reqParams.get(key); + ArrayList<String> array = new ArrayList<String>(); + for (int i = 0; i < s.length; i++) + array.add(s[i]); + mapOfStringObject.put(ref, array); + } + else { + mapOfStringObject.put(ref, reqParams.get(key)); + } + } String s = "Resolved parameters:"; for (String key : reqParams.keySet()) { @@ -235,12 +259,12 @@ // Launch the observation try { - aOutputModule.produceFirstOutput( mapOfStringObject, resp.getWriter()); + aOutputModule.produceFirstOutput(mapOfStringObject, resp.getWriter()); aUnicornCall.doTask(); messages.addAll(aUnicornCall.getMessages()); if (aUnicornCall.getResponses().size() == 0) { messages.add(new Message(Message.Level.ERROR, "$message_no_observation_done", null)); - createError(req, resp, reqParams, mapOfStringObject, aOutputModule); + aOutputModule.produceError(mapOfStringObject, resp.getWriter()); } else { aOutputModule.produceOutput(mapOfStringObject, resp.getWriter()); } @@ -249,11 +273,11 @@ messages.add(ucnException.getUnicornMessage()); else messages.add(new Message(Message.Level.ERROR, ucnException.getMessage(), null)); - createError(req, resp, reqParams, mapOfStringObject, aOutputModule); + aOutputModule.produceError(mapOfStringObject, resp.getWriter()); } catch (final Exception aException) { logger.error("Exception : " + aException.getMessage(), aException); messages.add(new Message(aException)); - createError(req, resp, reqParams, mapOfStringObject, aOutputModule); + aOutputModule.produceError(mapOfStringObject, resp.getWriter()); } finally { if ("true".equals(Property.get("DELETE_UPLOADED_FILES")) && aFileItemUploaded != null) aFileItemUploaded.delete(); @@ -329,27 +353,6 @@ return params; } - - private void createError(HttpServletRequest req, HttpServletResponse resp, - Map<String, Object> reqParams, Map<String, Object> mapOfStringObject, OutputModule aOutputModule) throws IOException, ServletException { - - // If text/html is the mime-type the error will be displayed directly on index - if (aOutputModule.getOutputParameter("mimetype").equals("text/html")) {// mapOfOutputParameter.get("mimetype").equals("text/html")) { - redirect(req, resp, reqParams, (ArrayList<?>) mapOfStringObject.get("messages")); - return; - } - - aOutputModule.produceError( mapOfStringObject, resp.getWriter()); - } - - private void redirect(HttpServletRequest req, HttpServletResponse resp, Map<String, Object> reqParams, ArrayList<?> messages) throws IOException, ServletException { - req.setAttribute("unicorn_messages", messages); - if (reqParams != null) - req.setAttribute("unicorn_parameters", reqParams); - RequestDispatcher dispatcher = req.getRequestDispatcher("index.html"); - dispatcher.forward(req, resp); - logger.info("request redirected to index"); - } /** * Converts an Enumeration object to a string, the terms being separated by
Received on Thursday, 24 September 2009 15:34:53 UTC