Build plovr from source

Hello dan, 

Please review the following commits I made in branch 'nick-plovr-from-source'.

47586a3ffff22b27bfb21e94f872f22e28d9d79d (2013-03-27 15:00:40 -0400)
Update the README

594cb2e8e9a1061466ae6494515d5aa942671bc7 (2013-03-27 14:52:22 -0400)
Remove everything

91bf57253c470cd3d2edd136faa7b430bf89ed78 (2013-03-27 14:52:22 -0400)
Update the version to 0.2.1

9bc61c0a8c9061559750abe9b0d6c0a0c381c8d3 (2013-03-27 14:52:21 -0400)
Only echo the java invocation

2ded0579facf06832c71738ee29188401b5fcd41 (2013-03-27 14:52:21 -0400)
Default to -client GC on build

68d1d9a7bc719811a6768abf685b5d927f05238f (2013-03-27 14:52:21 -0400)
Allow us to run plovr in client mode or server mode

5139e8b2c7a81d6472008ebd85ff07db85601a5a (2013-03-27 14:52:21 -0400)
Package Version 0.2.0, using October 2012 build of plovr

b8470e3f6ae04b1a14765cd0e7104e6950adc951 (2013-03-27 14:52:21 -0400)
Bump version.

fcd29d91906ce72a792c99f6038c17705109f6a1 (2013-03-27 14:52:21 -0400)
Add a workaround for a Node weirdness.

091143401462382ef3657fda5abec5ec6207370a (2013-03-27 14:52:21 -0400)
[fix] path.existsSync was moved to fs.existsSync

9048be8074f86059d2245d14c574c2cbacba17fd (2013-03-27 14:52:21 -0400)
Updated plovr to use up to 4gb of ram

99e638a203f788be8a7d2cdda9febdabcb5b189e (2013-03-27 14:52:21 -0400)
Expand slightly.

a28ab37985293f2387407658e4f3158a2966696b (2013-03-27 14:52:21 -0400)
And another.

eddbe745d8b20c2ca426af6e81ba50f3e652cf97 (2013-03-27 14:52:21 -0400)
Fix a copy-paste travesty.

6cfd2c292c06f49d52afea7aed5a6d7d087b2d29 (2013-03-27 14:52:21 -0400)
A little color.

bb7a48638167593a1b0b3e6b3f6c0d016b889008 (2013-03-27 14:52:21 -0400)
Provide handy link.

9ffecfaa957bcc3d5cbf92152e55c5bcf5faa6c1 (2013-03-27 14:52:21 -0400)
Document.

017741195522f1ccec0a4d999458064382b09610 (2013-03-27 14:52:21 -0400)
Errant comma.

bf8c317edfc3d09eb8a55be8de926586666f7ec6 (2013-03-27 14:52:21 -0400)
First cut.

0f6d85701b7a35199373d828e9d43f3b50a90517 (2013-03-27 14:51:49 -0400)
first commit

d57951c8fd38e42c867ec004f4b29955f3e37308 (2013-03-27 14:43:25 -0400)
Add pre-compiled plovr jar

94be6ebc7dc35908bc9d5756a609cdc26c34218d (2013-03-27 14:41:32 -0400)
Move package.json into a subdirectory. Resolve dependency skew between different jars.

c4cefc0f15a760f7dfa28a71b71132a8c393a893 (2013-03-27 11:51:07 -0400)
Remove baked-in dependencies

da71ba951deefbaf478c757c8ed569eb0a73d5ab (2013-03-27 11:49:45 -0400)
Plovr now builds with npm-installed dependencies

f4e55871500826be92c1a484ef6072471b26dd52 (2013-03-26 23:53:22 -0400)
Use npm-installed closure-library and closure-templates

cc703c019dbaaabdfcbf5ef2ff3e1f41ed7a17a1 (2013-03-26 23:42:44 -0400)
Add .gitignore and package.json

7386dcce8bc33d5e7071910b37c67d43cb5c2fab (2013-01-06 22:57:27 -0800)
Include standard library definitions when compiling TypeScript.

892b66670a7e30fb37770ae4faa08b356326d606 (2013-01-06 22:44:17 -0800)
Initial support for TypeScript.
Source files that are passed to plovr that end in .ts will be translated to JavaScript by the TypeScript compiler before being passed to the Closure Compiler.

Currently, support is limited because TypeScript code is not yet compiled against a default set of "externs" (like lib.d.ts in TypeScript parlance) like Closure JavaScript is.
ec6900a8f7b6625e32f5c69d751d1eb734e759b6 (2013-01-06 19:15:33 -0800)
Refactor the reusable logic of CoffeeScriptCompiler into AbstractJavaScriptBasedCompiler.

79f0595b98d045237661e31550caf7eac188743a (2013-01-06 18:44:54 -0800)
Create a Bash script that makes it possible to run plovr after running `ant compile` once. When Eclipse compiles the Java for you, this makes it possible to re-run plovr without having to run Ant again. This should dramatically speed up plovr development time.

4cfbf53809993f96d00b525169e0ec3cf81c0a71 (2013-01-06 17:16:20 -0800)
Replace my fork of CoffeeScript with the official release of CoffeeScript 1.4.0.

d02e0d3cd30bb626389c72cf190fb16ce15b0b52 (2013-01-06 16:13:58 -0800)
Updated Closure Stylesheets to a version built from 43c9b6b37799b79bf6dae055d702ee6a4fee8fa7.

70ecdfaabbfd2e1b46983965c6d34b660f055421 (2013-01-06 16:05:08 -0800)
Upgrade GSON to version 2.2.2.
Also created a unit test to verify that setLenient() has some terrible behavior.
Filed http://code.google.com/p/google-gson/issues/detail?id=494 to get it fixed.
882fd3b5e7f1846a1b2816cf70f2d03729b8ef7e (2013-01-06 15:36:41 -0800)
Upgrade from guava-11.0.1.jar to guava-13.0.1.jar.

6bc7a093a8c135c46c43627da06ec610d4dafafb (2013-01-06 15:22:25 -0800)
Use useNativeBasedir on <ant> tasks in Ant for safety.

da2e0149c61e469700a079885bc8009c23e385e4 (2013-01-06 15:14:32 -0800)
Suppress a deprecation warning in PlovrSoySyntaxExceptionTest.java.

1b4c3a96ba8c57bee621c461283df6b31d84b1cf (2013-01-06 15:21:48 -0800)
Update some unit tests to reflect the recent updates to the Closure Library.

c4bfe5b48fd618793ae80faaecdd9c7297916d5d (2013-01-06 14:46:50 -0800)
merge from closure-library branch at closure-library revision 2414

1855fcd4fddf7449e05bad8391567775651073d7 (2013-01-06 14:46:50 -0800)
Pull latest changes from closure-library SVN repository at r2414.

74f8dd907a443cd8400f3a91049f94e381f9efe1 (2013-01-06 14:32:54 -0800)
Fix up some compilation errors that resulted from the closure-templates merge.

480fc2847441b70237a86a8ba3948b66db87d58b (2013-01-06 14:13:34 -0800)
Merge cleanup.

7fb84a3908e1135c25d0e94b1aa362bd8f1285b1 (2013-01-06 14:05:37 -0800)
merge from closure-templates branch at closure-templates revision 28

5e2150697b4ccb8eb58dc565581ce26d787bfd7d (2013-01-06 14:05:37 -0800)
Pull latest changes from closure-templates SVN repository at r28.

dbdc60caee37a3d13ab4873be04006a353c66fa3 (2013-01-06 13:50:26 -0800)
Change plovr so it requires Java 7. plovr developers will now have to set the environment variable $JAVA7_HOME before building plovr.
Trying to maintain a patch on top of the version of Rhino that is
bundled with the Closure Compiler such that it runs when JarJar'ed
has been a nightmare.

It is necessary to run Rhino as part of plovr in order to support
the current CoffeeScript integration, as well as the upcoming
TypeScript integration. CoffeeScriptCompilerTest exercises the
CoffeeScript integration logic, so I have been using it as a
proxy to determine whether plovr is wired up to a proper JavaScript
interpreter.

Instead of continuing to maintain the JarJar hack, references to
com.google.javascript.rhino.head in plovr source code have been
replaced with references to sun.org.mozilla.javascript.internal.
The sun.org.mozilla.javascript.internal classes are bundled with
Oracle's JDK 7.

This may cause some pain for users, as it may require upgrading to
Java 7, and presumably will not work for JDKs besides Oracle's,
unless such other JDKs also start including sun.org.mozilla.*.

This upgrade was likely inevitable, as plovr will want to leverage
java.nio.file.WatchService, as well as other I/O API improvements
introduced in Java 7:
http://docs.oracle.com/javase/tutorial/essential/io/fileio.html

Finally, at least on my system (Ubuntu 12.10), this change required
modifying the <javac> task in build.xml to specify the bootclasspath.
Previously, Ant was able to find the appropriate rt.jar on its own,
but now that it has failed to do so, I am requiring users to define
an environment variable named $JAVA7_HOME, which Ant will use to find
the appropriate rt.jar to include as the bootclasspath.

I chose $JAVA7_HOME as the name of the environment variable in case
you are using both Java 6 and Java 7 on your machine and have existing
tools that require $JAVA_HOME to point to Java 6 on your system.
eee5a3d567e743ba638b8c098a57bf15060c035a (2013-01-06 11:45:44 -0800)
Fix up some issues post-closure-compiler merge.

