Thanks again, you've been hitting the spot: The implementation was abstract.
But, I guess, this error message leaves room for improvement... On Wednesday, December 18, 2013 2:41:01 PM UTC+1, Stuart McCulloch wrote: > > On 18 Dec 2013, at 13:34, Jochen Wiedmann <[email protected]<javascript:>> > wrote: > > Thanks, Stuart, > > okay, that's understood. But, what *is* the error? Note, that I was > binding PropertyFactory (an interface), but the error message indicates > that PropertyFactoryImpl (the implementation) wasn't bound? > > > What does PropertyFactoryImpl look like? > > Jochen > > On Wednesday, December 18, 2013 1:11:48 PM UTC+1, Stuart McCulloch wrote: >> >> On 18 Dec 2013, at 08:30, Jochen Wiedmann <[email protected]> wrote: >> >> I was able to reduce the problem down to the following: >> >> final Module module = new Module(){ >> public void configure(Binder binder) { >> >> binder.bind(PropertyFactory.class).to(PropertyFactoryImpl.class).in(Scopes.SINGLETON); >> } >> }; >> Guice.createInjector(Stage.PRODUCTION, module); // Throws >> exception. >> >> >> ^ with Stage.PRODUCTION any bound singletons are eagerly instantiated >> during injector startup (ie. during Guice.createInjector) >> >> >> https://code.google.com/p/google-guice/wiki/Bootstrap#Phase_3:_Singleton_Preloading >> >> this exposes the error early on - if you change this to Stage.DEVELOPMENT >> you’ll only see the error when requesting the instance >> >> And here's the stack trace: >> >> com.google.inject.CreationException: Guice creation errors: >> >> 1) No implementation for >> com.github.jochen.afw.core.props.impl.PropertyFactoryImpl was bound. >> at >> com.github.jochen.afw.core.props.impl.PropertyFactoryImplTest$1.configure(PropertyFactoryImplTest.java:33) >> >> 1 error >> at >> com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435) >> at >> com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:154) >> at >> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106) >> at com.google.inject.Guice.createInjector(Guice.java:95) >> at com.google.inject.Guice.createInjector(Guice.java:83) >> at >> com.github.jochen.afw.core.props.impl.PropertyFactoryImplTest.testNativeGuice(PropertyFactoryImplTest.java:36) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:592) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >> >> >> >> >> >> On Tuesday, December 17, 2013 1:51:20 PM UTC+1, scl wrote: >>> >>> could you post the configure method of your CoreModule >>> >>> >>> >>> On 12/17/2013 12:14 PM, Jochen Wiedmann wrote: >>> > >>> > Hi, >>> > >>> > in a module, I get the error message: >>> > >>> > com.google.inject.CreationException: Guice creation errors: >>> > >>> > 1) No implementation for com.foo.PropertyFactoryImpl was bound. >>> > at com.foo.CoreModule.configure(CoreModule.java:66) >>> > >>> > While that message might make perfect sense when injecting a value, it >>> >>> > occurs within binder.bind(Class), where I don't understand it at all. >>> > >>> > Any explanations? >>> > >>> > Thanks, >>> > >>> > Jochen >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> > Groups "google-guice" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> >>> > an email to [email protected]. >>> > To post to this group, send email to [email protected]. >>> > Visit this group at http://groups.google.com/group/google-guice. >>> > For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-guice" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/google-guice. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected]<javascript:> > . > Visit this group at http://groups.google.com/group/google-guice. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/google-guice. For more options, visit https://groups.google.com/groups/opt_out.
