You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Igor Vaynberg (JIRA)" <ji...@apache.org> on 2009/09/24 00:22:15 UTC

[jira] Resolved: (WICKET-2487) SpringComponentInjector and AbstractJUnit4SpringContextTests

     [ https://issues.apache.org/jira/browse/WICKET-2487?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Vaynberg resolved WICKET-2487.
-----------------------------------

    Resolution: Won't Fix
      Assignee: Igor Vaynberg

there isnt much we can do about this, spring does not provide a uniform way to retrieve the context, nor is there one really for all the different environments.

you want to make it a little nicer on your api? make your application take the applicationcontext in its constructor. that should make it more explicit. then use a custom webapplicationfactory to create your application instance for the filter.

> SpringComponentInjector and AbstractJUnit4SpringContextTests
> ------------------------------------------------------------
>
>                 Key: WICKET-2487
>                 URL: https://issues.apache.org/jira/browse/WICKET-2487
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket-spring
>    Affects Versions: 1.4.1
>            Reporter: Ralf Ebert
>            Assignee: Igor Vaynberg
>
> SpringComponentInjector goes to WebApplicationContextUtils to resolve the application context. In tests derived from AbstractJUnit4SpringContextTests this doesn't work.
> Workaround:
> 1) Make the SpringComponentInjector configurable for your app:
> public class SomeWicketApplication extends WebApplication {
> 	@Override
> 	protected void init() {
> 		addComponentInstantiationListener(createSpringInjector());
> 	}
> 	protected SpringComponentInjector createSpringInjector() {
> 		return new SpringComponentInjector(this);
> 	}
> }
> 2) configure it correctly for the test:
> @ContextConfiguration(locations = { "classpath:spring.xml" })
> public class TestHomePage extends AbstractJUnit4SpringContextTests {
> 	private WicketTester tester;
> 	@Before
> 	public void setUp() {
> 		SomeWicketApplication app = new SomeWicketApplication() {
> 			@Override
> 			protected SpringComponentInjector createSpringInjector() {
> 				return new SpringComponentInjector(this, applicationContext);
> 			}
> 		};
> 		tester = new WicketTester(app);
> 	}
> }
> Shouldn't there be a better/easier way to accomplish this?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.