08529be12dfdbe41ef0fb1b0ca41feed00e0a21b (2013-01-06 10:42:12 -0800)
merge from closure-compiler branch at closure-compiler revision 2437

b8436768e06baf69326d5fd40a473e5e58927cd7 (2013-01-06 10:24:57 -0800)
merge from closure-compiler branch at closure-compiler revision 2437

e53c6b6543d5fe15901e73899d38401f4de98cf2 (2013-01-06 10:24:57 -0800)
Pull latest changes from closure-compiler SVN repository at r2437.

129bcc01cd89d95d87c967f85c90322c82465849 (2013-01-06 09:56:32 -0800)
Missed two files as part of the revert from the previous diff.

5d31ba6cecd025264901cdf6fb1b58f3caa056c0 (2013-01-06 09:49:16 -0800)
Revert Ilia's change that introduced JarJarHelper.
I believe this originally fixed a bug which made it possible
to run the version of Rhino bundled with the Closure Compiler,
which is necessary to support CoffeeScript in plovr.
This was because some JVMs bundle their own version of Rhino,
which was incompatiable with the one in the Closure Compiler.
I think this was an Oracle JDK vs. OpenJDK issue.

With this change, I just ran the unit tests on Ubuntu 12.10
with Sun/Oracle Java 1.6.0_37, and everything passed. (Note this includes
CoffeeScriptCompilerTest.) I do not have the OpenJDK handy,
but I suspect it is possible that this will break support for
plovr for those using the OpenJDK.

In general, this was a good change, and ideally, I would like to
support both the Oracle JDK and the OpenJDK; however, having this
change in place makes it incredibly painful to merge in upstream
changes from the official Closure Compiler repo, as it habitually
incurs all sorts of conflicts.
b084427aa5573830422190f3add2cfa9bd2a5a6f (2013-01-05 16:09:52 -0800)
Ported Ilia's global-scope-name work to use Closure Compiler's RescopeGlobalSymbols pass in favor of the custom AddScopeToGlobals and AnonymizeNamedFunctions passes that he created. Examined Hg revisions 1685 and 1688, which appeared to be the source of the original work, and undid/ported those changes.
This change means that the JavaScript generated by plovr no longer
contains a "with{}" block, and that the version of the Closure Compiler
in plovr is much closer what is in the official Closure Compiler trunk.

Code Review: https://codereview.appspot.com/7062046
76703a8952c3b4da525072a625dc60238a7ce518 (2012-10-28 23:29:37 -0700)
Incorporated the patch on http://code.google.com/p/plovr/issues/detail?id=64 to support running tests on Windows.

551eb2a3c8cbad33e9491c9dd5de5c39bccdb40a (2012-10-28 23:23:10 -0700)
Started work on adding a flag to support serving via https://. This does not set the HttpsConfigurator on the HttpsServer, so it does not really work yet.

ad6b2757b2f5fb08b332add74f889ddf57f8a055 (2012-10-06 12:12:43 -0700)
Adds option that forces Soy not to remove ijData. Author: Dan Pupius

2f0e488f0175252e6bfb4475dd2a431dce96343a (2012-09-18 08:45:49 -0700)
Add fork="true" in <javac> in build.xml, which reportedly helped prevent Ant from running out of memory while building plovr: https://groups.google.com/forum/?fromgroups=#!topic/plovr/CnxG9GUR_Z4

81bb9cea8feac43c745162718111a6f5f919fbf6 (2012-09-09 23:07:40 -0700)
Obligatory fix to ConfigParserTest after merging the latest version of closure-library.

76160354142b2923597a992aab60bcd1b3cc6e8d (2012-09-09 22:59:36 -0700)
Address warnings: add @Override for overridden methods.

24c21b2cef48f144bfb4632395c8590650762b09 (2012-09-09 22:57:44 -0700)
Fix deprecation warnings. Replace accesses to JSError.level with calls to getDefaultLevel().

00478117571b03fb6f1406148692e82fb01229af (2012-09-09 22:56:26 -0700)
Fix deprecation warnings: replace JSSourceFile with SourceFile.

4441be2529ee99d9b11cca39992cf11bdb8424cd (2012-09-09 22:47:13 -0700)
Apparently Eclipse says that including the '<String>' makes this line ambiguous, so I removed it.

75646970659776a37b03c6818f9b1385a4d7022f (2012-09-09 22:10:53 -0700)
Pull latest changes from closure-compiler SVN repository at r2171.

7e5c2a05b8d4eb5a32b2a5bbd5db78085085f0fb (2012-09-09 16:49:51 -0700)
Pull latest changes from closure-library SVN repository at r2143.

1efff3ba9005b8734e8c116d74894997c1a19e59 (2012-09-09 16:20:43 -0700)
merge from closure-library branch at closure-library revision 2143

268ac7a8502a2d82dea84a4efdfcd8384b182613 (2012-07-17 21:45:55 -0700)
User requested that "Soy files" be changed to "Soy template files" in docs so that users grepping for the word "template" find this passage more easily.

4b447d7284d32f234f060cf555a341fcffd637bf (2012-07-15 14:43:08 -0400)
Don't leave empty source*map files sitting around.
http://codereview.appspot.com/6405045/
9eef092fd95eb2a7fa6a032192365f5b03695ad7 (2012-05-03 10:35:49 -0700)
Made it possible to set test drivers from a plovr config.

f1829d98e52ae5ace4503487d58414ec69dca312 (2012-05-02 12:41:35 -0700)
First attempt at supporting a 'plovr test' command that runs the JS Unit tests headless.

f294f06ce1f470e21b18709a8d0f7c9aa2ebbe9f (2012-05-01 20:25:01 -0700)
Fix a bug where if a file (rather than a directory) were used as a ConfigPath, the resulting JsInput would have the wrong name. Added a regression test in ConfigParserTest.

3a826bc7cbe8d7f96d67297cd4ea78f77ea375c3 (2012-05-01 20:11:20 -0700)
Include relative paths in JsInput names. This should fix the following bugs:
http://code.google.com/p/plovr/issues/detail?id=55
http://code.google.com/p/plovr/issues/detail?id=56
http://code.google.com/p/plovr/issues/detail?id=60

There was a proposed solution at:

https://bitbucket.org/ipreachable/plovr/changeset/0ba0bdbfd2c8

which reportedly worked for some people, but had the drawback
that it inserted meaningless integers into the JsInput names.

This approach requires considerably more lines of code to change,
but produces cleaner URLs.

Specifically, the prefix of a JsInput for a file from either
the built-in Closure Library or a user-supplied Closure Library
will now always be "/closure/goog/".

This means that base.js and deps.js will always be:

/closure/goog/base.js
/closure/goog/deps.js

Further, names of other JsInputs will be a concatenation of:

(1) the relative path specified in a config
(2) the path relative to the relative path specified in the config.

Previously, JsInputs were only composed of (2), which was simpler,
but resulted in the bug reports listed above.

For example, consider the following files:

config.js
main/foo/bar.soy
custom/foo/bar.soy

Previously, if config.js included the following line:

  "paths": ["main", "custom"]

then there would be an error because there would be two JsInputs
with the name "foo/bar.soy".

With this change, the names of the JsInputs would be
"main/foo/bar.soy" and "custom/foo/bar.soy", eliminating
the naming collision and fixing the error.

The introduction of the ConfigPath abstraction is fundamental to this change.

An alternative solution would have been to use absolute file paths for
all JsInputs that correspond to local files, but:

(1) That would result in ugly URLs.
(2) That might leak information about local paths on the user's machine.

NameCollisionTest has been added as a regression test,
though this change could still benefit from manual testing
by users with other configurations.
d8c7598baccb333fcb3420cc7c1d60a95fe0a238 (2012-02-23 16:46:20 -0800)
In SoyWeb, create a --plugins command line option that makes it possible to specify a Guice module that injects plugins and functions for Closure Templates. This was already possible using the "soy-function-plugins" option in a plovr config for build and serve modes, but not for SoyWeb.

c78367e65546e24a69ab8475c442c7ee954cbd03 (2012-02-22 00:13:32 -0800)
Add support for a css-defines config option. This takes a list of conditions that should be set to true when evaluating GSS. This is analogous to using the --define command line option in Closure Stylesheets.

733cd4bdafb94249d4499b8b2ccfc708ca8d0222 (2012-02-15 18:37:52 -0800)
Disable the "simplify CSS" optimization in Closure Stylesheets because it can introduce breaking behavior: http://bolinfest.com/webkit/placeholder.html

334d957366608dfae57f09a874bc0b2431e8d2d7 (2012-02-14 01:18:17 -0800)
Replace the official Closure Stylesheets release with a version that includes Guava 11.0.1.

d73674fb365b3406050aca63f86400e3f5044cb1 (2012-02-13 18:24:00 -0800)
Upgrading from Guava 10.0.1 to 11.0.1.

e6a4216e4559ed2faef86b45f8a7a3ef2b1f938c (2012-02-09 23:26:24 -0800)
Added support for config option: css-allowed-unrecognized-properties.

