Currently the "default" Shindig builds are actually the ones with
generated .opt files.
The JS Closure compiler does not use the minified version because it
"cheats" the flow of getting the JS content =)
Take a look at ClosureJsCompiler.getJsContent. It wraps the incoming
JsUri with the new one that always return JsUri.isDebug to true that
forces the DefaultJsCompiler.getFeatureContent to call
FeatureResource.getDebugContent instead of FeatureResource.getContent.

Shindig builds usually run on CI so I am not sure if I would worry
about speed of the builds to build the minified JS files unless the
saving is large. Do you have the numbers of time saved by removing the
YUI compressor?

The JS Closure compile initial compile is slow before being cached for
every new requests and may not be suitable for some Shindig
deployments.
I would argue if your use the advanced compiler option than maybe
makes sense to use JS closure compiler to get smaller and more
optimized footprint of the JS files. But with just the simple option I
believe it does the same thing as the YUI compressor to generate the
minified version which basically defer creation of minified JS to
runtime rather than on build time.
The default JS closure compiler also not using a thread pool to run
the compilation, so if somehow you have 10 gadgets in page (like in
dashboard mode) and all of the use different combination of feature
requests you might ended up with 10 additional threads for initial
requests to be used JS closure compiler.

I apologize if I sounded like I want to maintain status quo about this
because thats really not what I was trying to do. I just want to make
sure we simplify something that really needs to be simplify.
We have tons of other things to worry about in Shindig =)

I'll let the others chime in on this issue too.

- Henry

On Fri, Jun 1, 2012 at 6:31 AM, Dan Dumont <[email protected]> wrote:
> I'm pretty sure the closure compiler will not use the pre-minified
> sources.  All of the code runs through the compiler the first time...
> cached copies of the results are kept in ehcache.
> If you're not using closure, then yeah, you might want these pre-minified
> files.   I suggest we move it out to another goal or something so that we
> can speed up the builds for the default state of shindig builds.
>
>
>
> From:   Henry Saputra <[email protected]>
> To:     "[email protected]" <[email protected]>,
> Date:   05/31/2012 10:46 PM
> Subject:        Does anyone use the compress goal and and the
> yuicompressor-maven-plugin?
>
>
>
> The JS compiler has initial cost for each different JS URL request if
> specific JS resource path had not been compiled before it loads into
> cache.
> So using the minified opt files may save the initial cost to compile the
> JS
> requests.
> I think having pre-minified option for the features JS file maybe options
> for some Shindig deployments.
>
> If we want to Change the YUI compressor to only run when building Java5
> profile it means that we also need to change the feature resource loader
> to
> not requesting for .opt files when debug flag is off to only run in Java5
> profile.
>
>
> - Henry
>
> On Thu, May 31, 2012 at 5:58 PM, Stanton Sievers <[email protected]>
> wrote:
>> Hi Henry,
>>
>> I'm not recommending that we remove YUI compressor until we remove
> support
>> for Java 5.  If we ever do remove Java5 support, which I think would be
>> something to look at in the 3.0 timeframe, then I think we could safely
>> remove the YUI compressor as well.  Until that time, I have no plans to
>> touch the YUI compressor.  However, if we do think the only use case for
>> the YUI compressor is when building with Java 5, then an optimization
>> would be to only do the YUI compression when building the Java 5
> profile.
>>
>> Does anyone have specific use cases where YUI is being used outside of
> the
>> Java 5 builds?
>>
>> Thanks,
>> -Stanton
>>
>>
>>
>> From:   Henry Saputra <[email protected]>
>> To:     "[email protected]" <[email protected]>,
>> Date:   05/31/2012 17:11
>> Subject:        Re: Does anyone use the compress goal and and the
>> yuicompressor-maven-plugin?
>>
>>
>>
>> Hi Dan, Stanton,
>>
>> Closure compiler is called in runtime whereas the YUI is used in compile
>> time when generating the jar. Not everyone use closure complier which
>> makes
>> the minified JS becomes the non debug version of the JS.
>>
>> Until we remove support for java5 pls keep the YUI compressor as part if
>> the build system.
>> I believe the generated jar size wouldn't matter much.
>>
>> BTW Typing in iPhone sucks so sorry for any typos :P
>>
>> -Henry
>>
>> On Thursday, May 31, 2012, Stanton Sievers <[email protected]> wrote:
>>> I talked to Dan offline about this a bit....
>>>
>>> Generating the optimized files when building anything but the java5
>>> profile is a bit of a waste because in a "normal" build of Shindig we
>> will
>>> use Closure to do simple optimizations and not these optimized files.
> In
>>> a Java 6 build of Shindig we end up shipping the extras and features
> jar
>>> with these extra optimized code in them that never gets used.  At first
>> I
>>> thought it might make sense to only do the compression if building the
>>> java 5 profile... but there's nothing stopping someone from using a
> Java
>> 6
>>> build of Shindig and injecting their own JsCompiler that may want to
> use
>>> these optimized files.  Does that seem like a valid use case?
>>>
>>> In general, how much do we care about being able to build Java 5
>> versions
>>> of Shindig?  I think this might be something we can phase out in 3.0 if
>> no
>>> one has any objections.  We should also simplify the builds so that
> Java
>> 7
>>> will work.... from what I've seen it doesn't work today.
>>>
>>> Thanks,
>>> -Stanton
>>>
>>>
>>>
>>>
>>> From:   Henry Saputra <[email protected]>
>>> To:     "[email protected]" <[email protected]>,
>>> Date:   05/31/2012 15:46
>>> Subject:        Re: Does anyone use the compress goal and and the
>>> yuicompressor-maven-plugin?
>>>
>>>
>>>
>>> It's used to generate opt postfixed files for the JS files when dual
>>> resource loader is used.
>>>
>>> When features jar is generated the yui compressor plugin is called to
>>> generate minified version of the JS.
>>>
>>> On Thursday, May 31, 2012, Dan Dumont <[email protected]> wrote:
>>>> What are those used for?    Closure works on the raw source I thought,
>>> and
>>>> it's enabled by default now.
>>>>
>>>>
>>>>
>>>> From:   Henry Saputra <[email protected]>
>>>> To:     "[email protected]" <[email protected]>,
>>>> Date:   05/31/2012 12:00 PM
>>>> Subject:        Re: Does anyone use the compress goal and and the
>>>> yuicompressor-maven-plugin?
>>>>
>>>>
>>>>
>>>> I thought that's used to generate the .opt files for the JavaScript?
>>>>
>>>> -  Henry
>>>>
>>>> On Thursday, May 31, 2012, Dan Dumont <[email protected]> wrote:
>>>>> If not, can we remove it from the features and extras pom.xml?
>>>>
>>>>
>>>
>>>
>>
>

Reply via email to