I thought I'd just drop a note on the list to report on how I dealt with
this issue.

At first, I started going down the path of building a module that would
somehow override this service, and in the end it turned out that I had to
make way too many changes to make it happen.

Today, I decided, screw it, I'd apply the patch from
https://issues.apache.org/jira/browse/TAP5-1778 , and set up a custom build
of tapestry that takes care of this. It turns out it's not a big deal at
all , e.g.
1. clone tapestry git repo
2. create a branch off the 5.3 branch, apply the patch from the issue
3. change the name of the version to 5.3-enc-patch in build.gradle . Run
./gradlew build -x test
4. declare a dependency on tapestry-core 5.3.7-enc-patch in my project,
build and deploy to gae
5. Ta-da, my newly deployed application on GAE now displays the bulgarian
and russian templates as it should , no more ???s -
http://www.zadachite.com/bg

I really think this patch should be a part of tapestry-core : in the normal
case, it would have no effect. In a case like GAE when I don't have control
of the underlying platform encoding, this gives a very nice tool to deal
with that problem.

The only interesting alternative (e.g. one that for example Wicket and
Gaelyk have taken to deal w/ the GAE perverted default file encoding) is to
take in the value of the file encoding from a system property (e.g.
-Dfile.encoding ) instead of from a symbol. In that case, if there are
other libraries that might not be aware of tapestry-ioc, they could still
use the system property to decide what encoding to use , and in GAE, one
can pass in system properties in appengine.xml.

Hopefully a committer can apply this patch to tapestry-core. If not, maybe
this would be useful to the next person who deploys to GAE and beats his
head against the wall long enough just to find this posting.

Cheers -


On Wed, May 22, 2013 at 7:57 AM, Alex Kotchnev <akoch...@gmail.com> wrote:

> Alejandro,
>    unfortunately, adding the XML declaration doesn't help. .
>
>    This obviously wouldn't be an issue if a) I was running my own JVM,
> which in most situations where one hosts an application is the case
> (unfortunately, not the case in PAAS like GAE) or b) Tapestry didn't use
> the default platform character set.
>
>    Looking at the patch attached to TAP5-1778, I'm not entirely sure if I
> can just override a specific service, as the patch appears to touch a whole
> bunch of classes, which probably means that if I can override this class,
> I'll probably have a copy a whole bunch of T5 source code to do that. The
> alternative seems to be to just apply the patch to tapestry-core and deploy
> my own build.
>
>    The strange part is that this used to work - when I originally deployed
> this application to GAE a couple of years ago, the localized templates
> rendered just fine. I remember reading that GAE did change linux distro
> underneath their infrastructure (maybe some version of Debian); however,
> changing the default character set to US-ASCII hardly makes sense for a
> platform provider. There is an existing GAE issue to which I added some
> comments - https://code.google.com/p/googleappengine/issues/detail?id=2219 -
> feel free to add your own :-)
>
> Cheers -
>
>
> On Wed, May 22, 2013 at 5:23 AM, Alejandro Scandroli <
> alejandroscandr...@gmail.com> wrote:
>
>> Josh Canfield 've asked a very good question in TAP5-1778.
>> does Tapestry respect the XML declaration for changing charset?
>>
>> Have you tried adding an xml header to your templates?, like:
>> <?xml version="1.0" encoding="UTF-8" ?>
>>
>>
>> Alejandro.
>>
>> On Wed, May 22, 2013 at 9:49 AM, Lance Java <lance.j...@googlemail.com>
>> wrote:
>> > I think you've hit the nail on the head and that this relates to
>> TAP5-1778.
>> >
>> > As a work around, can you put your special chars in a language specific
>> > properties file? By default, prop files are treated as UTF-8. You can
>> also
>> > override the PropertiesFileParser if you need.
>> >
>> > Another option is to override the TemplateParser service to use UTF-8.
>> See
>> > the patch attached to the issue.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>

Reply via email to