64ee9baa89ad52eab7daa2371b19a7548a15489b (2012-02-09 18:59:05 -0800)
Added support for writing out the compiled CSS file in build mode.

6b2d40b4c28355091db9fb005d427a3e23aaa05f (2012-02-09 18:39:43 -0800)
Introduced a "css-output-file" option for the Config.

1c5a0d47b9620855ee5d1b55b30488ec0b5a260e (2012-02-08 17:55:16 -0800)
Remove misplaced jarfile entry in build.xml.

28bd02d4738172b6ea03e6a314d60a6d6526ceae (2012-02-08 17:27:30 -0800)
Added a new option to plovr: css-gss-function-map-provider This makes it possible to set the GssFunctionMapProvider to use when compiling GSS.

2da44dfc741512acd67f909808b4739ecfdb73a7 (2012-02-08 15:24:42 -0800)
Fixed a bug where checking the last modified time of a config file considered only the root config file in a config inheritance chain rather than all of the files in the config inheritance chain.

3ec8bf0d2ced0673f81585549ab8417a0356666c (2012-02-08 14:30:05 -0800)
Initial support for Closure Stylesheets. Currently, only works in serve mode. Only options that can be specified from a config are:   css-inputs   css-allowed-non-standard-functions Options will be prefixed with "css-" rather than doing:   css: {     inputs: ...     allowed-non-standard-functions: ...   } Because the prefixing approach works better with config inheritance.

5c566a4a69ede25aca51eb0277fb9d0b7e640de0 (2012-02-08 12:00:05 -0800)
Disable ETags in Google Chrome until further notice because the Chrome team believes they have fixed the issue whereas I am still seeing it: http://code.google.com/p/chromium/issues/detail?id=105824

91f9e31ba0b77804535984d85446a40b042c8e76 (2012-02-08 11:30:18 -0800)
Test for Chrome 17 instead of Chrome 16 now that Chrome 17 is available on the stable channel and still appears to exhibit the bug.

bd6451d98c0c514323fc632741ef0921a7b7272a (2012-02-08 14:10:39 -0500)
Remove old rhino source left from merge of new code which moved everything around. Move JarJarHelper to new code, and fix up all the org/mozilla/javascript references to use it.
Fix CoffeeScriptCompiler's error message handling -- NativeObject.message
is now a ConsString
7e6fef818fd2894d0525405ad58f5200174ab6bb (2012-02-08 11:10:32 -0800)
Do not use ETags if using Chrome 16 or earlier due to: http://code.google.com/p/chromium/issues/detail?id=105824.

6806f778256bd993e9e9da6ba86ea60c6787194d (2012-02-08 11:56:36 -0500)
Use new jarjar'd package name.

3756704db1951eebe013574bb00b97f242643271 (2012-02-05 13:04:01 -0800)
Fixed plovr so that `ant all` succeeds again after syncing each of Closure Library, Closure Templates, and Closure Compiler to head.
Merging com.google.javascript.jscomp.CompilerOptions after these syncs
has often been a pain, so I decided to create a subclass with plovr's
customizations in a new PlovrCompilerOptions class. (There was already a
TestCompilerOptions class that was serving a similar purpose.)
plovr's modifications to CompilerOptions are slight, and perhaps this
class will ultimately go away, but for now, this seems like the easiest
solution. (An unfortunate side-effect of creating this subclass is that
it required modifying com.google.javascript.jscomp.DefaultPassConfig
because subclassing that class would also be a pain.) On the bright side,
there are no longer any local modifications to
com.google.javascript.jscomp.CompilerOptions.

Replaced many instances of compileToJavaObj() (which is now deprecated
as of the latest Closure Templates sync) with compileToTofu() because
plovr is compiled with deprecation warnings on.

Updated ConfigTest to test for setting different properties because some
of the properties it used to test for have been removed as part of the
recent Closure Compiler sync. This leverages getters that are made public
by PlovrCompilerOptions (which used to be the responsibility of
TestCompilerOptions).

Updated ManifestTest because the Closure Library has been updated so that
events.js no longer relies on simplepool.js, jscript.js, or pools.js -- huzzah!
1b4f9b4bd79538f5f1efad299c6f4b9b5d76e6fa (2012-02-05 11:57:06 -0800)
Update icu4j jar name post update so that plovr compiles again.

4bd2398a92e515c935e2a25cd84acafa541747b5 (2012-02-05 11:41:13 -0800)
Post closure-compiler sync merge fixes.

3fe0457d3a4e38e1404c3f48ea1b2633fe165547 (2012-02-05 00:36:38 -0800)
merge from closure-compiler branch at closure-compiler revision 1761

d6107ac93af12010579c2fbb225493a015292655 (2012-02-05 00:36:38 -0800)
Pull latest changes from closure-compiler SVN repository at r1761.

d71e435d5a5f96dca641509859f1a1a2b9bbaae2 (2012-02-04 23:42:40 -0800)
merge from closure-library branch at closure-library revision 1559

2fff83e0f3bae067682434c9cdd3a06ebcb0df24 (2012-02-04 23:42:40 -0800)
Pull latest changes from closure-library SVN repository at r1559.

69e54405b5f84b9adf7deb3dc5aa912410f110ff (2012-02-04 23:25:52 -0800)
merge from closure-templates branch at closure-templates revision 27

2c42a39ba935f03944447beea2110e9c377b424c (2012-02-04 23:25:52 -0800)
Pull latest changes from closure-templates SVN repository at r27.

224dba272e626880fcc772ffd0a251aafbc762d7 (2012-02-04 23:05:33 -0800)
Add basic support for ETags when running plovr in server mode.

81553886acea7aa6363a2c2fb664e2d308654ec0 (2011-12-09 18:32:40 +0000)
Wrote a script to build all of the public documentation as static files and copy it to a directory that can be served by Apache. Previously, the documentation was served by SoyWeb, but it has failed to achieve 100% uptime, so this should be more reliable.

1819c9e0a28869b603b4755a68c26810793decb7 (2011-11-29 00:45:05 -0500)
Updated InputFileHandler so that it no longer invokes Manifest.getAllDependencies() every time it is executed. Including some debugging information so that others can help test to see whether this addresses the performance issue.

fdb43a5375cdb44dcf5b1c4f844fe75f40976800 (2011-11-24 10:03:49 -0500)
Nick Santos's proposed fix for http://code.google.com/p/plovr/issues/detail?id=51.

d99d68696bda33acf3283fb8520cba4685000f93 (2011-11-08 00:23:59 -0500)
Fix an error in the Ant target "serve-prod-documentation".

79de7e68a05851ee1dd80c30e3204f7f4e9ede3b (2011-11-07 23:56:37 -0500)
merge from closure-library branch at closure-library revision 1374

b3f017745f2b46f992c512cb769f82078ca5db28 (2011-11-07 23:56:37 -0500)
Pull latest changes from closure-library SVN repository at r1374.

3f7f01938853d8b997b68f3c2fdb0502f4cf972a (2011-11-07 23:54:24 -0500)
Upgrade to Guava 10.0.1.

5fe18f070e7e438aecf95896b7e3765d2ab53bae (2011-11-07 23:33:21 -0500)
merge from closure-compiler branch at closure-compiler revision 1559

67b9c07be6eb1b4e606f103836495c1aea668608 (2011-11-07 23:33:21 -0500)
Pull latest changes from closure-compiler SVN repository at r1559.

4ac866459b84b38d82079a0cc4480233d1b6bea2 (2011-11-05 12:01:30 -0400)
Updated SoyWeb so that it can take simple parameters from the query string. Here, "simple" means strings, booleans, numbers, and null. Complex soy data types (lists and maps) can be specified by passing encoded JSON, though that is admittedly tedious. Using the query string to inject parameters can be disabled by passing the --safe flag to SoyWeb. Note that for security purposes, --safe should always be used in production, though admittedly, SoyWeb is designed for internal prototyping rather than production.

7eeba321ddf080f6e563bea99bde7d82b7fe583e (2011-11-05 10:26:20 -0400)
Fix for http://code.google.com/p/plovr/issues/detail?id=49. plovr now prints an error an exits when no configs are supplied to the 'serve' command.

d0e7e63169280037ef12b5664ef0ab4c2cb4f76e (2011-10-28 00:09:45 -0400)
Update a TODO with some bug references.

8e9f4b691b016f67908a1898e2906999c6a77f1d (2011-10-26 10:56:57 -0400)
Pull latest changes from closure-templates SVN repository at r23.

5b6a271e7e384bef78e0fdf8b0b3ca340128b2b1 (2011-10-25 00:42:27 -0400)
Devised a better mechanism for generating tests from an existing plovr config. Now serve /test/CONFIG_ID/list, which is a list of all _test.html files. Also serve /test/CONFIG_ID/all, which is a test runner for all the _test.html files. Each _test.html is created by one of the following (in priority order): (1) A _test.html parallel to the _test.js file. (2) A Soy template specified by test-template in the plovr config. (3) The org.plovr.test template defined in test.soy.

9117097282491c721189ec1684144dcd382ae0c0 (2011-10-22 00:46:09 -0400)
Convert some tests from JUnit 3 to JUnit 4.

1af481bbbe14c45b2dd83a7efde8e29088370efb (2011-10-22 00:36:35 -0400)
Fix a bug from the previous commit where a value was not added to a cache.

