Re: Closure minimize parse error
Nathan Quirynen <[email protected]>
| Newsgroups | gmane.comp.java.tapestry.user |
|---|---|
| Organization | Pension Architects |
| Message-ID | <[email protected]> |
I have found why it worked before and not in our new version.
In our earlier versions minification was not enabled apparently as it is
disabled by default. Later we added a dependency to tapestry-webresources.
This library enables minification in its module class. This explains why
it didn't cause any problems before.
Also I did not know minification was only used when the application was
set in Tapestry production mode. Explaining why it didn't work for some
builds and did for others.
Is there a reason tapestry-webresources does enable it by default, or
can I temporarily disable it again in my own module class until I find a
real solution?
Nathan
Op 12/03/2018 om 17:56 schreef Cezary Biernacki:
> As far as I can tell, it is not directly supported, but you can override
> existing minimizer and just disable minimisation for particular files, like
> that:
>
>
> In your *Module class add necessary contribution
>
> @Contribute(ResourceMinimizer.class)
> @Primary
> public static void overrideJavaScriptMinimizer(final
> MappedConfiguration<String, ResourceMinimizer> configuration) {
> configuration.overrideInstance("text/javascript",
> MyGoogleClosureMinimizer.class);
> }
>
>
> and define your minimisation class by extending GoogleClosureMinimizer and
> overriding "isEnabled()" method with appropriate logic to disable
> minimisation for specific files
>
> public class MyGoogleClosureMinimizer extends GoogleClosureMinimizer {
>
> @Override
> protected boolean isEnabled(final StreamableResource resource) {
> return super.isEnabled(resource) &&
> !resource.getDescription().endsWith("/compatibility.js");
> }
>
> }
>
>
> Notes:
>
> - I have not tested this example code, so you might fix some details,
> but I know that something similar should work (I wrote my custom JavaScript
> minimizers for Tapestry 5.4);
> - GoogleClosureMinimizer is part of Tapestry's internals, so be warned
> that it might require extra porting to new Tapestry's versions;
> - alternative approach is to replace global ResourceMinimizer service
> (see org.apache.tapestry5.internal.services.assets.MasterResourceMinimizer
> for default implementation) and your own logic to decide if minimisation
> should be performed.
>
>
> Best regards,
> Cezary
>
>
>
>
> On Mon, Mar 12, 2018 at 5:30 PM, Nathan Quirynen <
> [email protected]> wrote:
>
>> Hi,
>>
>> on our testing server we get the following error:
>>
>> ... 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<text/javascript classpath:META-INF/assets/js/pdfjs/build/compatibility.js
>> COMPRESSABLE lastModifi
>> ed: Mon Mar 12 15:20:19 CET 2018 size: 50791> line 1732 : 0.
>> at org.apache.tapestry5.internal.webresources.GoogleClosureMini
>> mizer.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.perfo
>> rm(OperationTrackerImpl.java:110)
>> at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.
>> perform(PerThreadOperationTracker.java:84)
>> at org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1266)
>> ... It does not occur when running the same application on my local machine
>> in a Tomcat (same as on server).
>>
>> Any idea what could be the problem here?
>> If no fix can be found, is there a way to tell Tapestry to not minimize
>> this specific file to maybe get it working that way?
>>
>>
>> Nathan
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]