Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rbackhouse/878753 to your computer and use it in GitHub Desktop.
Save rbackhouse/878753 to your computer and use it in GitHub Desktop.
Example demonstrating calling the Rhino based Javascript optimizer using a Rhino/uglify-js based compressor
import org.dojotoolkit.compressor.JSCompressorFactory;
import org.dojotoolkit.compressor.uglifyjs.rhino.RhinoUglifyJSCompressorFactory;
import org.dojotoolkit.optimizer.JSAnalysisData;
import org.dojotoolkit.optimizer.JSOptimizer;
import org.dojotoolkit.optimizer.JSOptimizerFactory;
import org.dojotoolkit.optimizer.Localization;
import org.dojotoolkit.optimizer.rhino.RhinoJSOptimizerFactory;
import org.dojotoolkit.server.util.resource.ResourceLoader;
import org.dojotoolkit.server.util.rhino.RhinoClassLoader;
private void runRhinoOptimizerRhinoUglifyCompressor() {
JSCompressorFactory compressorFactory = new RhinoUglifyJSCompressorFactory();
ResourceLoader resourceLoader = new FileBasedCompressingResourceLoader(new File("pathToResources"), compressorFactory);
RhinoClassLoader rhinoClassLoader = new RhinoClassLoader(resourceLoader);
JSOptimizerFactory factory = new RhinoJSOptimizerFactory();
JSOptimizer optimizer = factory.createJSOptimizer(resourceLoader, rhinoClassLoader, true, null);
JSAnalysisData analysisData;
try {
analysisData = optimizer.getAnalysisData(new String[] {"dijit.layout.TabContainer"});
for (String dependency: analysisData.getDependencies()) {
System.out.println("["+dependency+"]");
}
for (Localization l : analysisData.getLocalizations()) {
System.out.println("Localization : "+l.bundlePackage+" | "+l.modulePath+" | "+l.bundleName);
}
} catch (IOException e) {
e.printStackTrace();
}
}
@rbackhouse
Copy link
Author

Use the FileBasedResourceLoader from gist 878744

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment