Re: Ecmascript5 and tapestry-webresources

2021-01-28 Thread JumpStart
As requested, I’ve created a ticket for it. TAP5-2661 - Allow options to be 
passed to GoogleClosureMinimizer 
 .

Thanks for the responses, lads.

> On 28 Jan 2021, at 9:32 pm, Ben Weidig  wrote:
> 
> Hi,
> 
> the GoogleClosureMinimizer and its non-configurability is on my personal
> "things to look at" list for quite some time.
> We ran into issues in the past, and it popped up on the mailing list last
> year a few times IIRC.
> 
> So far, you need either to set
> TapestryConstants.DISABLE_JAVASCRIPT_MINIMIZATION in an appropriate place
> like a RequestFilter, or disable minimization altogether.
> 
> My initial thought is a CompilerOptionsFactory/Provider with a default
> implementation.
> 
> I didn't find any information if the options are thread-safe and could be
> reused, so contributing it as a symbol (as an alternative to a factory)
> might not be feasible.
> 
> If I find some time this weekend I try to (finally) take a deeper look at
> it.
> 
> Cheers,
> Ben
> 
> On Thu, Jan 28, 2021 at 1:16 PM Thiago H. de Paula Figueiredo <
> thiag...@gmail.com> wrote:
> 
>> Hello, Geoff!
>> 
>> Looking at GoogleClosureMinimizer, I cannot see how the options can be
>> customized. Could you please create a Jira issue so we can fix this in
>> 5.7.0? Thanks in advance.
>> 
>> Cheers!
>> 
>> On Thu, Jan 28, 2021 at 6:31 AM JumpStart <
>> geoff.callender.jumpst...@gmail.com> wrote:
>> 
>>> Can I pass options to GoogleClosureMinimizer at runtime?
>>> 
>>> I have a 3rd party javascript file (html2canvas.min.js) that
>>> tapestry-webresources is failing to parse because the JS is using
>>> javascript getters, which I think were introduced in ECMASCRIPT5.
>>> 
>>> 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry]
>> (default
>>> task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are
>> not
>>> supported in older versions of JavaScript. If you are targeting newer
>>> versions of JavaScript, set the appropriate language_in option. at
>>> StreamableResource>> classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
>>> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
>>> 
>>> As I am targeting only modern versions of Chrome and Safari, it seems
>> that
>>> I could fix this by passing option —language_in=ECMASCRIPT5 to
>>> google-closure-compiler, but how can I do this? Is there a system
>> property
>>> I can provide at runtime?
>>> 
>>> In case it helps, here’s the stack trace...
>>> 
>>> 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry]
>> (default
>>> task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are
>> not
>>> supported in older versions of JavaScript. If you are targeting newer
>>> versions of JavaScript, set the appropriate language_in option. at
>>> StreamableResource>> classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
>>> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
>>> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
>> (default
>>> task-14) Operations trace:
>>> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
>> (default
>>> task-14) [ 1] Streaming compressed module html2canvas.min
>>> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
>> (default
>>> task-14) [ 2] Streaming classpath:META-INF/modules/html2canvas.min.js
>>> (compressed)
>>> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
>> (default
>>> task-14) [ 3] Minimizing StreamableResource>> classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
>>> Thu Jan 28 03:44:05 UTC 2021 size: 165202>
>>> 2021-01-28 04:31:40,544 ERROR
>>> [org.apache.tapestry5.modules.TapestryModule.RequestExceptionHandler]
>>> (default task-14) Processing of request failed with uncaught exception:
>>> org.apache.tapestry5.ioc.internal.OperationException: Compilation failed:
>>> JSC_PARS
>>> E_ERROR. Parse error. getters are not supported in older versions of
>>> JavaScript. If you are targeting newer versions of JavaScript, set the
>>> appropriate language_in option. at StreamableResource>> classpath:META-INF/modules/html2canvas.min.j
>>> s COMPRESSABLE lastModified: Thu Jan 28 03:44:05 UTC 2021 size: 165202>
>>> line 20 : 0.: org.apache.tapestry5.ioc.internal.OperationException:
>>> Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not
>> supported
>>> in older versions of JavaScript. If yo
>>> u are targeting newer versions of JavaScript, set the appropriate
>>> language_in option. at StreamableResource>> classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
>>> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
>>> …
>>> Caused by: java.lang.RuntimeException: Compilation failed:
>>> JSC_PARSE_ERROR. Parse error. getters are not supported in older versions
>>> of JavaScript. If you are targeting newer versions of JavaScript, set the
>>> appropriate language_in option. at 

Re: Ecmascript5 and tapestry-webresources

2021-01-28 Thread Ben Weidig
Hi,

the GoogleClosureMinimizer and its non-configurability is on my personal
"things to look at" list for quite some time.
We ran into issues in the past, and it popped up on the mailing list last
year a few times IIRC.

So far, you need either to set
TapestryConstants.DISABLE_JAVASCRIPT_MINIMIZATION in an appropriate place
like a RequestFilter, or disable minimization altogether.

My initial thought is a CompilerOptionsFactory/Provider with a default
implementation.

I didn't find any information if the options are thread-safe and could be
reused, so contributing it as a symbol (as an alternative to a factory)
might not be feasible.

If I find some time this weekend I try to (finally) take a deeper look at
it.

Cheers,
Ben

On Thu, Jan 28, 2021 at 1:16 PM Thiago H. de Paula Figueiredo <
thiag...@gmail.com> wrote:

> Hello, Geoff!
>
> Looking at GoogleClosureMinimizer, I cannot see how the options can be
> customized. Could you please create a Jira issue so we can fix this in
> 5.7.0? Thanks in advance.
>
> Cheers!
>
> On Thu, Jan 28, 2021 at 6:31 AM JumpStart <
> geoff.callender.jumpst...@gmail.com> wrote:
>
> > Can I pass options to GoogleClosureMinimizer at runtime?
> >
> > I have a 3rd party javascript file (html2canvas.min.js) that
> > tapestry-webresources is failing to parse because the JS is using
> > javascript getters, which I think were introduced in ECMASCRIPT5.
> >
> > 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry]
> (default
> > task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are
> not
> > supported in older versions of JavaScript. If you are targeting newer
> > versions of JavaScript, set the appropriate language_in option. at
> > StreamableResource > classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> > Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> >
> > As I am targeting only modern versions of Chrome and Safari, it seems
> that
> > I could fix this by passing option —language_in=ECMASCRIPT5 to
> > google-closure-compiler, but how can I do this? Is there a system
> property
> > I can provide at runtime?
> >
> > In case it helps, here’s the stack trace...
> >
> > 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry]
> (default
> > task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are
> not
> > supported in older versions of JavaScript. If you are targeting newer
> > versions of JavaScript, set the appropriate language_in option. at
> > StreamableResource > classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> > Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> > 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
> (default
> > task-14) Operations trace:
> > 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
> (default
> > task-14) [ 1] Streaming compressed module html2canvas.min
> > 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
> (default
> > task-14) [ 2] Streaming classpath:META-INF/modules/html2canvas.min.js
> > (compressed)
> > 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry]
> (default
> > task-14) [ 3] Minimizing StreamableResource > classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> > Thu Jan 28 03:44:05 UTC 2021 size: 165202>
> > 2021-01-28 04:31:40,544 ERROR
> > [org.apache.tapestry5.modules.TapestryModule.RequestExceptionHandler]
> > (default task-14) Processing of request failed with uncaught exception:
> > org.apache.tapestry5.ioc.internal.OperationException: Compilation failed:
> > JSC_PARS
> > E_ERROR. Parse error. getters are not supported in older versions of
> > JavaScript. If you are targeting newer versions of JavaScript, set the
> > appropriate language_in option. at StreamableResource > classpath:META-INF/modules/html2canvas.min.j
> > s COMPRESSABLE lastModified: Thu Jan 28 03:44:05 UTC 2021 size: 165202>
> > line 20 : 0.: org.apache.tapestry5.ioc.internal.OperationException:
> > Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not
> supported
> > in older versions of JavaScript. If yo
> > u are targeting newer versions of JavaScript, set the appropriate
> > language_in option. at StreamableResource > classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> > Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> > …
> > Caused by: java.lang.RuntimeException: Compilation failed:
> > JSC_PARSE_ERROR. Parse error. getters are not supported in older versions
> > of JavaScript. If you are targeting newer versions of JavaScript, set the
> > appropriate language_in option. at StreamableResource > classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> > Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> > at
> >
> org.apache.tapestry5.internal.webresources.GoogleClosureMinimizer.doMinimize(GoogleClosureMinimizer.java:97)
> > at
> >
> 

Re: Ecmascript5 and tapestry-webresources

2021-01-28 Thread Thiago H. de Paula Figueiredo
Hello, Geoff!

Looking at GoogleClosureMinimizer, I cannot see how the options can be
customized. Could you please create a Jira issue so we can fix this in
5.7.0? Thanks in advance.

Cheers!

On Thu, Jan 28, 2021 at 6:31 AM JumpStart <
geoff.callender.jumpst...@gmail.com> wrote:

> Can I pass options to GoogleClosureMinimizer at runtime?
>
> I have a 3rd party javascript file (html2canvas.min.js) that
> tapestry-webresources is failing to parse because the JS is using
> javascript getters, which I think were introduced in ECMASCRIPT5.
>
> 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry] (default
> task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not
> supported in older versions of JavaScript. If you are targeting newer
> versions of JavaScript, set the appropriate language_in option. at
> StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
>
> As I am targeting only modern versions of Chrome and Safari, it seems that
> I could fix this by passing option —language_in=ECMASCRIPT5 to
> google-closure-compiler, but how can I do this? Is there a system property
> I can provide at runtime?
>
> In case it helps, here’s the stack trace...
>
> 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry] (default
> task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not
> supported in older versions of JavaScript. If you are targeting newer
> versions of JavaScript, set the appropriate language_in option. at
> StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default
> task-14) Operations trace:
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default
> task-14) [ 1] Streaming compressed module html2canvas.min
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default
> task-14) [ 2] Streaming classpath:META-INF/modules/html2canvas.min.js
> (compressed)
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default
> task-14) [ 3] Minimizing StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> Thu Jan 28 03:44:05 UTC 2021 size: 165202>
> 2021-01-28 04:31:40,544 ERROR
> [org.apache.tapestry5.modules.TapestryModule.RequestExceptionHandler]
> (default task-14) Processing of request failed with uncaught exception:
> org.apache.tapestry5.ioc.internal.OperationException: Compilation failed:
> JSC_PARS
> E_ERROR. Parse error. getters are not supported in older versions of
> JavaScript. If you are targeting newer versions of JavaScript, set the
> appropriate language_in option. at StreamableResource classpath:META-INF/modules/html2canvas.min.j
> s COMPRESSABLE lastModified: Thu Jan 28 03:44:05 UTC 2021 size: 165202>
> line 20 : 0.: org.apache.tapestry5.ioc.internal.OperationException:
> Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not supported
> in older versions of JavaScript. If yo
> u are targeting newer versions of JavaScript, set the appropriate
> language_in option. at StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> …
> Caused by: java.lang.RuntimeException: Compilation failed:
> JSC_PARSE_ERROR. Parse error. getters are not supported in older versions
> of JavaScript. If you are targeting newer versions of JavaScript, set the
> appropriate language_in option. at StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified:
> Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> at
> org.apache.tapestry5.internal.webresources.GoogleClosureMinimizer.doMinimize(GoogleClosureMinimizer.java:97)
> at
> org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:72)
> at
> org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:68)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110)
> ... 101 more
>
> Cheers,
>
> Geoff



-- 
Thiago


Re: Ecmascript5 and tapestry-webresources

2021-01-28 Thread JumpStart
Please ignore this. The file should not have been in modules/ in the first 
place.

Also for those who do actually need an answer to the “language_in” problem, I 
found a great answer at 
http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Closure-minimize-parse-error-td5733834.html
 .

> On 28 Jan 2021, at 5:31 pm, JumpStart  
> wrote:
> 
> Can I pass options to GoogleClosureMinimizer at runtime? 
> 
> I have a 3rd party javascript file (html2canvas.min.js) that 
> tapestry-webresources is failing to parse because the JS is using javascript 
> getters, which I think were introduced in ECMASCRIPT5.
> 
> 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry] (default 
> task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not 
> supported in older versions of JavaScript. If you are targeting newer 
> versions of JavaScript, set the appropriate language_in option. at 
> StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified: Thu 
> Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> 
> As I am targeting only modern versions of Chrome and Safari, it seems that I 
> could fix this by passing option —language_in=ECMASCRIPT5 to 
> google-closure-compiler, but how can I do this? Is there a system property I 
> can provide at runtime?
> 
> In case it helps, here’s the stack trace...
> 
> 2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry] (default 
> task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not 
> supported in older versions of JavaScript. If you are targeting newer 
> versions of JavaScript, set the appropriate language_in option. at 
> StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified: Thu 
> Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
> task-14) Operations trace:
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
> task-14) [ 1] Streaming compressed module html2canvas.min
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
> task-14) [ 2] Streaming classpath:META-INF/modules/html2canvas.min.js 
> (compressed)
> 2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
> task-14) [ 3] Minimizing StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified: Thu 
> Jan 28 03:44:05 UTC 2021 size: 165202>
> 2021-01-28 04:31:40,544 ERROR 
> [org.apache.tapestry5.modules.TapestryModule.RequestExceptionHandler] 
> (default task-14) Processing of request failed with uncaught exception: 
> org.apache.tapestry5.ioc.internal.OperationException: Compilation failed: 
> JSC_PARS
> E_ERROR. Parse error. getters are not supported in older versions of 
> JavaScript. If you are targeting newer versions of JavaScript, set the 
> appropriate language_in option. at StreamableResource classpath:META-INF/modules/html2canvas.min.j
> s COMPRESSABLE lastModified: Thu Jan 28 03:44:05 UTC 2021 size: 165202> line 
> 20 : 0.: org.apache.tapestry5.ioc.internal.OperationException: Compilation 
> failed: JSC_PARSE_ERROR. Parse error. getters are not supported in older 
> versions of JavaScript. If yo
> u are targeting newer versions of JavaScript, set the appropriate language_in 
> option. at StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified: Thu 
> Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> …
> Caused by: java.lang.RuntimeException: Compilation failed: JSC_PARSE_ERROR. 
> Parse error. getters are not supported in older versions of JavaScript. If 
> you are targeting newer versions of JavaScript, set the appropriate 
> language_in option. at StreamableResource classpath:META-INF/modules/html2canvas.min.js COMPRESSABLE lastModified: Thu 
> Jan 28 03:44:05 UTC 2021 size: 165202> line 20 : 0.
> at 
> org.apache.tapestry5.internal.webresources.GoogleClosureMinimizer.doMinimize(GoogleClosureMinimizer.java:97)
> at 
> org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:72)
> at 
> org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:68)
> at 
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110)
> ... 101 more
> 
> Cheers,
> 
> Geoff