68d397413df87404cea0861cf778b3b846646871 (2011-10-22 00:28:17 -0400)
Move the options to translate a Soy file into SoyFileOptions. Only have Soy files specify JS namespaces When the Closure Library is used.

ba1a2c89436660da2941ba26c652309b2686a299 (2011-10-19 10:42:15 -0400)
Add ant.jar to .classpath because closure-templates uses org.apache.tools.ant.Task without including an ant.jar. Fortunately, closure-compiler has one, which removes the compilation error that appears in Eclipse.

6ad9ae1d810be17c381119f778065896d32735d8 (2011-10-19 10:19:14 -0400)
Pull latest changes from closure-compiler SVN repository at r1520.

3c2c616a7691179b7b3c7a0faf19ca10ebca1a35 (2011-10-19 10:15:36 -0400)
Pull latest changes from closure-library SVN repository at r1348.

8939a47354a397cf50dfb4b28f2709dbd84807b5 (2011-10-19 10:14:25 -0400)
merge from closure-library branch at closure-library revision 1348

352c72092edfc20a7ca6a50fe49ef9677988b4b7 (2011-10-19 10:14:06 -0400)
Move update-repository.sh into scripts because I can never find it in its current location.

0306661e350819ca4f3f95e1bbba643f4179273f (2011-10-19 01:02:41 -0400)
Laying the groundwork for generating _test.html files for _test.js files. Next step is to create the multitest runner. After that, need to make it possible to customize the _test.html template.

509b36ad10bb0e6d6cc8279b07d9df0eaf336e98 (2011-10-18 01:36:27 -0400)
Polished soyweb command and documented it for public release.

3d1cb0644e56c58f3fa6ea6f706010a72fdad25b (2011-10-16 12:04:08 -0400)
Add a favicon to plovr.

ff0eb735e1d3075f1d7a14ea5819f1f2d9fb181a (2011-10-14 23:34:52 -0400)
merge from closure-compiler branch at closure-compiler revision 1511

7c1762fe407d37b8cccbb94b9288a3c5dd023a07 (2011-10-14 23:34:52 -0400)
Pull latest changes from closure-compiler SVN repository at r1511.

2bcc2ce8279aa7e2339f8b178c38930ec58bc277 (2011-10-14 23:30:13 -0400)
Edit trailing whitespace in fastdatanode.js to match what's in head on code.google.com.

0ee41e488065a3f79e3bf1509da069ba83bf3809 (2011-10-14 23:24:09 -0400)
Edit trailing whitespace to match code in Closure Templates so there is no diff between what's in head on code.google.com and the fork in plovr.

a3d38a53d1025ed6d93209c6c9c6f0304cc75911 (2011-10-14 23:19:11 -0400)
Undo remnants for the partial fix for a bug in Soy from http://code.google.com/p/plovr/source/detail?r=ca80a6fb0b8a9c49b84fe60d83c6cde2427144d6

321f2dbede160ea018bedfe48c4897406168d4a2 (2011-10-14 22:58:29 -0400)
merge from closure-library branch at closure-library revision 1341

bd9f9e720b7c1e6b0b9014dd1d9cba8c3c1cb561 (2011-10-14 22:58:29 -0400)
Pull latest changes from closure-library SVN repository at r1341.

bed4dad159ba195d0895a7fe89f396cfc280a943 (2011-10-14 21:56:22 -0400)
Reflect recent Soy change that renamed soydata.js to soyutils.js.

52fdf7da165b347ae2120935a32501cafb59a024 (2011-10-14 19:23:26 -0400)
Fix some TODOs that were waiting on fixes from Closure Templates.

e59e470491ad3a93cd61eb8d18a3b840e552bd4c (2011-10-14 18:47:50 -0400)
merge from closure-templates branch at closure-templates revision 22

6ae7cae7fa635f61bdebadc8a26218956c97c9eb (2011-10-14 18:47:49 -0400)
Pull latest changes from closure-templates SVN repository at r22.

329b2b511945608d3b603dd5b398aee0fb5ea84d (2011-10-13 23:21:02 -0400)
Updated the InputFileHandler so that it will serve any file that could be referenced by the deps.js file.

08346e76b13ba51ae06d1f31beaf8a2b12f11321 (2011-10-13 21:12:26 -0400)
Updated plovr so that it generates a deps.js as part of compilation. Now the base.js served by plovr at /input/CONFIG_ID/closure/goog/base.js can be included via a <script> tag such that it loads deps.js, which makes it possible to goog.require() subsequent items in the page (obviously plovr must be running for this to work). This should fix http://code.google.com/p/plovr/issues/detail?id=35. That means that those of you who have been including something like the following to silence the Compiler's "Unknown type" warnings should no longer have to do so with this change:
goog.addDependency('' /* relPath */,
    ['goog.debug.ErrorHandler',
     ],
    [] /* requires */);
fa78a00e3eb9516c4f60caef7e57474fb41642ab (2011-10-07 16:12:13 -0700)
Allow use of the experimental {let} command.

f379d9d8b8b2654b2701d606a88fd4936b13670b (2011-09-28 17:49:02 -0400)
When printing errors to stderr, skip a line between messages. It is very hard to read a long list of errors if there is no whitespace between them.

90763b95bc6150585b6c9b2341799d3ff1759a9b (2011-09-28 17:41:15 -0400)
Fix a bug in base.js until I can get the fix patched into the Closure Library.

f6b486a7aad26c8e78d848cec62e16e16300e1e4 (2011-09-28 17:04:50 -0400)
Amend the output-wrapper option so that it can be specified as an array of strings to be concatenated together in addition to a string literal. The output-wrapper now applies in RAW mode. Throw an error when the %output% placeholder token is missing from the output-wrapper. Updated output-wrapper documentation to reflect these changes.

3a5664d3a8571e8951e90384e56f373d7283f9bc (2011-09-21 14:04:27 -0400)
Partial fix for a bug in Soy. Getting it checked in so that the Soy maintainers can take a look at it, hopefully as the basis of a full fix.

e5d056a29998774bcce6472c96aad794c12333d8 (2011-09-21 12:08:48 -0400)
Slight alteration in base.js to try to make it easier to develop with Node.js. Note: if this causes problems for people, I will roll this back.
I am trying to come up with an efficient development loop for Node with Closure,
which includes translating Soy to JS. Because running the Compiler can be too
slow for rapid development when used in SIMPLE or ADVANCED mode, I am primarily
focused on Node development in RAW mode.

Consider a config at pconfigs/debug-server-config.js with the following values:

{
  "id": "server",
  "mode": "RAW",
  "inputs": "../js/main.js",
  "paths": "../js",
  "output-file": "build/js/debug-server.js",
  "define": {
    "goog.NODE_JS": true
  }
}

Then the script to build and run your code iteratively with Node would be:


java -jar plovr.jar build pconfigs/debug-server-config.js

sed -i -e 's/goog.NODE_JS = false/goog.NODE_JS = true/g' build/js/debug-server.js

node build/js/debug-server.js
20a33ce365f58eda187cd8be0ab3de5243b81c8a (2011-09-21 10:21:31 -0400)
Adding config support for variable/property input/output maps. Courtesy of Johannes Schmitt.

f6f9d8e807e6c1e40b5393f5b903ebf73f2ad6b0 (2011-09-20 18:14:01 -0400)
Make it possible to run the plovr build command when mode == "RAW". In this case, the files ordered using goog.provide/require and Soy/CoffeeScript files are translated, but no compilation is done. This ought to be helpful in using Soy/CoffeeScript with NodeJS.

fbaa7307d586b48ea66da96c36cc5514cf12dd36 (2011-09-20 16:29:22 -0400)
Change upload.py so that --send_mail is True by default.

e6f36d4fd35943efbd2af69251224cde42cd64c6 (2011-09-20 12:27:15 -0400)
Include new soydata.js file as part of Closure Library (introduced by Closure Templates r20).

18b9f6e993f4db084f109692a00bee0903452ecc (2011-09-20 11:46:32 -0400)
Fix deprecation warnings in plovr introduced by pulling in r20 of Closure Templates. plovr is now compiled with the "treat warnings as errors" option. There are some deprecation warnings in the sample Soy code, so those files are excluded from compilation until http://code.google.com/p/closure-templates/issues/detail?id=43 is fixed.

4da36c61bf9b4c722469298dfe3c8de35799fa55 (2011-09-20 11:11:48 -0400)
Treat warnings as errors from javac. Fix a warning discovered by javac.

1b91b9e1559f2a6e295aa265f072881965f04a1d (2011-09-20 11:05:32 -0400)
Cleanup after syncing to Closure Templates r20. Had to revert change 42f3b12baec9ae48538233993bcb1121e1f73d12 in plovr which changed a method signature in the SoyFunction interface. This resulted in many changes because many classes implement SoyFunction. SoyFunction was originally changed to support vararg functions so that a list() function could be implemented -- the list() function has been removed in favor of the list literals now supported by Soy. Now that this has been reverted, the version of Closure Templates in plovr is much closer to the head revision of the Closure Templates repository (the only change is a getter in SoySyntaxException to expose the original error message). `ant test` passes, but more testing is still needed after such a large change.

fd282b429ddd4953d725a53b86e8573272c7b9f6 (2011-09-20 09:55:39 -0400)
Pull latest changes from closure-templates SVN repository at r20.

