Thanks Ronan,

Can you share the implementation of StubProjectorApplication? That
doesn't appear to be part of Wicket or Guice.

Daniel

On Wed, Oct 10, 2012 at 12:29 PM, Ronan O'Connell
<[email protected]> wrote:
> Hi Daniel,
>
> I'm using Guice in a couple of wicket projects though my understanding of it
> is a little limited! My set-up matches yours except that in my unit test
> setup I call injectMembers :
>
>     @Before
>     public void setUp()
>     {
>         final StubProjectorApplication stubApplication = new
> StubProjectorApplication();
>         _tester = new WicketTester(stubApplication);
>         stubApplication.getWarpInjector().injectMembers(this); //
> getWarpInjector returns the injector built in the init method
>     }
>
> I'm not sure this is right..it feels to me that it shouldn't be be
> necessary, but it works for me :) .
>
> Ronan
>
>
> On 10/10/2012 18:30, Daniel Watrous wrote:
>>
>> Hi,
>>
>> I've integrated Guice into Wicket successfully, but I'm struggling
>> with the unittests. I'm not sure how to get the injector into my
>> HomePage class. Here's my setup.
>>
>> I'm using GuiceFilter with a GuiceServletContextListener. That creates
>> the injector and a ServletModule which defines the WicketApplication.
>> I followed:
>> http://code.google.com/p/google-guice/wiki/ServletModule
>>
>> Here's some of MyGuiceServletConfig extends GuiceServletContextListener
>>
>>      @Override
>>      protected Injector getInjector() {
>>          return Guice.createInjector(createServletModule(), new
>> MongoHoneybadgerModule());
>>      }
>>
>>      private ServletModule createServletModule() {
>>          return new ServletModule() {
>> ...
>>
>> In my WicketApplication extends WebApplication I have this init() method
>>
>>      @Override
>>      public void init()
>>      {
>>          super.init();
>>          Injector bootStrapInjector = (Injector)
>> this.getServletContext().getAttribute(Injector.class.getName());
>>          getComponentInstantiationListeners().add(new
>> GuiceComponentInjector(this, bootStrapInjector));
>>      }
>>
>> Now, in my HomePage.java class I have
>>
>> public class HomePage extends WebPage {
>>      private static final long serialVersionUID = 1L;
>>      @Inject private Injector injector;
>>
>>      public HomePage(final PageParameters parameters) {
>>         super(parameters);
>>          SomeType myobj = injector.getInstance(SomeType.class);
>>
>>         add(new Label("version", myobj.getValue()));
>>      }
>> }
>>
>> This all runs great inside a web container as a servlet.
>>
>> The PROBLEM: I'm getting a NullPointerException on the line where I
>> reference the injector:
>>          SomeType myobj = injector.getInstance(SomeType.class);
>>
>> My test class is what was generated by the wicket quickstart. I'm not
>> sure how to make an injector available in setUp.
>>
>>      @Before
>>      public void setUp() {
>>          tester = new WicketTester(new WicketApplication());
>>      }
>>
>> Any ideas?
>>
>> Thanks,
>> Daniel
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to