Changeset 268:365f59821036

Show
Ignore:
Timestamp:
09/03/09 16:43:21 (4 years ago)
Author:
jean-gui
Branch:
default
convert_revision:
svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@269
Message:

Restored ClientHttpRequest? as Apache's HttpClient? was making the markup validator fail on file upload (in streaming mode) for not much added benefit.
Same goes for EscapeXMLEntities. Not much benefit from using Apache's classes which need several dependencies

Files:
2 added
4 removed
12 modified

Legend:

Unmodified
Added
Removed
  • .classpath

    r214 r268  
    1414        </classpathentry> 
    1515        <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"/> 
    2016        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
    2117        <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, Console 
    2 #log4j.rootLogger=WARN, GUI, Console, level-error, level-warning, level-info, level-debug, level-trace 
     1#log4j.rootLogger=WARN, GUI, Console 
     2log4j.rootLogger=WARN, level-error, level-warning, level-info, level-debug, level-trace 
    33 
    44log4j.logger.org.apache.velocity=DEBUG 
    55log4j.logger.org.w3c.unicorn.Framework=DEBUG 
    66 
    7 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 
     7#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 
    1717 
    18 #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 
     18log4j.logger.org.w3c.unicorn=ALL, package-unicorn 
     19log4j.logger.org.w3c.unicorn.action=ALL, package-action 
     20log4j.logger.org.w3c.unicorn.contract=ALL, package-contract 
     21log4j.logger.org.w3c.unicorn.input=ALL, package-input 
     22log4j.logger.org.w3c.unicorn.output=ALL, package-output 
     23log4j.logger.org.w3c.unicorn.request=ALL, package-request 
     24log4j.logger.org.w3c.unicorn.response=ALL, package-response 
     25log4j.logger.org.w3c.unicorn.tasklist=ALL, package-tasklist 
     26log4j.logger.org.w3c.unicorn.util=ALL, package-util 
    2727 
    2828log4j.appender.GUI=org.apache.log4j.lf5.LF5Appender 
     
    4444log4j.appender.level-error.filter.LevelToMatch=error 
    4545log4j.appender.level-error.filter.AcceptOnMatch=true 
    46 log4j.appender.level-error.filter=org.apache.log4j.varia.DenyAllFilter 
    4746 
    4847log4j.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 tgambet Exp $ 
     1// $Id: UnicornCall.java,v 1.6 2009-09-03 16:43:21 jean-gui Exp $ 
    22// Author: Jean-Guilhem Rouel 
    33// (c) COPYRIGHT MIT, ERCIM and Keio, 2006. 
     
    1313import java.net.URL; 
    1414import java.util.ArrayList; 
    15 import java.util.Hashtable; 
    1615import java.util.LinkedHashMap; 
    1716import java.util.List; 
    1817import java.util.Map; 
    19 import java.util.TreeMap; 
    2018 
    2119import javax.activation.MimeType; 
     
    3230import org.apache.velocity.VelocityContext; 
    3331import org.apache.velocity.app.event.EventCartridge; 
    34 import org.apache.velocity.app.event.implement.EscapeXmlReference; 
    3532import org.w3.unicorn.tasklist.GroupType; 
    3633import org.w3c.dom.Document; 
     
    5653import org.w3c.unicorn.tasklisttree.TLTIf; 
    5754import org.w3c.unicorn.tasklisttree.TLTNode; 
     55import org.w3c.unicorn.util.EscapeXMLEntities; 
    5856import org.w3c.unicorn.util.Property; 
    5957import org.w3c.unicorn.util.Templates; 
     
    607605                        if (!group.isSetType()) { 
    608606                                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                                        } 
    610610                                } 
    611611                        } else { 
     
    903903                } catch (final Exception e) { 
    904904                        RequestThread.logger.error("Exception : " + e.getMessage(), e); 
    905                         e.printStackTrace(); 
    906905                        try { 
    907906                                StringBuilder builder = new StringBuilder(); 
    908907                                //String lang[] = unicornCall.getMapOfStringParameter().get( 
    909908                                //              Property.get("UNICORN_PARAMETER_PREFIX") + "lang"); 
    910                                  
    911909                                String lang = unicornCall.getLang(); 
    912910 
    913911                                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()); 
    917914                                aEventCartridge.attachToContext(context); 
    918915                                 
     
    921918                                else 
    922919                                        context.put("exception", ""); 
    923  
    924920                                ByteArrayOutputStream os = new ByteArrayOutputStream(); 
    925921                                OutputStreamWriter osw = new OutputStreamWriter(os); 
    926922                                Templates.write("io_error.vm", context, osw); 
    927                                  
    928923                                osw.close(); 
    929  
    930924                                InputStreamReader isr = new InputStreamReader( 
    931925                                                new ByteArrayInputStream(os.toByteArray())); 
    932  
    933926                                char[] chararray = new char[8192]; 
    934927                                int readLength = 0; 
     
    936929                                        builder.append(chararray, 0, readLength); 
    937930                                } 
    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);                               
    941933                        } catch (MalformedURLException e1) { 
    942934                                RequestThread.logger 
  • src/org/w3c/unicorn/request/DirectRequestGET.java

    r257 r268  
    1 // $Id: DirectRequestGET.java,v 1.3 2009-09-02 12:41:28 tgambet Exp $ 
     1// $Id: DirectRequestGET.java,v 1.4 2009-09-03 16:43:19 jean-gui Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    8787 
    8888        @Override 
    89         public Response doRequest() throws IOException { 
     89        public Response doRequest() throws Exception { 
    9090                Request.logger.trace("doRequest"); 
    9191                final URL aURL; 
  • src/org/w3c/unicorn/request/DirectRequestPOST.java

    r214 r268  
    1 // $Id: DirectRequestPOST.java,v 1.2 2009-08-28 12:39:48 jean-gui Exp $ 
     1// $Id: DirectRequestPOST.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    115115 
    116116        @Override 
    117         public Response doRequest() throws IOException { 
     117        public Response doRequest() throws Exception { 
    118118                Request.logger.trace("doRequest"); 
    119119                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:48 jean-gui Exp $ 
     1// $Id: Request.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    55package org.w3c.unicorn.request; 
    66 
     7import java.io.ByteArrayInputStream; 
     8import java.io.ByteArrayOutputStream; 
    79import java.io.IOException; 
    810import java.io.InputStream; 
    911import java.io.InputStreamReader; 
     12import java.io.OutputStreamWriter; 
    1013 
    1114import org.apache.commons.logging.Log; 
    1215import org.apache.commons.logging.LogFactory; 
     16import org.apache.velocity.VelocityContext; 
     17import org.apache.velocity.app.event.EventCartridge; 
     18import org.apache.velocity.app.event.implement.EscapeXmlReference; 
     19import org.w3c.unicorn.Framework; 
    1320import org.w3c.unicorn.contract.EnumInputMethod; 
    1421import org.w3c.unicorn.input.InputModule; 
    1522import org.w3c.unicorn.response.Response; 
    1623import org.w3c.unicorn.response.parser.ResponseParserFactory; 
     24import org.w3c.unicorn.util.Templates; 
    1725 
    1826/** 
     
    6876         * @throws IOException 
    6977         *             odd error occured 
     78         * @throws Exception  
    7079         */ 
    7180        public abstract org.w3c.unicorn.response.Response doRequest() 
    72                         throws IOException; 
     81                        throws IOException, Exception; 
    7382 
    7483        public abstract EnumInputMethod getInputMethod(); 
     
    136145        } 
    137146 
    138         protected Response streamToResponse(InputStream is) throws IOException { 
     147        protected Response streamToResponse(InputStream is) throws Exception { 
    139148                StringBuilder builder = new StringBuilder(); 
    140149                InputStreamReader isr = new InputStreamReader(is, "UTF-8"); 
    141150                char[] chararray = new char[8192]; 
    142151                int readLength = 0; 
     152                Response res; 
     153                 
    143154                while ((readLength = isr.read(chararray, 0, 8192)) > -1) { 
    144155                        builder.append(chararray, 0, readLength); 
    145156                } 
    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                } 
    150162 
    151163                return res; 
  • src/org/w3c/unicorn/request/URIRequest.java

    r214 r268  
    1 // $Id: URIRequest.java,v 1.2 2009-08-28 12:39:48 jean-gui Exp $ 
     1// $Id: URIRequest.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    9696        /** 
    9797         * Do the request to the observer 
    98          *  
    99          * @throws IOException 
    100          *             odd error occured 
     98         * @throws Exception  
    10199         */ 
    102100        @Override 
    103         public Response doRequest() throws IOException { 
     101        public Response doRequest() throws Exception { 
    104102                Request.logger.trace("doRequest"); 
    105103                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:48 jean-gui Exp $ 
     1// $Id: UploadRequest.java,v 1.3 2009-09-03 16:43:19 jean-gui Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    66 
    77import java.io.IOException; 
     8import java.io.InputStream; 
    89import java.net.MalformedURLException; 
    910import java.util.Hashtable; 
    1011import java.util.Map; 
    1112 
    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; 
    1813import org.w3c.unicorn.contract.EnumInputMethod; 
    1914import org.w3c.unicorn.input.InputModule; 
    2015import org.w3c.unicorn.input.UploadInputModule; 
    2116import org.w3c.unicorn.response.Response; 
     17import org.w3c.unicorn.util.ClientHttpRequest; 
    2218 
    2319/** 
     
    3733         */ 
    3834        private String sInputParameterName = null; 
     35 
     36        /** 
     37         * A http client for the request in upload 
     38         */ 
     39        private ClientHttpRequest aClientHttpRequest = null; 
    3940 
    4041        /** 
     
    99100 
    100101        @Override 
    101         public Response doRequest() throws IOException { 
     102        public Response doRequest() throws Exception { 
    102103                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()); 
    109110                for (final String sName : this.mapOfParameter.keySet()) { 
    110111                        final String sValue = this.mapOfParameter.get(sName); 
     
    114115                                Request.logger.debug("Value :" + sValue + "."); 
    115116                        } 
    116                         entity.addPart(sName, new StringBody(sValue)); 
    117                         //entity.addPart(sName, new StringBody(sValue, Charset.forName("UTF-8"))); 
     117                        this.aClientHttpRequest.setParameter(sName, sValue); 
    118118                } 
     119                InputStream is = this.aClientHttpRequest.post(); 
    119120 
    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); 
    128122        } 
    129          
     123 
    130124        @Override 
    131125        public EnumInputMethod getInputMethod() { 
     
    134128        } 
    135129 
    136         /*@Override 
     130        @Override 
    137131        public String toString() { 
    138132                final int iStringBufferSize = 1000; 
     
    140134                aStringBuffer.append("ClientHttpRequest:").append( 
    141135                                this.aClientHttpRequest); 
    142                 return aStringBuffer.toString(); 
    143         }*/ 
     136                return "lolmdr: " + aStringBuffer.toString(); 
     137        } 
    144138 
    145139} 
  • src/org/w3c/unicorn/response/parser/DefaultParser.java

    r223 r268  
    4444         *            The input stream. 
    4545         * @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); 
    6051        } 
    6152 
  • src/org/w3c/unicorn/response/parser/ResponseParser.java

    r214 r268  
    44 
    55public interface ResponseParser { 
    6         public Response parse(String r); 
     6        public Response parse(String r) throws Exception; 
    77} 
  • src/org/w3c/unicorn/response/parser/ResponseParserFactory.java

    r214 r268  
    4242         *            The type of the response. 
    4343         * @return The response parsed corresponding to the input. 
     44         * @throws Exception  
    4445         */ 
    45         public static Response parse(String r, String responseType) { 
     46        public static Response parse(String r, String responseType) throws Exception { 
    4647                try { 
    4748                        Response response = createResponseParser(responseType).parse(r); 
  • src/org/w3c/unicorn/util/XHTMLize.java

    r223 r268  
    4747                        return oValue.toString(); 
    4848                else 
    49                         return StringEscapeUtils.escapeHtml(oValue.toString()); 
     49                        return StringEscapeUtils.escapeXml(oValue.toString()); 
    5050        } 
    5151 
     
    6464                                sResultat += insertImg((Img) oElement); 
    6565                        } else { 
    66                                 sResultat += StringEscapeUtils.escapeHtml(oElement.toString()); 
     66                                sResultat += StringEscapeUtils.escapeXml(oElement.toString()); 
    6767                        } 
    6868                } 
     
    8686                                sResultat += insertImg((Img) oElement); 
    8787                        } else { 
    88                                 sResultat += StringEscapeUtils.escapeHtml(oElement.toString()); 
     88                                sResultat += StringEscapeUtils.escapeXml(oElement.toString()); 
    8989                        } 
    9090                } 
     
    101101         */ 
    102102        private String insertImg(final Img aImage) { 
    103                 return "<img src=\"" + StringEscapeUtils.escapeHtml(aImage.getSrc()) 
    104                                 + "\" alt=\"" + StringEscapeUtils.escapeHtml(aImage.getAlt()) 
     103                return "<img src=\"" + StringEscapeUtils.escapeXml(aImage.getSrc()) 
     104                                + "\" alt=\"" + StringEscapeUtils.escapeXml(aImage.getAlt()) 
    105105                                + "\"/>"; 
    106106        }