b125a873f28dc23f8b673ca7ac1a9cb7f097a01f (2011-09-15 10:36:37 -0400)
Minor documentation fixes.

3e28cd752179de797b8c0b5b446c3dd020f5f7ad (2011-09-15 13:44:24 +0000)
Include run-demo.sh in case I lose my server and have to deploy plovr on another machine in the future.

6863316d01dfa2a1333f6694b87dab771bb346fa (2011-09-14 22:49:19 -0400)
Created a new config option, "output-file", that lets you specify where the compiled output should be written when running plovr in "build" mode.

cc8f6ec70a9640d9c89190c3b0dc023a3a4546fb (2011-09-14 22:14:09 -0400)
Small documentation fixes.

1c1b4003519b21d671ac153ce181ddb3de74e25d (2011-09-14 21:59:39 -0400)
Fix for http://code.google.com/p/plovr/issues/detail?id=25. A JS input whose name contains "../" will be replaced with "$$/" when passed as an argument to the InputFileHandler. Added simple unit test to check this behavior. Also moved the presentation for the ListHandler into a Soy template.

4ffcaee4051713ec2971c024924d432e7ae059bc (2011-09-14 17:56:26 -0400)
Config options that may take an object are now overridden consistently when "inherits" is used. This behavior is verified in ConfigParserTest.

c9595cdcaf0b5960cc86becde1f4958e53f0a075 (2011-09-14 17:20:11 -0400)
Fixed the behavior of option inheritance for options that can be an array of values. Added a unit test: ConfigParserTest.

226c83f1226eac297e8c450d04c2dfc7e4a07e40 (2011-09-14 17:18:30 -0400)
Minor documentation fixes.

2972d6ab38bb4c0849d5fb5abbaff2dc9baade52 (2011-09-14 15:41:21 -0400)
Pull latest changes from closure-compiler SVN repository at r1440.

f212313a4a908998953c08fa55d23b5d78addbd9 (2011-09-14 15:22:35 -0400)
Pull latest changes from closure-library SVN repository at r1277.

e2bc027843fbd5f3a0b5ca75b08641558961efc4 (2011-08-17 22:51:11 -0400)
Adjust the rhino in closure-compiler to work when jarjar'd (since it dynamically generates classes, looks up functions, etc, which gets it in trouble since it no longer resides at org.mozilla.javascript).
Go back to the version of the CoffeeScriptCompiler at revision f791302165d0
except including the jarjar'd rhino rather than the one in the JDK.
be28ee3722d9ab562e09c87c7a9b01d21f831736 (2011-08-17 00:23:46 -0400)
Drastically refactored CoffeeScriptCompiler.java to use reflection so that it can load classes from either the Sun JDK or the OpenJDK, whichever is being used to run plovr. Added a simple unit test for the new CoffeeScript feature, which also ensures that the correct exception is thrown when there is an error in the input CoffeeScript.

a334cd2166fb092bf35f6d8f1aecee64863d9e04 (2011-08-09 18:30:52 -0400)
Added support for CoffeeScript in plovr. Now, files that end in .coffee will be included with paths/inputs and will be translated to JavaScript as demonstrated at http://bolinfest.com/coffee/.

1f3fbfb19152027ff7350d64208522a2cb1ac6cd (2011-08-09 16:38:40 -0400)
Laid the groundwork for translating CoffeeScript to Closure JavaScript in plovr.

802be95810debdd9d9f83e3747f4240f336f811d (2011-08-09 10:51:34 -0400)
Fixed .classpath file for Eclipse.

2c520725e552adf56364baf945431f577387968d (2011-07-16 22:45:11 -0400)
Fix up function call name for getting jsdoc info. Adapt a few more files to the rhino change in closure-compiler.

a37735eb3b63caffd37468b8e4a9ad6a7a3d0f05 (2011-07-16 22:21:54 -0400)
Pull latest changes from closure-compiler SVN repository at r1264.

7e4d196aee5c8bd387c4e1af3fa066e342f26329 (2011-07-16 12:00:11 -0400)
Pull latest changes from closure-library SVN repository at r1129.

c50ea629fbe08a5ff49668cc86e2e8ed330534fa (2011-06-21 12:35:27 -0400)
Added support for an "inherits" option in a config file. This addresses http://code.google.com/p/plovr/issues/detail?id=8.

599e4dc63b768cb7e39c3f0a7addd0b49aeec4f8 (2011-06-16 20:25:47 -0400)
fix a logic issue with base.js excludes in 0a6d80ebfb5e

aafdc80508e5068c9f13d760dd827dae746614fe (2011-06-16 19:32:52 -0400)
don't require base.js to be the first input when excluding closure

6e58c9994743ad55e8c3bee92b16a79b2a5229a2 (2011-06-16 19:16:54 -0400)
Adding bolinfest@gmail.com as the default reviewer.

61208fd5479715242136d538c2b0bb334cadfc74 (2011-06-16 19:15:19 -0400)
Adding upload.py to facilitate doing code reviews on http://codereview.appspot.com/.

b288dbf526e5d5cc5b6d0ccf94334d71dff2a7e8 (2011-06-16 18:49:05 -0400)
Fix test by restoring constructor for org.plovr.Manifest.

257618027b906615813728da0a76306d66fa5554 (2011-06-16 18:29:48 -0400)
Added support for a new option, experimental-exclude-closure-library. The underlying motivation for this change is so that jQuery developers who compile using plovr can exclude base.js from the Closure Library. As it remains to be seen whether this is the right way to address this problem, this option will be labeled "experimental," as support for it may be dropped at some point. See the documentation in options.soy for details.

a53809c5566025db6323d5213c8e61ed7fd0912e (2011-06-16 17:32:04 -0400)
synchronize the getCodeForModule() method in order to fix http://code.google.com/p/plovr/issues/detail?id=31

2dedf04ed3624166eb9f2b130a6a8f200bdf2cc2 (2011-06-16 04:15:33 +0000)
specify memory for serve-prod-documentation target

6805fd7b71b2da5f6824d4d2b2b4dc430f3721b8 (2011-05-24 19:32:28 -0400)
Lay groundwork for supporting enums

d0a0a8b527ef245a73f8303f846c187451763a87 (2011-05-24 19:00:18 -0400)
Add support for static methods

64146f8629eec8ac244f23c3e16c09290fb65d76 (2011-05-24 18:47:38 -0400)
More documentation fixes

eaeda1f4344bc10561917e76d926c6eac62d85fb (2011-05-24 18:43:32 -0400)
Minor refactor to save a level of indentation in a long methond.

96f3ba6e281ef916d44e43f207d03f49e2e0e657 (2011-05-24 18:38:25 -0400)
Include description from the constructor

dfa5174c3edea72be9bf1046fee9b7df0801f2f3 (2011-05-24 18:26:25 -0400)
Fix some copy/paste errors in library template

736327ba6f39ce676d2d2ea9166424b580fde16a (2011-05-24 18:22:02 -0400)
Add support for libraries, such as goog.array

2c923df7d281f8f136057e6f7b032f9db88c2840 (2011-05-24 14:59:32 -0400)
Forgot to fix soyweb in addition to serve command

8bab6febbcebe73ecac5918cb146dfe51bc2df69 (2011-05-24 14:54:10 -0400)
Fixed a recent refactoring which shut down the soyweb command just after starting it. This had the side-effect of taking down plovr.com.

7f8230b615d2cc37ad9de542d38862fc3a93eef9 (2011-05-24 14:33:11 -0400)
Set the memory for the plovr demo

21f5caf0b62a9a2cc3239b16244d5519c1153a16 (2011-05-24 14:21:55 -0400)
Make generate-closure-library-jsdoc a dependency of serve-prod-documentation in Ant

c8ecb8f2dcd758de67ca33ed7259084d1e781183 (2011-05-24 14:20:38 -0400)
Changed output of Closure Library html documentation so it is part of the publicly served plovr documentation.

7d216fe5d5cbb62306b520438c9706855c0ca5e0 (2011-05-24 14:14:29 -0400)
Refactored Closure Library HTML doc generation script so that it is called from Ant such that the classpath is set correctly both from Cygwin and Mac/Linux

a3b8402ecf091554fa5f0c2ea182fd69972263a5 (2011-05-24 14:00:36 -0400)
Fixed DescriptorPass so that it can now process the entire Closure Library

0a9ae4fa6a1167f01520840cfb0a9bd0dcff011d (2011-05-24 13:35:18 -0400)
Created a script to generate HTML JSDoc for the Closure Library

50a55bcc31a18b7a6d7d8125f22f38080661b6c7 (2011-05-24 13:03:25 -0400)
Added a new command-line command (jsdoc) to create HTML documentation from JSDoc in JavaScript source code. The command is still under development.

372c5e61e7aac8dfbc6df5eec712b02160b12083 (2011-05-24 12:00:21 -0400)
Added important TODO about weak heuristic

8953ee2cdc5adc3253210b7dc7c40f6dd05ae041 (2011-05-24 11:31:48 -0400)
Do not show return type if it is void

eddf34dfccc2a9c86c423e5c687c11881229fcca (2011-05-24 11:28:57 -0400)
Fixed DescriptorPass so it correctly supports methods with @override or @inheritDoc annotations.

