Commit Graph
20 Commits
Author SHA1 Message Date
Guice TeamandGuice Team 80b91afae2 Update tests to support running with Java 15.
In Java 15, the annotation `toString` implementation omits the member name.

PiperOrigin-RevId: 338746927
2020-10-23 14:37:28 -07:00
Guice TeamandGuice Team 5caa549395 Enable the new Guice error messages.
Changes include:

 - update Guice tests that asserts error messages
 - export new errors tests
 - update Guice compiler flag so parameter names are available at runtime, which is required for the errors tests

PiperOrigin-RevId: 337602195
2020-10-16 16:55:03 -07:00
Guice TeamandGuice Team 9a8e46716e Revert previous change because it broke some tests when running with openjdk8.
PiperOrigin-RevId: 337517262
2020-10-16 09:13:55 -07:00
Guice TeamandGuice Team 2c8c7fed12 Enable the new Guice error messages.
Changes include:
- update Guice tests that asserts error messages
- export new errors tests
- update Guice compiler flag so parameter names are available at runtime, which is required for the errors tests

PiperOrigin-RevId: 337401912
2020-10-15 16:06:22 -07:00
xiaomingjiaandKurt Alfred Kluever db66b74249 Fix some unchecked and rawtypes warnings in Guice code.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=324662892
2020-08-04 11:22:03 -04:00
diamondmandDavid P. Baker c1225dcf8f Change the error message for missingConstructor() to be more similar to missingImplementation() (which is far more often the actual issue).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=263249646
2019-08-15 14:38:41 -04:00
dpbandRon Shapiro 13ca52bc3b Support Java 9.
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
2018-01-25 11:12:58 -05:00
lukesandSam Berlin 34e7c5d715 Run google-java-format on all Guice code.
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
2016-09-13 11:47:18 -04:00
lukesandSam Berlin 713c06cce9 Fix issues reported by errorprone
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
2016-09-07 17:45:54 -04:00
lukesandSam Berlin d1e25e68d3 When formatting method/constructor dependencies for error messages print the 'ordinal' of the parameter rather than the index.
Given the method

  void foo(A a, B b) {}

Guice currently prints "parameter 1 of foo" to refer to 'b', but most people (based on an informal survey), believe it refers to 'a'.  To resolve this confusion Guice will now print "the 2nd parameter of foo" to refer to 'b'.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=125128691
2016-06-17 12:19:27 -04:00
Sam Berlin 0558b32449 Update references in code & configuration to point to github instead of
googlecode.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=70898906
2014-07-10 16:39:30 -04:00
Sam Berlin 0e896db460 A Message should have only one source but as it is used in Errors, currently it can have multiple sources. The Message objects is returned from two public methods(Elements#getElements() and Errors#getMessages()) that make any changes in its method declarations difficult. As the first step, I am going to remove all calls to the Message constructor that receives multiple sources from []. So, the only calls will be from Errors that I will deal with separately.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=57979416
2013-12-11 18:45:14 -05:00
Christian Edward Gruber ba5acdf7cf Allow turning off stack trace collection in Guice.
By setting guice_include_stack_traces flag OFF, Guice does not collect stack traces for identifying the declaring source of a binding. Instead it uses the first non-skipped module class name from the modules stack. As a result, in some cases, error messages can be slightly different with this flag. For example, the file name and line number are not always available.

A sample error message with this flag :

Guice creation errors:
1) Received null converting foo (bound at com.google.inject.TypeConversionTest.configure(Unknown Source) (via modules: com.google.inject.TypeConversionTest -> com.google.inject.TypeConversionTest)) to java.util.Date
using CustomConverter which matches only(java.util.Date) (bound at com.google.inject.TypeConversionTest.configure(Unknown Source) (via modules: com.google.inject.TypeConversionTest -> com.google.inject.TypeConversionTest -> com.google.inject.TypeConversionTest)).
while locating java.util.Date annotated with @com.google.inject.TypeConversionTest()
for field at com.google.inject.TypeConversionTest.date(TypeConversionTest.java:478)
at com.google.inject.TypeConversionTest.configure(Unknown Source) (via modules: com.google.inject.TypeConversionTest -> com.google.inject.TypeConversionTest)

