Hi Peter,

I had the same problem last summer and made two modifications to Maverick. My app must be able to adjust to any charset based on locale. I'm pasting in the changes I made below. If someone can commit them to the maverick source that would be even better!! Anyway, let me know how you find these changes.


Good luck,
Dan


In AbstractTransformStep.java, change to

public HttpServletResponse getResponse() throws IOException, ServletException
        {
                log.debug("Getting fake response");

                // Should be ok to wrap the real mccoy here.
                if (this.fakeResponse == null) {
this.fakeResponse = new FakeHttpServletResponse(this.getTransformCtx().getRealResponse());
            // added by DF 7/26/05
            // allows propogating character encoding on to response
fakeResponse.setContentType("text/html; charset=" + getTransformCtx().getRequest().getCharacterEncoding());
        }

                return this.fakeResponse;
        }

In Dispatcher.java, change to

        public void init() throws ServletException
        {
                // Make us available in the application attribute collection
this.getServletContext().setAttribute(MAVERICK_APPLICATION_KEY, this);

                // Get defaultRequestCharset from init parameter, null is ok
// CLOWN added by DF 7/26/05 -- allows pulling default char set from app defaultRequestCharset = (String)this.getServletContext().getAttribute(INITPARAM_DEFAULT_REQUEST_CHARSET);
        if(defaultRequestCharset == null) {
this.defaultRequestCharset = this.getInitParameter(INITPARAM_DEFAULT_REQUEST_CHARSET);
        }

                // Get limitTransformsParam from init parameter, null is ok
this.limitTransformsParam = this.getInitParameter(INITPARAM_LIMIT_TRANSFORMS_PARAM);

                // Get reuseMaverickContext from init parameter, null is ok
this.reuseMaverickContext = "true".equals(this.getInitParameter(INITPARAM_REUSE_CONTEXT));




At 09:05 AM 1/5/2006, Peter Chase wrote:
Is anything wrong with the following patch, to make Maverick transforms
automatically pick up the character encoding?

        public FakeHttpServletResponse(HttpServletResponse wrapMe)
        {
                super(wrapMe);

                if (log.isDebugEnabled())
                        log.debug("Creating fake response, original buffer
size is "
                                                + wrapMe.getBufferSize());

                this.charset = wrapMe.getCharacterEncoding();  // THIS IS
THE NEW LINE
        }



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
[INVALID FOOTER]




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
[INVALID FOOTER]

Reply via email to