97f424984eb8ada93cb3245b422dfac2a2d2a539 (2011-05-23 23:05:39 -0400)
Fixed up type expressions for parameters. It turned out that the toString() method of a JSType was the thing that I was looking for.

9391cf5683d1f2fa821b634052398154b5e81fce (2011-05-23 19:00:56 -0400)
Improved the look of the generated JSDoc. Generated JSDoc now has a default stylesheet. Alphabetized methods in the generated JSDoc.

fc8608b6bed0e8d34878f03b1948d879b1820622 (2011-05-07 23:15:13 -0700)
Groundwork for generating HTML documentation for JavaScript code.

f7b819e667dcb9df56fb7fd588e577cb450954be (2011-04-27 23:13:11 -0400)
Updated new plovr info command so it also includes the revision from which it was built.

1d76de86cd9f623635242aa0e18531bf5f03f0d1 (2011-04-27 23:10:49 -0400)
Missed file on previous commit

0deffb20ce693eec321f8ed700511e07ccab68ef (2011-04-27 22:58:43 -0400)
After writing up the documentation for the new custom-passes option, I decided that I did not like the API. I changed custom-passes so it takes a list rather than a map and updated the documentation accordingly.

b12cd9ed483e337198d83033d483108a6e093474 (2011-04-27 22:10:17 -0400)
Wrote up documentation for the new custom-passes option.

756e569954e45eb70bfde0239439da341310f282 (2011-04-27 21:22:00 -0400)
Renamed registerWith to registerDiagnosticGroupsWith in DiagnosticGroupRegistrar, in an attempt to be more descriptive. Not sure if I have made the situation better or worse.

66dbc20f86861bb674d023017a38ff89e79747e4 (2011-04-27 21:18:15 -0400)
Make quoting consistent in plovr warnings.

6f98ab99d6ce61bc6ee11ae5ef97dc47e2e2c82c (2011-04-27 21:17:55 -0400)
Ignore unrecognized item in "checks" in plovr config and print warning to stderr.

efdd2388af8ce6b6fe9dc387a3bbd4331f23418a (2011-04-27 09:36:41 -0400)
Remove check from 'checks' example that is no longer supported.

3923debed3b0d7b43ce7f1b62cd383383655e599 (2011-04-27 19:41:14 -0400)
Updated classpath to include new gson jar.

33f385552f116bcacc99c50e1d17319ffe52c12d (2011-04-27 16:12:00 -0400)
Upgrade gson jar to 1.7.1

e73c8a81d903087ceca83cce72d27b5fc2aa0e3a (2011-04-25 13:44:26 -0400)
Print out % typed information at the end of build output. Fixes issue 39.
http://codereview.appspot.com/4435068/
9c783bef1bd3113bd1fad15693f8880b8602d368 (2011-04-25 00:53:03 -0400)
Added support for specifying custom compiler passes from a plovr config. test-custom-passes.sh, config.json, main.js, and CheckDoubleEquals provide an example of how to do this in plovr. Implementing this feature required the creation of PlovrClosureCompiler and PlovrDiagnosticGroups to work around access restrictions of methods in DiagnosticGroups. Created an interface, DiagnosticGroupRegistrar, which is tailored for custom compiler passes that want to register their own DiagnosticGroups. (CheckDoubleEquals leverages this, as an example.)

5f936e066fc8d9e0647f1dcca14fc58e4a92d09c (2011-04-24 19:32:47 -0400)
Added a new option, export-test-functions, which can be used to enable the exportTestFunctions option in CompilerOptions.

61c4be6469151a9f2c62447eee2fc397ea91f9e5 (2011-04-24 19:22:17 -0400)
Add documentation for the experimental-compiler-options feature. Make it possible to set an enum field in CompilerOptions that has a public setter method using experimental-compiler-options. Added a test for this new funcitonality.

649cc5e6d1f73c7c868f31a296848281484ebe56 (2011-04-24 19:19:53 -0400)
Make LanguageMode a public enum. Hopefully this can be upstreamed because merging may be annoying in the future.

a13aa46162e1685d5de898d05352ec12525986dd (2011-04-24 18:33:26 -0400)
Limit the set of Java classes that are run with JUnit to files that end in 'Test'.

9c15d8b423c61864b81c52834d91beee5b672917 (2011-04-24 18:29:59 -0400)
Made it possible to set some package-private CompilerOptions values via setter methods.

be9bbf1a5b963abf8df72ad22580ee0cd36b19b4 (2011-04-24 17:53:33 -0400)
Made it possible to set (most) arbitrary public fields of CompilerOptions from a Config using JSON. Booleans, numbers, strings, and enum values are supported, but collections and other types are not.

e6d1b1f7611c9bcb5f536921632411e0ede283b7 (2011-03-06 13:04:06 -0500)
Added support for .jpg and .jpeg in soyweb

8135a6ff1beb6f014c73b43f0cf0ad5e7670f249 (2011-04-24 14:50:10 -0400)
Added support for an "info" command that reveals which verisons of the Closure Tools are bundled with plovr. Fixes http://code.google.com/p/plovr/issues/detail?id=38.

965cbd122355ef49930aa6ca86f5cefbe364f33b (2011-04-24 13:49:48 -0400)
Added a comment to build.xml because sometimes I think that plovr's "clean" target is implemented incorrectly (but it isn't!).

58323fc239d8c364fa932b55244ba69d931c73ca (2011-04-24 13:46:58 -0400)
Remove lines added to .hgignore in http://code.google.com/p/plovr/source/detail?spec=svnb032e348b938cd1d3ce0567da54c3b1679939392&r=4edc58e190ad2d80993fda3cd9d4f941586e1aa7 because it's preventing my `hg st` on Hg 1.6.3 on Ubuntu 10.10 from finding new files that need to be added to the repository.

e9c3bb42c25a857897a30c81cd1f997b6938c754 (2011-04-24 11:42:13 -0400)
Fix update-repository.sh so the echo happens before the commit. Include file that was missing from previous commit due to this error.

ca5c81a34d4e549a8989bedff43bdf5612105b6e (2011-04-24 11:34:22 -0400)
Pull latest changes from closure-library SVN repository at r879.

a7e0500462a38db18bb12177d5a3239958a450bc (2011-04-24 11:28:11 -0400)
When updating one of the Closure repositories, record the revision number in a file in the repository. This is the first step in supporting feature http://code.google.com/p/plovr/issues/detail?id=38.

9fe02fff4db4654e4b6e5ce2e6a175bc56572b77 (2011-04-24 10:58:45 -0400)
Added CSS classes to the error box injected by plovr. Fixes http://code.google.com/p/plovr/issues/detail?id=34.

46502643c92506564f79f97ee156122c5f6dcce1 (2011-04-24 10:26:44 -0400)
Fix for issue 37: http://code.google.com/p/plovr/issues/detail?id=37

e3acbc2d12335bea8bd22e974995e08ec26d34ac (2011-04-19 21:34:58 -0400)
Pull latest changes from closure-library SVN repository at r861.

5de966d2fe948bfbdf748c951ef3c79d7e1f2473 (2011-04-19 19:57:08 -0400)
Pull latest changes from closure-compiler SVN repository at r1018.

855bae552f7f8bcae4e67331de0ec6be759e969d (2011-03-14 23:36:11 -0400)
Update ManifestTest.java to reflect the updates to the Closure Library.

a24f42fbce3ea272b12ca4672e4ffa72646640e5 (2011-03-14 23:02:50 -0400)
update-repository.sh now includes the SVN revision number in the commit messages

2e6652798f51f0adfcdf9d12f29f9281c24f7bfa (2011-03-14 22:47:49 -0400)
Pull latest changes from closure-compiler SVN repository.

eaf468ef5c9aca0f54362e41d31568f1f1cb114f (2011-03-14 22:43:24 -0400)
Parameterized update-repository.sh

14763bbd3cf3f49f5b4deba83c73b8a1b77a770a (2011-03-14 22:30:50 -0400)
Created a script for updating any of the closure-library, closure-templates, or closure-compiler repositories.

b817881fad3d7ed38e8086182093fa38f7dfa9e6 (2011-03-14 21:54:32 -0400)
Pull latest changes from Closure Library SVN repository.

91f301fa78e0f81f05840573b5d1d8797b3bb4bd (2011-03-04 16:52:04 -0500)
Use NodeUtil.newUndefinedNode rather than doing it by hand

b219ec1830d238f4a9109279382e7e77276bdf67 (2011-03-06 11:28:58 -0500)
Added support for .ttf in soyweb

173ea5495a541515647497fd88bd931db3dedc6a (2011-03-05 21:36:21 -0500)
Make PlovrModule available via soyweb

0fa35a2e7ba0784f249d3f12a4d20de62cb8acbb (2011-02-22 23:55:36 -0500)
Fix AddScopeToGlobals:  - Missed class name change due to stale class files in build dir  - Adjust tests to be more to the new compiler's liking

cba52159bd8cedf2e40f4ddbfa5043509071420d (2011-02-22 23:54:31 -0500)
Pull latest changes from Closure Compiler SVN (r803) and Closure Library SVN (r716)

9c73e2aebf64f5f562081c5f2c1bdb35b6b999d5 (2011-02-17 21:03:55 -0500)
Fix indentation error from 4edc58e190, add javadoc to GLOBAL_SCOPE_NAME

