Thanks for all your help. I was able to do it like you suggested:
Code:
try {
HttpServletRequest request = (HttpServletRequest)((MvcExternalContext)context.getExternalContext()).getNativeRequest();
InputStream in = request.getSession().getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF");
Manifest manifest = null;
manifest = new Manifest(in);
java.util.jar.Attributes atts = manifest.getMainAttributes();
version = atts.getValue("Implementation-Version");
buildTime = atts.getValue("Implementation-Build-Time");
artifactTitle = atts.getValue("Implementation-Title");
} catch (Exception e) {
}
One caveat though, since I am using a MockRequestContext in my tests, I had to refactor my test code like this:
Code:
private void startFlowWithMvcMockedContext(MutableAttributeMap input) {
MockHttpServletRequest servletRequest = new MockHttpServletRequest("GET", "testurl");
MockHttpServletResponse servletResponse = new MockHttpServletResponse();
MockServletContext servletContext = new MockServletContext();
FlowUrlHandler flowUrlHandler = new DefaultFlowUrlHandler();
MvcExternalContext servletExternalContext = new MvcExternalContext(
servletContext, servletRequest, servletResponse, flowUrlHandler);
MockRequestContext context = new MockRequestContext();
context.setExternalContext(servletExternalContext) ;
startFlow(input, context.getExternalContext());
}