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: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org