This also changes the DEFAULT flag name to ONLY_FOR_DECLARTION_SOURCE.
Adds InternalFlags.getIncludeStackTraceOption() to wrap system property access.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=53610378
2013-10-05 14:12:59 -07:00
Christian Edward Gruber 2e39ef748a Print out the modules that led to a binding during error reporting, but
only if there's >1 module (otherwise it's just noise).  The format is
Some normal messaging about the fact that something terrible happened
at <the normal source> (via modules: A -> B -> C)

So, for example, exposing something that isn't bound would show up as:
1) Could not expose() Foo, it must be explicitly bound.
at FooExposerModule.configure(FooExposerModule.java:211) (via modules: ParentModule -> FooExposerModule)

.. and a duplicate binding would show up as:
A binding to DuplicatedThing was already configured at ModuleA.configure(ModuleA.java:36) (via modules: ParentModule -> FooModule -> ModuleA)
at ModuleA.configure(ModuleA.java:36) (via modules: ParentModule -> BarModule -> ModuleA)

All the tests passed as-is (because this is just new information), so I made a bunch of tests stricter to explicitly look for this new information.

I also cleaned up some other errors regarding scopes & some other stuff.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=53039251
2013-10-05 14:11:20 -07:00
Christian Edward Gruber bf2b16c06a Add support for ProvisionListeners to notify on toInstance & constant bindings.
---------------------
Manually synced.
COMMIT=41634417
2013-05-15 18:49:18 -07:00
guice.mirrorbot@gmail.com efa4e9f24a Fix a bug in the way failed JIT bindings are cleaned up. Because we removed bindings from the jitBindings Map, it was possible for an Injector to try and recreate the failed JIT binding. Normally we want this behavior.. but in the case of a circular failed JIT binding, it can lead to a ComputationException from ComputingConcurrentHashMap, because we attempt to create two ConstructorInjectors for the same InjectionPoint recursively.
Revision created by MOE tool push_codebase.
MOE_MIGRATION=3242


git-svn-id: https://google-guice.googlecode.com/svn/trunk@1584 d779f126-a31b-0410-b53b-1d3aecad763e
2011-09-13 17:41:32 +00:00
sberlin b7a02b02d8 * Remove unused imports
* Sort imports
* Convert tabs to spaces
* Fix the ant no_aop build


Revision created by MOE tool push_codebase.
MOE_MIGRATION=2532


git-svn-id: https://google-guice.googlecode.com/svn/trunk@1572 d779f126-a31b-0410-b53b-1d3aecad763e
2011-07-08 00:34:16 +00:00
sberlin d9c913acca switch Guice from manually repackaging Guava to depending on Guava. it's still jarjar'd right now, which is causing a ~400k increase in guice-snapshot.jar. next step is to switch to ProGuard to remove the unnecessary code and cut it back down (even further?!). this will let people build from Guice source and depend directly on Guava code without having to worry about hiding internal/util.
git-svn-id: https://google-guice.googlecode.com/svn/trunk@1558 d779f126-a31b-0410-b53b-1d3aecad763e
2011-06-26 21:02:54 +00:00
sberlin 920731718b fix issue 614 -- admittedly not the prettiest solution, but it works.
git-svn-id: https://google-guice.googlecode.com/svn/trunk@1526 d779f126-a31b-0410-b53b-1d3aecad763e
2011-03-11 00:03:01 +00:00
mcculls 74d714c1e7 Issue 552: (step 1) move core code to its own subdirectory
git-svn-id: https://google-guice.googlecode.com/svn/trunk@1300 d779f126-a31b-0410-b53b-1d3aecad763e
2010-10-21 19:10:16 +00:00