Ecmascript5 and tapestry-webresources

2021-01-28 Thread JumpStart
Can I pass options to GoogleClosureMinimizer at runtime? 

I have a 3rd party javascript file (html2canvas.min.js) that 
tapestry-webresources is failing to parse because the JS is using javascript 
getters, which I think were introduced in ECMASCRIPT5.

2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry] (default 
task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not 
supported in older versions of JavaScript. If you are targeting newer versions 
of JavaScript, set the appropriate language_in option. at 
StreamableResource line 20 : 0.

As I am targeting only modern versions of Chrome and Safari, it seems that I 
could fix this by passing option —language_in=ECMASCRIPT5 to 
google-closure-compiler, but how can I do this? Is there a system property I 
can provide at runtime?

In case it helps, here’s the stack trace...

2021-01-28 04:31:40,536 ERROR [org.apache.tapestry5.ioc.Registry] (default 
task-14) Compilation failed: JSC_PARSE_ERROR. Parse error. getters are not 
supported in older versions of JavaScript. If you are targeting newer versions 
of JavaScript, set the appropriate language_in option. at 
StreamableResource line 20 : 0.
2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
task-14) Operations trace:
2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
task-14) [ 1] Streaming compressed module html2canvas.min
2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
task-14) [ 2] Streaming classpath:META-INF/modules/html2canvas.min.js 
(compressed)
2021-01-28 04:31:40,537 ERROR [org.apache.tapestry5.ioc.Registry] (default 
task-14) [ 3] Minimizing StreamableResource
2021-01-28 04:31:40,544 ERROR 
[org.apache.tapestry5.modules.TapestryModule.RequestExceptionHandler] (default 
task-14) Processing of request failed with uncaught exception: 
org.apache.tapestry5.ioc.internal.OperationException: Compilation failed: 
JSC_PARS
E_ERROR. Parse error. getters are not supported in older versions of 
JavaScript. If you are targeting newer versions of JavaScript, set the 
appropriate language_in option. at StreamableResource line 20 
: 0.: org.apache.tapestry5.ioc.internal.OperationException: Compilation failed: 
JSC_PARSE_ERROR. Parse error. getters are not supported in older versions of 
JavaScript. If yo
u are targeting newer versions of JavaScript, set the appropriate language_in 
option. at StreamableResource line 20 : 0.
…
Caused by: java.lang.RuntimeException: Compilation failed: JSC_PARSE_ERROR. 
Parse error. getters are not supported in older versions of JavaScript. If you 
are targeting newer versions of JavaScript, set the appropriate language_in 
option. at StreamableResource line 20 : 0.
at 
org.apache.tapestry5.internal.webresources.GoogleClosureMinimizer.doMinimize(GoogleClosureMinimizer.java:97)
at 
org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:72)
at 
org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:68)
at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110)
... 101 more

Cheers,

Geoff