05587c5d7aa01597029d38900a6f581413c754f8 (2011-02-16 22:39:03 -0500)
Create a way of putting modules into anonymous scopes, while still making them able to work together. This is done by creating a shared namespace passed into each module's anonymous function, and adjusting the generated code to create variables in that scope.

52e5bc21ab22b9d72831a75846a64bb6b212b354 (2011-02-16 19:27:34 -0500)
Automatically reload changes to config files

1dc27f7be49f92f1efd24379f942d272d7707e93 (2011-02-10 20:44:31 -0500)
Fix Javadoc error

cfb472c8d5c2b42c62beeddb46b10ff6d46d8b10 (2011-02-10 20:38:23 -0500)
Update documentation for new soy-function-plugins option. Add an additional example to the externs option.

8420670abfe18639e40e1e3e6ee863a3d3ab86dd (2011-02-10 20:16:36 -0500)
Created a new custom Soy function: list(). This required redefining the SoyFunction interface: the getValidArgsSizes() method was removed and replaced with isValidArgSize() in order to support vararg functions.

5dd90a1508eaba180a1f6d54916de87277224a92 (2011-02-10 19:13:57 -0500)
Added support for Soy plugin functions and directives.

646a7f440391016a36344ce5e4064211a7e2a9c3 (2011-02-07 22:20:09 -0500)
Updated documentation about comments in plovr config files. Also fixed some minor spacing errors in the documentation.

61975b46989f2738abde229fdb44125d9683c08a (2011-02-07 21:59:41 -0500)
Update out-of-date documentation about the build process.

82a6871f26a8c31e2a14e54cb2dedc83d621d193 (2011-02-07 21:48:31 -0500)
Updated documentation to explain externs option changes.

85f2183c7e43c918e5258f46d182887774881bf4 (2011-02-07 21:35:07 -0500)
Remove distracting println

cfba2c1ac82de5c987abd87a4b00852913dd8415 (2011-02-07 21:32:31 -0500)
Added support for including externs from the contrib/externs/ folder in the closure-compiler project. See testdata/chrome_extension/config.js for an example of how to specify the externs in a config.

49252fb87df3157057553f0d210db20c5fa3f2ed (2011-02-07 19:31:37 -0500)
Pull latest changes from Closure Compiler SVN repository (r758).

daeebf119a26447309a34f4dae3d199e24ce2f32 (2011-02-07 19:21:26 -0500)
Pull latest changes from Closure Library SVN repository (r692).

60c599b906cef3738775ae176ac58127f581bee5 (2011-01-12 14:54:00 +0000)
Add type checking to show off the 'export externs' feature from the modules demo.

d9666c08b4aeed774d610276f508fd0761047940 (2011-01-06 12:31:37 -0500)
Sort configs by id on the index page.

7da80dc412c8c10184347b9f54bc96325ae172ed (2011-01-06 11:35:40 -0500)
Created a ConfigRequestHandler that simply displays the contents of the config file and linked it from the index page.

1b0e95230b538ffaa4341a01ece9c346859efb82 (2011-01-06 11:11:59 -0500)
Implemented IndexRequestHandler so that it displays the list of configs loaded in the server instance of plovr along with some useful links.

