Creo que encontré un error con la configuración de mi classpath.Utilizando recursos i18n de WEB-INF en la prueba Junit
Quiero probar una aplicación Web internacionalizado que tiene la MessageSource define así:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/i18n/errors</value>
<value>/WEB-INF/i18n/messages</value>
<value>/WEB-INF/i18n/links</value>
<value>/WEB-INF/i18n/forms</value>
<value>/WEB-INF/i18n/communication</value>
</list>
</property>
</bean>
Cargando estos valores funciona perfectamente en un entorno de producción. Sin embargo, al ejecutar una prueba de Junit, no puede resolver esos archivos de propiedad porque no están en la ruta de clases.
Sin embargo, yo quiero que sean NO en la ruta de clase porque entonces puedo hacer uso de la función de donde puedo cambiar algo en los archivos de propiedades y que se refleja en el sitio web de inmediato: Since application servers typically cache all files loaded from the classpath, it is necessary to store resources somewhere else (for example, in the "WEB-INF" directory of a web app). Otherwise changes of files in the classpath will not be reflected in the application.
El resorte applicationContext es se encuentra allí: /src/main/resources/spring/applicationContext.xml
y se carga en la prueba Junit con estas anotaciones:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring/applicationContext.xml"})
¿Cómo puedo obtener Junit para recoger esos recursos no classpath así? Los archivos de propiedades están en /src/main/webapp/WEB-INF/i18n/*
Junit: 4.7.
Spring: 3.0.5.