Author: ddumont Date: Fri Jan 18 22:49:09 2013 New Revision: 1435399 URL: http://svn.apache.org/viewvc?rev=1435399&view=rev Log: Fix for shindig closure compiler cache misses.
Modified: shindig/trunk/java/gadgets/src/main/java16/org/apache/shindig/gadgets/rewrite/js/ClosureJsCompiler.java Modified: shindig/trunk/java/gadgets/src/main/java16/org/apache/shindig/gadgets/rewrite/js/ClosureJsCompiler.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java16/org/apache/shindig/gadgets/rewrite/js/ClosureJsCompiler.java?rev=1435399&r1=1435398&r2=1435399&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java16/org/apache/shindig/gadgets/rewrite/js/ClosureJsCompiler.java (original) +++ shindig/trunk/java/gadgets/src/main/java16/org/apache/shindig/gadgets/rewrite/js/ClosureJsCompiler.java Fri Jan 18 22:49:09 2013 @@ -172,6 +172,16 @@ public class ClosureJsCompiler implement CompilerOptions options = getCompilerOptions(jsUri); StringBuilder compiled = new StringBuilder(); StringBuilder exports = new StringBuilder(); + boolean useExterns = compileLevel.equals("advanced"); + if (!useExterns) { + /* + * Kicking the can down the road. Advanced optimizations doesn't currently work with the closure compiler in shindig. + * When it's fixed, we need to make sure all externs are included (not just externs for what was requested) otherwise + * the cache key will fluctuate with the url hit, and we will get massive cache churn and possible DDOS scenarios + * when we recompile all requested modules on the fly because the cache key was different. + */ + externs = ""; + } // Add externs export to the list if set in options. if (options.isExternExportsEnabled()) { @@ -224,9 +234,11 @@ public class ClosureJsCompiler implement for (Future<CompileResult> future : futures) { CompileResult result = future.get(); compiled.append(result.getContent()); - String export = result.getExternExport(); - if (export != null) { - exports.append(export); + if (useExterns) { + String export = result.getExternExport(); + if (export != null) { + exports.append(export); + } } }