9676dca7b3bdeae1ba90be6a3d718b01f435dc5c (2011-01-06 10:29:13 -0500)
Created an enumeration of request handlers so that they will be easier to document in the near future. Also created a new handler (IndexRequestHandler) that will be responsible for serving the root page (http://localhost:9810/), which will display a list of loaded configs and relevant URLs.

c3d09b9d0241c653b1cccdf045ee45e4bb69e7a6 (2011-01-06 10:27:51 -0500)
Made 'ant all' depend on 'ant clean' so that 'ant all' is a stronger endorsement of a healthy build.

55c451420546be1232e158480e5d77806d9ec214 (2011-01-06 10:18:47 -0500)
Small documentation fixes

59227a61a2cbf7a614c71c75d709bbb62c8d610c (2011-01-06 09:44:12 -0500)
Created an Ant build target that builds all deliverables for the plovr project and cleaned up some Ant target descriptions.

19d94f81a4bfa62d4d95060f627b4aa175120e2f (2011-01-06 00:00:20 -0500)
Log information that is currently only known to affect http://code.google.com/p/closure-compiler/issues/detail?id=277 to help resolve it.

57f52c81aee56c41b2c0c39c22c0c87e3888a23a (2011-01-05 23:57:26 -0500)
make create-release.sh executable

b48311fe4dcf6b1499f652a7b910cec5b313b611 (2011-01-05 00:45:06 -0500)
Use matcher.find() instead of matcher.matches() to get the desired behavior.

b0fbe051f391aed397f8b0941d048f4851dc34bc (2011-01-05 00:34:53 -0500)
Changed regex as apparently the format of Closure Templates error messages is not always consistent.

4aa3ba0f43fcabcc4f5aa41aba0de353298c4962 (2011-01-05 00:20:58 -0500)
Update Closure Compiler to r659

b022b1d61d365609d466937fc7222e2fd140aba0 (2011-01-04 23:29:29 -0500)
Update Closure Library to r564.

823b4bcdd9d5c8aa73125278e593437b4b8f97db (2011-01-04 00:37:22 -0500)
Significantly improved communication of errors in Soy files. Now Soy errors should appear in a page that displays errors from plovr and appropriately hyperlink them to the source of the error, if known.

fa85b64e89932e735dafe9696e36731b06760ef0 (2011-01-03 22:25:18 -0500)
Lower logging level as message should not be displayed by default.

e96743fdf31665dbd33633366a78a6cd0d8d4528 (2011-01-03 22:23:41 -0500)
Updated ConfigParser so that it warns in the console about unknown config values. Does not fail outright because it is possible the JSON in the config is used for other, custom build processes by the developer, in which case he or she may have custom properties that are designed to be ignored by plovr.

5161b71dc19a5b450e117417cfa665f2782ed231 (2011-01-03 22:20:52 -0500)
Fix integration-test-config.js so that it specifies UTF-8 as the output-charset now that US-ASCII is the default.

3ff2877a2329764ffe0a76c2ab9e898fbce93e81 (2011-01-03 22:17:49 -0500)
Lower logging level as message should not be displayed by default.

90a27c5e2315ede38d4474ae36280218eb38d5d1 (2011-01-03 18:32:58 -0500)
Make the soy css handling scheme be BACKEND_SPECIFIC, which means that it will output goog.getCssName.

b1a594528fab0c17a21dbc38aad30cd916a79440 (2011-01-03 17:54:28 -0500)
Completed the "../closure-library/" to "closure/closure-library" transformation that I half-assed on the previous commit.

76d1a5907718675bd7e3c59f835fa61cdba5a439 (2011-01-03 17:15:39 -0500)
Fixed unit test so it no longer depends on an external checkout of the Closure Library

cab0521fb4afc2ebc62992b1bd69e7dc90d93acb (2011-01-03 17:03:57 -0500)
Fix compile target so it also builds Closure Templates genfiles.

14ca7916fc1c29615c556c6961e15d8875cb0d7a (2011-01-03 00:35:44 -0500)
Now in server mode, when plovr catches an exception in a GET handler, it will make sure to write and close the response rather than leave the user hanging. Fixes issue #3.

9a40e8fda49090e77708be377523a58fc86fa05b (2011-01-03 00:03:23 -0500)
Remove an unused import.

6487407b128af61c6bb822e1c2bf61432d10617c (2011-01-03 00:02:47 -0500)
Added support for a new feature: treat-warnings-as-errors.

0c4766a7c8a418b7f02783ba30fcb8e914899c28 (2011-01-02 23:38:25 -0500)
Draw more attention to compilation warnings.

287cd7aae6f5b6ad5bb11f3be85da21489432178 (2011-01-02 23:30:13 -0500)
I do not know why this works, but calling Compiler.setLoggingLevel(Level.OFF) succeeds in shutting up the Logger whereas calling the implementation directly does not seem to do it.

3d7d2f4a56e9e55f12ef6711854a807a09010d26 (2011-01-02 23:00:51 -0500)
Added a better error message when no inputs are specified.

b8d08ddfd1a3f2e30832e06e103af55af147b1bc (2011-01-02 18:17:48 -0500)
fix typo

ba0d67629b1f8b97cee0831e8d8c2d757a0c7134 (2011-01-02 18:14:04 -0500)
Changed the default value of the output-charset option to "US-ASCII" even though it was previously "UTF-8". Making "UTF-8" the default will cause a problem for users that do not fix their webserver to serve their JS using the matching Content-Type, which is unfair to expect from novice users. Making "US-ASCII" the default should cause fewer problems for novices.

7dd47c7533f808cb6148abef9da5094ae2620e17 (2011-01-02 17:50:36 -0500)
Relaxed plovr API so that it can be used as a Play! framework plugin. Fixes #26.

9c89768e68846be4c7ddca6e3ca8b6228324957b (2011-01-02 17:36:09 -0500)
Updated documentation about @define to specify that it only works in SIMPLE and ADVANCED modes.

98d01eb8d558138766b6b5c5d0e2a4589e77cc8a (2011-01-02 17:09:58 -0500)
Created a new, hermetic build process for plovr now that the source for the closure-library, closure-compiler, and closure-templates repositories are included in the plovr repository. This fixes bug #24, that plovr.jar was including the Ant jar for no good reason. This also reduces the size of plovr.jar down to 8.4M -- its smallest size to date!

ed9b6236eb546d54fd9862aa65d57cd4d60a693b (2011-01-02 16:48:06 -0500)
Fix unit test to match new version of Closure Library.

8fc5cb0caa81016ab6a3dd85a71908bcde2a8f6a (2011-01-02 15:59:32 -0500)
Remove an erroneous com.google.inject.internal.ImmutableMap import.

6d46cebff52046485ab62b960c4e2ce7f120fc37 (2011-01-02 15:35:29 -0500)
Scripts for pulling changes from closure-compiler SVN repository.

55adaff522d687d1d1d8a964af8b0ae9bb7fe134 (2011-01-02 15:26:12 -0500)
Scripts for pulling changes from closure-templates SVN repository.

0df187664aacd3a6c2a825e229b2d83f5175411a (2011-01-02 15:21:10 -0500)
Scripts for pulling changes from closure-library SVN repository.

e497219905771f9cc53e2a93acd69790b5112d71 (2010-12-21 01:00:52 -0500)
Run the modules demo in SIMPLE mode by default and include a healthy comment about why it is problematic in RAW mode. Also fix a CSS issue in demo/modules.soy to prevent unnecessary scrollbars from appearing.

c169585e5e855898074a2db2a0645207df908fc2 (2010-12-20 23:25:40 -0500)
Add global when generating config options documentation

7a0a26ebd30a79d7b2d7aab65d72924f1fc939fd (2010-12-20 23:17:12 -0500)
Create a live demo for the modules feature of plovr

daedaa5c6cb13c196ce64ae3b72e9dc392aec106 (2010-12-10 12:58:30 -0500)
Set HTTP headers to disable caching in all browsers.

49ee0241550ddfb08063df7a79fd1dd7bb3efbd1 (2010-12-06 16:03:44 +0000)
Remove local script from .hgignore

da42c7ad23ce4b8d43315c8c695e7c338fc6efc0 (2010-12-06 11:00:06 -0500)
fix typo in plovr homepage

82ae5f24b588c1840ab7cf096c4c1fca8c667277 (2010-12-04 05:42:00 -0500)
Ignore dot files before checking that they exist. Emacs creates dot files that are symlinks to nowhere on edited but not saved files, in order to facilitate management of multiple emacsen editing the same file.

eb930e4e28b53be4f06f272d8b820deb75694ef5 (2010-12-02 04:04:41 -0500)
Fix a bug in documentation generation.

6498f0eb35b5411336eb980a8e4b7f593ca6d078 (2010-12-02 03:52:27 -0500)
remove evil tab characters from build.xml

c8845b654e39d0b34a8b6c1561f97188149aff15 (2010-12-02 03:23:32 -0500)
Rename plovr.io package to org.plovr.io. Not sure how I got it wrong originally and didn't notice until now.

6d4ed39405d8da0c0491896c640d028474775660 (2010-12-02 03:14:09 -0500)
clean up some imports

cb4d3ca95c81620ab8bd47f47bae43413bf72659 (2010-12-02 03:13:40 -0500)
Reuse the byte[] array in Responses.java since that seems wasteful.

25574a1497d76e3e417add4cdb221215424df635 (2010-12-02 02:40:27 -0500)
Was using Settings.CHARSET instead of config.getOutputCharset() -- now fixed.

d07bf401a21e695aae508d354e1a8835634013cb (2010-12-02 02:22:49 -0500)
Make the output charset configurable, but default to UTF-8 so that datetimesymbols.js works "out of the box."

5e95d788bb6c73380394fa3a4a3d9818021e0c39 (2010-12-02 01:37:16 -0500)
Add logic to ensure that when plovr writes JS errors and warnings into the DOM of the page, the links to the /view URL have the correct port.

21604c0da3a8881876f5af3ebfc9377f626a2a4d (2010-12-02 01:31:52 -0500)
Upgraded to guava-r07. This entailed creating a new modified version of the Soy jar because the latest version of Closure Templates still bundles guava-r03. Upgraded Closure Templates to r19 as part of this process.

2cd85fefbf9747a09c93d7f1ae26b4506591811a (2010-12-02 00:53:39 -0500)
Replace gson-1.4.jar with gson-16.jar which has support for parsing JS comments. Remove hacks I wrote to support //-style comments in plovr config files. Upgrade closure-compiler jar to revision 580 which has an important bugfix (for me, anyway).

336ee8b2957b6945d6b25913e1010945265de25a (2010-12-01 21:59:39 -0500)
Make Config.Builder public for the benefit of http://code.google.com/p/plovr/issues/detail?id=19.

c3b0b172fdbc4706dc52e0b87de05122deb72449 (2010-12-01 21:46:56 -0500)
Fix for issue #17: allow support for multiple inputs on modules http://code.google.com/p/plovr/issues/detail?id=17

d16cbaf324c3d5329ba9116794d640db95736e6b (2010-12-01 18:57:31 -0500)
Rework the lowest common ancestor algorithm to always return the correct answer; pairwise analysis is insufficient. Add test that fails with the old algorithm.

de172002c798dfd5cc742685c5fdcf10f8b2113f (2010-12-01 19:50:12 -0500)
Implemented feature request http://code.google.com/p/plovr/issues/detail?id=23 to display the IP and port that the plovr server is actually listening on (significant when --port 0 is specified).

c5aee8b378c143134697f9251ef84fa395b25473 (2010-11-30 23:25:55 -0500)
Hopefully make the world a better place by pushing the use of utf-8 over latin1. Now when a CompilerOptions is created, its output charset is hardcoded to utf-8. Eschew the use of FileWriter because it assumes the default character encoding, which is unreliable: created Streams.createFileWriter() to replace "new FileWriter" throughout the codebase. If there is an outcry, will make the Charset for plovr configurable.

f0860390b49e59b44c5e0748b3105bad3ddc027c (2010-11-30 22:37:13 -0500)
specify utf-8 when reading resources from the plovr jar

37501d3c87085c818f3ef08f1d281f497ae5cdfa (2010-11-30 21:47:18 -0500)
create a standard plovr.io package that defines the charset (UTF-8) that should be used throughout plovr replace the use of com.google.common.io.Files.toString() with org.plovr.Files.toString()

848553dadf4a55fcf6dfe57748fb163bf8c81f67 (2010-11-30 21:27:11 -0500)
Fixed bug http://code.google.com/p/plovr/issues/detail?id=11 which was due to ignoring the differences between byte count and character count. This change fixes the exact bug as described, though clearly it merits a broader audit of how Charsets are used (or omitted) in plovr, in general. Also changed "ant integration-test" so it runs on port 9818 instead of the default 9810 so that it is not necessary to kill a default plovr to run the integration test.

3f7d817d418aa78e40f6071bd3db94fd40ff5fde (2010-11-16 13:35:22 -0500)
Fix circular module dependency check, and make sure to pull costs from the expanded map, not the one left to visit (since the intersection is done on the expanded map).
Add a module config test that makes sure that modules get partitioned properly
f2ecd4d3a500ff489e1fc713876448076cfb49d7 (2010-11-13 00:17:35 -0500)
Refactor MissingProvideException and CheckedSoySyntaxException into a generic CompilationException, and add a CircularDependencyException to the hierarchy, thrown if buildDependencies goes into a loop.

8c25513b19eecf58eb1c3723b4cee2a891c74d95 (2010-11-04 21:02:02 -0400)
fixed modules example to use updated config option names

576a8a76acb988e604b8139860ec21f5f7a271e7 (2010-11-02 14:54:00 -0400)
Upgrade to closure-compiler-r531.jar to get a bugfix

3384f7aa180d0130c2517f88efc1bcd828cf6b70 (2010-11-01 23:12:13 -0400)
typo in config option

5de754c94ff2de576ea4f9200295673c27c4383e (2010-11-01 22:49:19 -0400)
Update to r530 of the closure compiler.

5469a1fbd307852b63082c980a4405925b7e034a (2010-11-01 22:41:09 -0400)
Added support for ambiguateProperties and disambiguateProperties in the config file.

45afdade1d5ff98910dd8369adcc0b6690fc9980 (2010-11-01 22:18:28 -0400)
Fixed issue #18: Support stripNameSuffixes, stripTypePrefixes, setIdGenerators For consistency, changed some config option names with underscores to hyphens (hopefully this doesn't break too many people).

e764772e04e0461f476f91df511828f06086826a (2010-11-01 12:22:34 -0400)
Add support for --output_wrapper flag as "output-wrapper" in a plovr config file.

e7e020735f8c5f65f21dddbd16dab55bd2994ad3 (2010-11-01 09:54:29 -0400)
Add gif to the list of recognized file types for soyweb

85f4e94f0a5e9a72a245c9a7ef170f1c52ea5b05 (2010-10-29 18:11:25 -0400)
minor cosmetic tweaks to documentation

5c9be5e815257c07d68a72b832ebb9f00627a924 (2010-10-29 17:16:22 -0400)
introduce a secondary level level of navigation for the documentation links

3003d1c412f729f887c3e56627478d24f441eb5c (2010-10-29 16:33:20 -040