Changeset 268:365f59821036
- Timestamp:
- 09/03/09 16:43:21 (4 years ago)
- Branch:
- default
- convert_revision:
- svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@269
- Files:
-
- 2 added
- 4 removed
- 12 modified
-
.classpath (modified) (1 diff)
-
WebContent/WEB-INF/conf/log4j.properties (modified) (2 diffs)
-
WebContent/WEB-INF/lib/apache-mime4j-0.6.jar (deleted)
-
WebContent/WEB-INF/lib/httpclient-4.0.jar (deleted)
-
WebContent/WEB-INF/lib/httpcore-4.0.1.jar (deleted)
-
WebContent/WEB-INF/lib/httpmime-4.0.jar (deleted)
-
src/org/w3c/unicorn/UnicornCall.java (modified) (8 diffs)
-
src/org/w3c/unicorn/request/DirectRequestGET.java (modified) (2 diffs)
-
src/org/w3c/unicorn/request/DirectRequestPOST.java (modified) (2 diffs)
-
src/org/w3c/unicorn/request/Request.java (modified) (4 diffs)
-
src/org/w3c/unicorn/request/URIRequest.java (modified) (2 diffs)
-
src/org/w3c/unicorn/request/UploadRequest.java (modified) (7 diffs)
-
src/org/w3c/unicorn/response/parser/DefaultParser.java (modified) (1 diff)
-
src/org/w3c/unicorn/response/parser/ResponseParser.java (modified) (1 diff)
-
src/org/w3c/unicorn/response/parser/ResponseParserFactory.java (modified) (1 diff)
-
src/org/w3c/unicorn/util/ClientHttpRequest.java (added)
-
src/org/w3c/unicorn/util/EscapeXMLEntities.java (added)
-
src/org/w3c/unicorn/util/XHTMLize.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
.classpath
r214 r268 14 14 </classpathentry> 15 15 <classpathentry kind="lib" path="WebContent/WEB-INF/lib/xbean.jar"/> 16 <classpathentry kind="lib" path="WebContent/WEB-INF/lib/httpcore-4.0.1.jar"/>17 <classpathentry kind="lib" path="WebContent/WEB-INF/lib/httpmime-4.0.jar"/>18 <classpathentry kind="lib" path="WebContent/WEB-INF/lib/httpclient-4.0.jar"/>19 <classpathentry kind="lib" path="WebContent/WEB-INF/lib/apache-mime4j-0.6.jar"/>20 16 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 21 17 <classpathentry kind="lib" path="WebContent/WEB-INF/lib/jsr173_1.0_api.jar"/> -
WebContent/WEB-INF/conf/log4j.properties
r237 r268 1 log4j.rootLogger=WARN, GUI, Console2 #log4j.rootLogger=WARN, GUI, Console, level-error, level-warning, level-info, level-debug, level-trace1 #log4j.rootLogger=WARN, GUI, Console 2 log4j.rootLogger=WARN, level-error, level-warning, level-info, level-debug, level-trace 3 3 4 4 log4j.logger.org.apache.velocity=DEBUG 5 5 log4j.logger.org.w3c.unicorn.Framework=DEBUG 6 6 7 log4j.logger.org.w3c.unicorn=ALL8 log4j.logger.org.w3c.unicorn.action=DEBUG9 log4j.logger.org.w3c.unicorn.contract=WARN10 log4j.logger.org.w3c.unicorn.input=WARN11 log4j.logger.org.w3c.unicorn.output=WARN12 log4j.logger.org.w3c.unicorn.request=WARN13 log4j.logger.org.w3c.unicorn.response=WARN14 log4j.logger.org.w3c.unicorn.tasklist=WARN15 log4j.logger.org.w3c.unicorn.tasklisttree=WARN16 log4j.logger.org.w3c.unicorn.util=WARN7 #log4j.logger.org.w3c.unicorn=ALL 8 #log4j.logger.org.w3c.unicorn.action=DEBUG 9 #log4j.logger.org.w3c.unicorn.contract=WARN 10 #log4j.logger.org.w3c.unicorn.input=WARN 11 #log4j.logger.org.w3c.unicorn.output=WARN 12 #log4j.logger.org.w3c.unicorn.request=WARN 13 #log4j.logger.org.w3c.unicorn.response=WARN 14 #log4j.logger.org.w3c.unicorn.tasklist=WARN 15 #log4j.logger.org.w3c.unicorn.tasklisttree=WARN 16 #log4j.logger.org.w3c.unicorn.util=WARN 17 17 18 #log4j.logger.org.w3c.unicorn=ALL, package-unicorn19 #log4j.logger.org.w3c.unicorn.action=ALL, package-action20 #log4j.logger.org.w3c.unicorn.contract=ALL, package-contract21 #log4j.logger.org.w3c.unicorn.input=ALL, package-input22 #log4j.logger.org.w3c.unicorn.output=ALL, package-output23 #log4j.logger.org.w3c.unicorn.request=ALL, package-request24 #log4j.logger.org.w3c.unicorn.response=ALL, package-response25 #log4j.logger.org.w3c.unicorn.tasklist=ALL, package-tasklist26 #log4j.logger.org.w3c.unicorn.util=ALL, package-util18 log4j.logger.org.w3c.unicorn=ALL, package-unicorn 19 log4j.logger.org.w3c.unicorn.action=ALL, package-action 20 log4j.logger.org.w3c.unicorn.contract=ALL, package-contract 21 log4j.logger.org.w3c.unicorn.input=ALL, package-input 22 log4j.logger.org.w3c.unicorn.output=ALL, package-output 23 log4j.logger.org.w3c.unicorn.request=ALL, package-request 24 log4j.logger.org.w3c.unicorn.response=ALL, package-response 25 log4j.logger.org.w3c.unicorn.tasklist=ALL, package-tasklist 26 log4j.logger.org.w3c.unicorn.util=ALL, package-util 27 27 28 28 log4j.appender.GUI=org.apache.log4j.lf5.LF5Appender … … 44 44 log4j.appender.level-error.filter.LevelToMatch=error 45 45 log4j.appender.level-error.filter.AcceptOnMatch=true 46 log4j.appender.level-error.filter=org.apache.log4j.varia.DenyAllFilter47 46 48 47 log4j.appender.level-warning=org.apache.log4j.RollingFileAppender -
src/org/w3c/unicorn/UnicornCall.java
r261 r268 1 // $Id: UnicornCall.java,v 1. 5 2009-09-02 15:45:42 tgambetExp $1 // $Id: UnicornCall.java,v 1.6 2009-09-03 16:43:21 jean-gui Exp $ 2 2 // Author: Jean-Guilhem Rouel 3 3 // (c) COPYRIGHT MIT, ERCIM and Keio, 2006. … … 13 13 import java.net.URL; 14 14 import java.util.ArrayList; 15 import java.util.Hashtable;16 15 import java.util.LinkedHashMap; 17 16 import java.util.List; 18 17 import java.util.Map; 19 import java.util.TreeMap;20 18 21 19 import javax.activation.MimeType; … … 32 30 import org.apache.velocity.VelocityContext; 33 31 import org.apache.velocity.app.event.EventCartridge; 34 import org.apache.velocity.app.event.implement.EscapeXmlReference;35 32 import org.w3.unicorn.tasklist.GroupType; 36 33 import org.w3c.dom.Document; … … 56 53 import org.w3c.unicorn.tasklisttree.TLTIf; 57 54 import org.w3c.unicorn.tasklisttree.TLTNode; 55 import org.w3c.unicorn.util.EscapeXMLEntities; 58 56 import org.w3c.unicorn.util.Property; 59 57 import org.w3c.unicorn.util.Templates; … … 607 605 if (!group.isSetType()) { 608 606 for (String observerId : group.getObservationList()) { 609 tempMap.put(observerId, mapOfResponse.get(observerId)); 607 if(mapOfResponse.get(observerId) != null) { 608 tempMap.put(observerId, mapOfResponse.get(observerId)); 609 } 610 610 } 611 611 } else { … … 903 903 } catch (final Exception e) { 904 904 RequestThread.logger.error("Exception : " + e.getMessage(), e); 905 e.printStackTrace();906 905 try { 907 906 StringBuilder builder = new StringBuilder(); 908 907 //String lang[] = unicornCall.getMapOfStringParameter().get( 909 908 // Property.get("UNICORN_PARAMETER_PREFIX") + "lang"); 910 911 909 String lang = unicornCall.getLang(); 912 910 913 911 VelocityContext context = new VelocityContext(Framework.getLanguageContexts().get(lang)); 914 915 final EventCartridge aEventCartridge = new EventCartridge(); 916 aEventCartridge.addEventHandler(new EscapeXmlReference()); 912 EventCartridge aEventCartridge = new EventCartridge(); 913 aEventCartridge.addEventHandler(new EscapeXMLEntities()); 917 914 aEventCartridge.attachToContext(context); 918 915 … … 921 918 else 922 919 context.put("exception", ""); 923 924 920 ByteArrayOutputStream os = new ByteArrayOutputStream(); 925 921 OutputStreamWriter osw = new OutputStreamWriter(os); 926 922 Templates.write("io_error.vm", context, osw); 927 928 923 osw.close(); 929 930 924 InputStreamReader isr = new InputStreamReader( 931 925 new ByteArrayInputStream(os.toByteArray())); 932 933 926 char[] chararray = new char[8192]; 934 927 int readLength = 0; … … 936 929 builder.append(chararray, 0, readLength); 937 930 } 938 aResponse = ResponseParserFactory.parse(builder.toString(), 939 this.aRequest.getResponseType()); 940 aResponse.setXml(builder); 931 aResponse = ResponseParserFactory.parse(builder.toString(), "default"); 932 aResponse.setXml(builder); 941 933 } catch (MalformedURLException e1) { 942 934 RequestThread.logger -
src/org/w3c/unicorn/request/DirectRequestGET.java
r257 r268 1 // $Id: DirectRequestGET.java,v 1. 3 2009-09-02 12:41:28 tgambetExp $1 // $Id: DirectRequestGET.java,v 1.4 2009-09-03 16:43:19 jean-gui Exp $ 2 2 // Author: Damien LEROY. 3 3 // (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. … … 87 87 88 88 @Override 89 public Response doRequest() throws IOException {89 public Response doRequest() throws Exception { 90 90 Request.logger.trace("doRequest"); 91 91 final URL aURL; -
src/org/w3c/unicorn/request/DirectRequestPOST.java
r214 r268 1 // $Id: DirectRequestPOST.java,v 1. 2 2009-08-28 12:39:48jean-gui Exp $1 // $Id: DirectRequestPOST.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 2 2 // Author: Damien LEROY. 3 3 // (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. … … 115 115 116 116 @Override 117 public Response doRequest() throws IOException {117 public Response doRequest() throws Exception { 118 118 Request.logger.trace("doRequest"); 119 119 final URL aURL = new URL(sURL); -
src/org/w3c/unicorn/request/Request.java
r214 r268 1 // $Id: Request.java,v 1. 2 2009-08-28 12:39:48jean-gui Exp $1 // $Id: Request.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 2 2 // Author: Damien LEROY. 3 3 // (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. … … 5 5 package org.w3c.unicorn.request; 6 6 7 import java.io.ByteArrayInputStream; 8 import java.io.ByteArrayOutputStream; 7 9 import java.io.IOException; 8 10 import java.io.InputStream; 9 11 import java.io.InputStreamReader; 12 import java.io.OutputStreamWriter; 10 13 11 14 import org.apache.commons.logging.Log; 12 15 import org.apache.commons.logging.LogFactory; 16 import org.apache.velocity.VelocityContext; 17 import org.apache.velocity.app.event.EventCartridge; 18 import org.apache.velocity.app.event.implement.EscapeXmlReference; 19 import org.w3c.unicorn.Framework; 13 20 import org.w3c.unicorn.contract.EnumInputMethod; 14 21 import org.w3c.unicorn.input.InputModule; 15 22 import org.w3c.unicorn.response.Response; 16 23 import org.w3c.unicorn.response.parser.ResponseParserFactory; 24 import org.w3c.unicorn.util.Templates; 17 25 18 26 /** … … 68 76 * @throws IOException 69 77 * odd error occured 78 * @throws Exception 70 79 */ 71 80 public abstract org.w3c.unicorn.response.Response doRequest() 72 throws IOException ;81 throws IOException, Exception; 73 82 74 83 public abstract EnumInputMethod getInputMethod(); … … 136 145 } 137 146 138 protected Response streamToResponse(InputStream is) throws IOException {147 protected Response streamToResponse(InputStream is) throws Exception { 139 148 StringBuilder builder = new StringBuilder(); 140 149 InputStreamReader isr = new InputStreamReader(is, "UTF-8"); 141 150 char[] chararray = new char[8192]; 142 151 int readLength = 0; 152 Response res; 153 143 154 while ((readLength = isr.read(chararray, 0, 8192)) > -1) { 144 155 builder.append(chararray, 0, readLength); 145 156 } 146 147 Response res = ResponseParserFactory.parse(builder.toString(), this 148 .getResponseType()); 149 res.setXml(builder); 157 Request.logger.debug(builder); 158 res = ResponseParserFactory.parse(builder.toString(), this.getResponseType()); 159 if(res != null) { 160 res.setXml(builder); 161 } 150 162 151 163 return res; -
src/org/w3c/unicorn/request/URIRequest.java
r214 r268 1 // $Id: URIRequest.java,v 1. 2 2009-08-28 12:39:48jean-gui Exp $1 // $Id: URIRequest.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 2 2 // Author: Damien LEROY. 3 3 // (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. … … 96 96 /** 97 97 * Do the request to the observer 98 * 99 * @throws IOException 100 * odd error occured 98 * @throws Exception 101 99 */ 102 100 @Override 103 public Response doRequest() throws IOException {101 public Response doRequest() throws Exception { 104 102 Request.logger.trace("doRequest"); 105 103 if (Request.logger.isDebugEnabled()) { -
src/org/w3c/unicorn/request/UploadRequest.java
r214 r268 1 // $Id: UploadRequest.java,v 1. 2 2009-08-28 12:39:48jean-gui Exp $1 // $Id: UploadRequest.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 2 2 // Author: Damien LEROY. 3 3 // (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. … … 6 6 7 7 import java.io.IOException; 8 import java.io.InputStream; 8 9 import java.net.MalformedURLException; 9 10 import java.util.Hashtable; 10 11 import java.util.Map; 11 12 12 import org.apache.http.HttpResponse;13 import org.apache.http.client.methods.HttpPost;14 import org.apache.http.entity.mime.MultipartEntity;15 import org.apache.http.entity.mime.content.InputStreamBody;16 import org.apache.http.entity.mime.content.StringBody;17 import org.apache.http.impl.client.DefaultHttpClient;18 13 import org.w3c.unicorn.contract.EnumInputMethod; 19 14 import org.w3c.unicorn.input.InputModule; 20 15 import org.w3c.unicorn.input.UploadInputModule; 21 16 import org.w3c.unicorn.response.Response; 17 import org.w3c.unicorn.util.ClientHttpRequest; 22 18 23 19 /** … … 37 33 */ 38 34 private String sInputParameterName = null; 35 36 /** 37 * A http client for the request in upload 38 */ 39 private ClientHttpRequest aClientHttpRequest = null; 39 40 40 41 /** … … 99 100 100 101 @Override 101 public Response doRequest() throws IOException {102 public Response doRequest() throws Exception { 102 103 Request.logger.trace("doRequest"); 103 DefaultHttpClient httpclient = new DefaultHttpClient();104 105 HttpPost method = new HttpPost(sURL);106 method.setHeader("Accept-Language", sLang);107 MultipartEntity entity = new MultipartEntity();108 104 this.aClientHttpRequest = new ClientHttpRequest(sURL); 105 Request.logger.debug("Lang : " + this.sLang + "."); 106 this.aClientHttpRequest.setLang(sLang); 107 this.aClientHttpRequest.setParameter(this.sInputParameterName, 108 this.aUploadInputModule.getFileName(), this.aUploadInputModule 109 .getInputStream()); 109 110 for (final String sName : this.mapOfParameter.keySet()) { 110 111 final String sValue = this.mapOfParameter.get(sName); … … 114 115 Request.logger.debug("Value :" + sValue + "."); 115 116 } 116 entity.addPart(sName, new StringBody(sValue)); 117 //entity.addPart(sName, new StringBody(sValue, Charset.forName("UTF-8"))); 117 this.aClientHttpRequest.setParameter(sName, sValue); 118 118 } 119 InputStream is = this.aClientHttpRequest.post(); 119 120 120 InputStreamBody file = new InputStreamBody(this.aUploadInputModule.getInputStream(), 121 this.aUploadInputModule.getMimeType().toString(), 122 this.aUploadInputModule.getFileName()); 123 entity.addPart(this.sInputParameterName, file); 124 method.setEntity(entity); 125 126 HttpResponse response = httpclient.execute(method); 127 return streamToResponse(response.getEntity().getContent()); 121 return streamToResponse(is); 128 122 } 129 123 130 124 @Override 131 125 public EnumInputMethod getInputMethod() { … … 134 128 } 135 129 136 /*@Override130 @Override 137 131 public String toString() { 138 132 final int iStringBufferSize = 1000; … … 140 134 aStringBuffer.append("ClientHttpRequest:").append( 141 135 this.aClientHttpRequest); 142 return aStringBuffer.toString();143 } */136 return "lolmdr: " + aStringBuffer.toString(); 137 } 144 138 145 139 } -
src/org/w3c/unicorn/response/parser/DefaultParser.java
r223 r268 44 44 * The input stream. 45 45 * @return The corresponding response. 46 */ 47 public Response parse(String r) { 48 49 try { 50 /*XmlOptions opts = new XmlOptions(); 51 opts.setCharacterEncoding("UTF-8");*/ 52 53 org.w3.unicorn.observationresponse.ObservationresponseDocument ord = org.w3.unicorn.observationresponse.ObservationresponseDocument.Factory 54 .parse(r); 55 return swap(ord); 56 } catch (Exception e) { 57 e.printStackTrace(); 58 return null; 59 } 46 * @throws Exception 47 */ 48 public Response parse(String r) throws Exception { 49 ObservationresponseDocument ord = ObservationresponseDocument.Factory.parse(r); 50 return swap(ord); 60 51 } 61 52 -
src/org/w3c/unicorn/response/parser/ResponseParser.java
r214 r268 4 4 5 5 public interface ResponseParser { 6 public Response parse(String r) ;6 public Response parse(String r) throws Exception; 7 7 } -
src/org/w3c/unicorn/response/parser/ResponseParserFactory.java
r214 r268 42 42 * The type of the response. 43 43 * @return The response parsed corresponding to the input. 44 * @throws Exception 44 45 */ 45 public static Response parse(String r, String responseType) {46 public static Response parse(String r, String responseType) throws Exception { 46 47 try { 47 48 Response response = createResponseParser(responseType).parse(r); -
src/org/w3c/unicorn/util/XHTMLize.java
r223 r268 47 47 return oValue.toString(); 48 48 else 49 return StringEscapeUtils.escape Html(oValue.toString());49 return StringEscapeUtils.escapeXml(oValue.toString()); 50 50 } 51 51 … … 64 64 sResultat += insertImg((Img) oElement); 65 65 } else { 66 sResultat += StringEscapeUtils.escape Html(oElement.toString());66 sResultat += StringEscapeUtils.escapeXml(oElement.toString()); 67 67 } 68 68 } … … 86 86 sResultat += insertImg((Img) oElement); 87 87 } else { 88 sResultat += StringEscapeUtils.escape Html(oElement.toString());88 sResultat += StringEscapeUtils.escapeXml(oElement.toString()); 89 89 } 90 90 } … … 101 101 */ 102 102 private String insertImg(final Img aImage) { 103 return "<img src=\"" + StringEscapeUtils.escape Html(aImage.getSrc())104 + "\" alt=\"" + StringEscapeUtils.escape Html(aImage.getAlt())103 return "<img src=\"" + StringEscapeUtils.escapeXml(aImage.getSrc()) 104 + "\" alt=\"" + StringEscapeUtils.escapeXml(aImage.getAlt()) 105 105 + "\"/>"; 106 106 }
