Don't assume classloaders are URLClassLoaders. Parse the java.class.path property for URLs if not.
In Java 9, annotations with string values quote them. Make tests and implementations match that behavior.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170488154
loadEagerSingletons needs to copy all the jit bindings into a list in order to safely iterate them, however it still needs to hold the lock while performing the copy. Without this you can get ConcurrentModificationExceptions, or things like "constructor not ready" errors because partially constructed bindings can be shared across threads.
I added a test that can trigger this failure mode, prior to the fix the test is ~30% flaky, after it passes consistently.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=145686956
configure a presubmit to ensure that it stays formatted.
Highlights include:
* simplified import order
* method annotations are now consistently defined on the preceding line
* javadoc reformatted to 100 chars column width
One test that contained line numbers in error messages had to be modified and
the formatter didn't like some of the more complicated preprocessor directives
(MOE and AOP).
To avoid formatting the copyright notices as javadoc i did a preprocessing step to rewrite the initial '/**' to '/*' using perl
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132718493
99% of this is adding missing @Override annotations, in the long tail we also have
* insert missing calls to Assert.fail() in tests that are testing exception behavior
* rewrite a few cases of Foo.class.instanceof(c) to c instanceof Foo
* rewrite Class.newInstance - > Class.getConstructor().newInstance() which doesn't break checked exception checking.
* adding @javax.inject.Inject annotations to methods that override methods annotated with @javax.inject.Inject
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=131839622