No rush, and I appreciate it... thanks!

Bill-
On Jun 17, 2013 4:02 AM, "Simone Tripodi" <[email protected]> wrote:

> Hi again Bill,
>
> I can prepare you a workaround - I am now packing to leave for
> Switzerland, I am posting an update tonight.
>
> Best,
> -Simo
>
> http://people.apache.org/~simonetripodi/
> http://twitter.com/simonetripodi
>
>
> On Mon, Jun 17, 2013 at 12:57 AM, William Speirs <[email protected]>
> wrote:
> > Because I have value parameters that I pass in as well (port number) that
> > I'd like to print to info.
> >
> > Bill-
> >
> > On Jun 16, 2013 4:35 PM, "Simone Tripodi" <[email protected]>
> wrote:
> >>
> >> Hi Bill,
> >>
> >> my silly question is: why do you need invoking the logger in the
> >> constructor? :)
> >>
> >> TIA,
> >> -Simo
> >>
> >> http://people.apache.org/~simonetripodi/
> >> http://twitter.com/simonetripodi
> >>
> >>
> >> On Sun, Jun 16, 2013 at 6:06 PM, William Speirs <[email protected]>
> >> wrote:
> >> > OK... I'll wait for that new module and maybe give Onami another shot.
> >> >
> >> > For what it's worth, it seems like a lot more code in my unit tests
> when
> >> > trying to use Onami. IMO, you never want to use the injector when
> >> > running a
> >> > unit test. It's best to inject via constructor, then simply call new
> in
> >> > your
> >> > unit test and provide mocked instances via the constructor. Using
> >> > @LoggerInject violates this because it's a field injection, and
> >> > therefore is
> >> > causing the issue.
> >> >
> >> > So it's a question of "is it worth saving typing to setup the logger
> in
> >> > each
> >> > class" vs "the headache of setting up the injector in each unit
> tests"?
> >> > Right now, I'm not sure...
> >> >
> >> > Thanks...
> >> >
> >> > Bill-
> >> >
> >> >
> >> > On Sun, Jun 16, 2013 at 11:47 AM, Simone Tripodi
> >> > <[email protected]>
> >> > wrote:
> >> >>
> >> >> Hi Bill,
> >> >>
> >> >> I am sorry you stumbled in a Guice/Onami-Logger limitation:
> >> >> Onami-Logger indeed injects the logger instance AFTER the injectee is
> >> >> created by the Guice framework, via a MembersInjector<I>
> >> >> implementation, that is why you cannot use the logged inside the
> >> >> constructor - it has not been injected yet :(
> >> >>
> >> >> HTH, all the best,
> >> >> -Simo
> >> >>
> >> >> http://people.apache.org/~simonetripodi/
> >> >> http://twitter.com/simonetripodi
> >> >>
> >> >>
> >> >> On Sat, Jun 15, 2013 at 10:55 PM, William Speirs <[email protected]
> >
> >> >> wrote:
> >> >> > I'm trying to use Slf4jLoggingModule in a unit test with an
> >> >> > AssistedInject. Here is my basic setup:
> >> >> >
> >> >> >
> >> >> > public class BaseClass {
> >> >> >     private @InjectLogger Logger LOG;
> >> >> >
> >> >> >     public BaseClass() {
> >> >> >         LOG.debug("Calling constructor"); // dies with NPE
> >> >> >     }
> >> >> >
> >> >> > public class ClassA extends BaseClass {
> >> >> >     private @InjectLogger Logger LOG;
> >> >> >
> >> >> >     @Inject
> >> >> >     public ClassA(@Assisted Bean bean) {
> >> >> >         super();
> >> >> >     }
> >> >> >
> >> >> >     public interface ClassAFactory {
> >> >> >         public ClassA create(Bean bean);
> >> >> >     }
> >> >> > }
> >> >> >
> >> >> > @RunWith( OnamiRunner.class )
> >> >> > @MockFramework( MockType.MOCKITO )
> >> >> > public class ClassATest extends AbstractModule {
> >> >> >
> >> >> >     @Inject ClassAFactory factory;
> >> >> >
> >> >> >     @GuiceProvidedModules
> >> >> >     public static Module createComplexModule() {
> >> >> >         return new Slf4jLoggingModule();
> >> >> >     }
> >> >> >
> >> >> >     @Override
> >> >> >     public void configure() {
> >> >> >         install(new FactoryModuleBuilder()
> >> >> >         .implement(ClassA.class, ClassA.class)
> >> >> >         .build(ClassAFactory.class));
> >> >> >     }
> >> >> >
> >> >> >     @Test
> >> >> >     public void test() throws Exception {
> >> >> >         ClassA a = factory.create(bean);
> >> >> >     }
> >> >> > }
> >> >> >
> >> >> >
> >> >> > What am I doing wrong? This is my first time using Onami and so I'm
> >> >> > sure I'm missing something obvious/stupid.
> >> >> >
> >> >> > Thanks...
> >> >> >
> >> >> > Bill-
> >> >
> >> >
>

Reply via email to