Changeset 301:a7efdd8a5cb3
- Timestamp:
- 09/08/09 14:23:33 (4 years ago)
- Branch:
- default
- convert_revision:
- svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@302
- Location:
- src/org/w3c/unicorn/action
- Files:
-
- 3 modified
-
Action.java (modified) (2 diffs)
-
IndexAction.java (modified) (2 diffs)
-
ObserveAction.java (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/org/w3c/unicorn/action/Action.java
r299 r301 74 74 } 75 75 76 public String getTask(String taskParameter, String lang,ArrayList<Message> messages) {76 public String getTask(String taskParameter, ArrayList<Message> messages) { 77 77 78 78 //String taskParameter = req.getParameter(Property.get("UNICORN_PARAMETER_PREFIX") + "task"); … … 87 87 88 88 if (taskParameter == null) { 89 Message mess = new Message(Message.Level.WARNING, "$message_no_task " + Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId()).getLongName(lang), null);89 Message mess = new Message(Message.Level.WARNING, "$message_no_task " + "$default_task.getLongName($lang) ", null); 90 90 messages.add(mess); 91 91 } else if (!Framework.mapOfTask.containsKey(taskParameter)) { 92 92 System.out.println(taskParameter); 93 Message mess = new Message(Message.Level.WARNING, "$message_unknown_task " + Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId()).getLongName(lang), null);93 Message mess = new Message(Message.Level.WARNING, "$message_unknown_task " + "$default_task.getLongName($lang) ", null); 94 94 messages.add(mess); 95 95 } -
src/org/w3c/unicorn/action/IndexAction.java
r299 r301 1 // $Id: IndexAction.java,v 1.1 3 2009-09-07 17:35:20tgambet Exp $Id $1 // $Id: IndexAction.java,v 1.14 2009-09-08 14:23:33 tgambet Exp $Id $ 2 2 // Author: Thomas Gambet 3 3 // (c) COPYRIGHT MIT, ERCIM and Keio, 2009. … … 39 39 String paramPrefix = Property.get("UNICORN_PARAMETER_PREFIX"); 40 40 String lang = getLanguage(req.getParameter(paramPrefix + "lang"), req, messages); 41 String task = getTask(req.getParameter(paramPrefix + "task"), lang,null);41 String task = getTask(req.getParameter(paramPrefix + "task"), null); 42 42 String queryString = getQueryStringWithout(paramPrefix + "lang", req); 43 43 -
src/org/w3c/unicorn/action/ObserveAction.java
r299 r301 1 // $Id: ObserveAction.java,v 1.1 4 2009-09-07 17:35:21tgambet Exp $1 // $Id: ObserveAction.java,v 1.15 2009-09-08 14:23:33 tgambet Exp $ 2 2 // Author: Jean-Guilhem Rouel 3 3 // (c) COPYRIGHT MIT, ERCIM and Keio, 2006. … … 10 10 import java.util.Enumeration; 11 11 import java.util.Hashtable; 12 import java.util.Iterator;13 12 import java.util.LinkedHashMap; 14 13 import java.util.List; … … 35 34 import org.w3c.unicorn.util.Message; 36 35 import org.w3c.unicorn.util.Property; 36 import org.w3c.unicorn.Framework; 37 37 38 38 /** 39 * FirstServlet<br /> 40 * Created: Jun 26, 2006 2:04:11 PM<br /> 39 * ObserveAction 41 40 * 42 41 * @author Jean-Guilhem ROUEL … … 51 50 52 51 private static ServletFileUpload upload; 52 53 private static ArrayList<String> outputParams; 53 54 54 55 @Override … … 59 60 upload = new ServletFileUpload(factory); 60 61 logger.debug("Created a ServletFileUpload with repository set to: " + Property.get("UPLOADED_FILES_REPOSITORY")); 62 63 outputParams = new ArrayList<String>(); 64 outputParams.add("output"); 65 outputParams.add("format"); 66 outputParams.add("charset"); 67 outputParams.add("mimetype"); 68 outputParams.add("lang"); 61 69 } 62 70 … … 64 72 65 73 Hashtable<String, Object> params = new Hashtable<String, Object>(); 66 74 67 75 if (req.getMethod().equals("POST") && ServletFileUpload.isMultipartContent(new ServletRequestContext(req))) { 68 69 76 List<?> listOfItem = upload.parseRequest(req); 70 77 for (Object fileItem : listOfItem) { … … 74 81 } else if (aFileItem.getFieldName().equals(Property.get("UNICORN_PARAMETER_PREFIX") + "file")) { 75 82 params.put(aFileItem.getFieldName(), aFileItem); 83 } else { 84 // TODO log "unknown fileItem, ignored" 76 85 } 77 86 } 78 79 return params; 80 } 81 82 for (Object key : req.getParameterMap().keySet()) { 83 params.put(key.toString(), req.getParameter(key.toString())); 84 } 87 } else { 88 Enumeration<?> paramEnum = req.getParameterNames(); 89 while (paramEnum.hasMoreElements()) { 90 91 Object key = paramEnum.nextElement(); 92 logger.debug("TOM: " + key); 93 params.put(key.toString(), req.getParameter(key.toString())); 94 } 95 } 96 97 String s = "Parameters: "; 98 for (String key : params.keySet()) { 99 s += "\n\t" + key + " - " + params.get(key); 100 } 101 logger.debug(s); 102 85 103 return params; 86 87 104 } 88 105 … … 93 110 super.doGet(req, resp); 94 111 112 Map<String, Object> reqParams; 113 try { 114 reqParams = getRequestParameters(req); 115 } catch (FileUploadException e) { 116 // TODO Auto-generated catch block 117 e.printStackTrace(); 118 return; 119 } 120 121 FileItem aFileItemUploaded = null; 95 122 Map<String, Object> mapOfStringObject = new LinkedHashMap<String, Object>(); 96 Map<String, String []> mapOfSpecificParameter = new Hashtable<String, String[]>();123 Map<String, String> mapOfSpecificParameter = new Hashtable<String, String>(); 97 124 Map<String, String> mapOfOutputParameter = new Hashtable<String, String>(); 98 125 ArrayList<Message> messages = new ArrayList<Message>(); 99 100 //Map<String, String> reqParameters = getRequestParameters(req); 126 UnicornCall aUnicornCall = new UnicornCall(); 101 127 102 128 String paramPrefix = Property.get("UNICORN_PARAMETER_PREFIX"); 103 String lang = getLanguage(req.getParameter(paramPrefix + "lang"), req, null); 104 String task = getTask(req.getParameter(paramPrefix + "task"), lang, messages); 129 String outParamPrefix = Property.get("UNICORN_PARAMETER_OUTPUT_PREFIX"); 105 130 String queryString = getQueryStringWithout(paramPrefix + "lang", req); 106 131 … … 112 137 mapOfOutputParameter.put("charset", "UTF-8"); 113 138 mapOfOutputParameter.put("mimetype", "text/html"); 114 mapOfOutputParameter.put("lang", lang); 115 116 UnicornCall aUnicornCall = new UnicornCall(); 117 String aLocale = convertEnumerationToString(req.getLocales()); 118 if (null == aLocale) 119 aUnicornCall.setLang(lang + "," + Property.get("DEFAULT_LANGUAGE")); 120 else 121 aUnicornCall.setLang(lang + "," + aLocale); 122 123 for (Object param : req.getParameterMap().keySet()) { 139 140 for (String key : reqParams.keySet()) { 141 if (!key.startsWith(paramPrefix) && !key.startsWith(outParamPrefix)) { 142 logger.debug("UnicornCall parameter: " + key + " - " + (String) reqParams.get(key)); 143 aUnicornCall.addParameter(key, (String) reqParams.get(key)); 144 continue; 145 } 146 147 if (key.startsWith(outParamPrefix)) { 148 logger.debug("Specific parameter: " + key + " - " + (String) reqParams.get(key)); 149 String paramName = key.substring(outParamPrefix.length()); 150 mapOfSpecificParameter.put(paramName, (String) reqParams.get(key)); 151 continue; 152 } 153 154 if (key.startsWith(paramPrefix)) { 155 String paramName = key.substring(paramPrefix.length()); 156 157 if (paramName.equals("lang")) { 158 logger.debug("Lang parameter: " + key + " - " + (String) reqParams.get(key)); 159 String lang = getLanguage((String) reqParams.get(key), req, null); 160 mapOfOutputParameter.put(paramName, lang); 161 String aLocale = convertEnumerationToString(req.getLocales()); 162 if (null == aLocale) 163 aUnicornCall.setLang(lang + "," + Property.get("DEFAULT_LANGUAGE")); 164 else 165 aUnicornCall.setLang(lang + "," + aLocale); 166 if (!lang.equals(reqParams.get(key))) { 167 logger.debug("Lang parameter unsupported. Resolved to: " + lang); 168 } 169 } else if (paramName.equals("task")) { 170 logger.debug("Task parameter: " + key + " - " + (String) reqParams.get(key)); 171 String task = getTask((String) reqParams.get(key), messages); 172 if (!task.equals(reqParams.get(key))) { 173 mapOfStringObject.put("default_task", Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId())); 174 logger.debug("Task parameter unsupported. Resolved to: " + task); 175 } 176 aUnicornCall.setTask(task); 177 } else if (outputParams.contains(paramName)) { 178 logger.debug("Output parameter: " + key + " - " + (String) reqParams.get(key)); 179 mapOfOutputParameter.put(paramName, (String) reqParams.get(key)); 180 continue; 181 } else if (paramName.equals("uri")) { 182 logger.debug("Uri parameter: " + key + " - " + (String) reqParams.get(key)); 183 aUnicornCall.setEnumInputMethod(EnumInputMethod.URI); 184 String uri = (String) reqParams.get(key); 185 if (uri.length() < 7 || !uri.substring(0, 7).equals("http://")) { 186 uri = "http://" + uri; 187 } 188 aUnicornCall.setDocumentName(uri); 189 aUnicornCall.setInputParameterValue(uri); 190 } else if (paramName.equals("text")) { 191 logger.debug("Text parameter: " + key + " - " + (String) reqParams.get(key)); 192 aUnicornCall.setEnumInputMethod(EnumInputMethod.DIRECT); 193 aUnicornCall.setInputParameterValue((String) reqParams.get(key)); 194 } else if (paramName.equals("file")) { 195 logger.debug("File parameter: " + key + " - " + reqParams.get(key).toString()); 196 Object object = reqParams.get(key); 197 if (object instanceof FileItem) { 198 aFileItemUploaded = (FileItem) object; 199 aUnicornCall.setDocumentName(aFileItemUploaded.getName()); 200 aUnicornCall.setInputParameterValue(aFileItemUploaded); 201 aUnicornCall.setEnumInputMethod(EnumInputMethod.UPLOAD); 202 } else { 203 // TODO log "ucn_file not an instance of FileItem ?" 204 } 205 } else { 206 logger.debug("Unknown parameter: " + key + " - " + (String) reqParams.get(key)); 207 // TODO Warn that there is an unknown parameter which is added to unicornCall by default 208 aUnicornCall.addParameter(paramName, (String) reqParams.get(key)); 209 } 210 } 211 } 212 213 if (!reqParams.containsKey(paramPrefix + "lang")) { 214 String lang = getLanguage(null, req, null); 215 reqParams.put(paramPrefix + "lang", getLanguage(null, req, null)); 216 logger.debug("No language parameter found. Language negociation resolved language to: " + lang); 217 mapOfOutputParameter.put("lang", lang); 218 String aLocale = convertEnumerationToString(req.getLocales()); 219 if (null == aLocale) 220 aUnicornCall.setLang(lang + "," + Property.get("DEFAULT_LANGUAGE")); 221 else 222 aUnicornCall.setLang(lang + "," + aLocale); 223 } 224 225 if (!reqParams.containsKey(paramPrefix + "task")) { 226 String task = getTask(null, messages); 227 reqParams.put(paramPrefix + "task", task); 228 logger.debug("No task parameter found. Task parameter is set to task id: " + task); 229 mapOfStringObject.put("default_task", Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId())); 230 aUnicornCall.setTask(task); 231 } 232 233 if (reqParams.containsKey(paramPrefix + "uri")) { 234 //TODO vérifier que n'est pas vide 235 } else if (reqParams.containsKey(paramPrefix + "text")) { 236 //TODO vérifier que n'est pas vide + vérifier présence de ucn_text_mime 237 } else if (reqParams.containsKey(paramPrefix + "file")) { 238 //TODO vérifier que n'est pas vide 239 } else { 240 //TODO aucun des 3 paramètres n'est présent -> erreur 241 } 242 243 244 245 /*for (Object param : req.getParameterMap().keySet()) { 124 246 String sParamName = (String) param; 125 247 String[] tStringParamValue = req.getParameterValues(sParamName); 126 248 addParameter(sParamName, tStringParamValue, aUnicornCall, mapOfSpecificParameter, mapOfOutputParameter); 127 } 128 129 addParameter(paramPrefix+ "task", task, aUnicornCall, mapOfSpecificParameter, mapOfOutputParameter);249 }*/ 250 251 //addParameter(paramPrefix+ "task", task, aUnicornCall, mapOfSpecificParameter, mapOfOutputParameter); 130 252 131 253 // POST operations 132 FileItem aFileItemUploaded = null;133 if (req.getMethod().equals("POST") && ServletFileUpload.isMultipartContent(new ServletRequestContext(req))) {254 //FileItem aFileItemUploaded = null; 255 /*if (req.getMethod().equals("POST") && ServletFileUpload.isMultipartContent(new ServletRequestContext(req))) { 134 256 messages.clear(); 135 257 try { … … 154 276 createError(req, resp, mess,mapOfSpecificParameter, mapOfOutputParameter); 155 277 } 156 } 278 }*/ 157 279 158 280 try { … … 174 296 } finally { 175 297 if ("true".equals(Property.get("DELETE_UPLOADED_FILES")) 176 && aFileItemUploaded != null 177 && aFileItemUploaded instanceof FileItem) { 298 && aFileItemUploaded != null) { 178 299 aFileItemUploaded.delete(); 179 300 } … … 198 319 * @param mapOfOutputParameter 199 320 */ 200 private void addParameter(final String sParamName,321 /*private void addParameter(final String sParamName, 201 322 final String sParamValue, final UnicornCall aUnicornCall, 202 final Map<String, String []> mapOfSpecificParameter,323 final Map<String, String> mapOfSpecificParameter, 203 324 final Map<String, String> mapOfOutputParameter) { 204 325 final String[] tStringValues = { sParamValue }; … … 215 336 * @param mapOfOutputParameter 216 337 */ 217 private void addParameter(String sParamName,338 /*private void addParameter(String sParamName, 218 339 final String[] tStringParamValue, final UnicornCall aUnicornCall, 219 final Map<String, String []> mapOfSpecificParameter,340 final Map<String, String> mapOfSpecificParameter, 220 341 final Map<String, String> mapOfOutputParameter) { 221 342 … … 280 401 + "mime", tStringParamValue); 281 402 } 282 } 403 }*/ 283 404 284 405 private void createError(HttpServletRequest req, HttpServletResponse resp, 285 Message mess, Map<String, String []> mapOfSpecificParameter,406 Message mess, Map<String, String> mapOfSpecificParameter, 286 407 Map<String, String> mapOfOutputParameter) throws IOException, ServletException { 287 408 … … 304 425 private void createOutput(HttpServletRequest req, HttpServletResponse resp, 305 426 Map<String, Object> mapOfStringObject, UnicornCall aUnicornCall, 306 Map<String, String []> mapOfSpecificParameter, Map<String, String> mapOfOutputParameter) throws IOException {427 Map<String, String> mapOfSpecificParameter, Map<String, String> mapOfOutputParameter) throws IOException { 307 428 308 429 resp.setContentType(mapOfOutputParameter.get("mimetype") + "; charset=" + mapOfOutputParameter.get("charset"));
