Fixing a test failure in RelativePathTest
It turns out that Groovy compiler we use to compile src/test/groovy was not properly generating the 'enclosing class' information inside *.class, which was causing the load failure of the descriptors marked by @TestExtension in test code. To fix this and forestall other possible GMaven related issues, I decided to bump up the GMaven version. As it turns out, Codehaus GMaven had ceased the development of the 1.x branch, so I initially tried 2.x release line. The 2.x release line got rid of the stub generation functionality, which we badly need for annotation processing. It instead recommend using Eclipse compiler to jointly compile Java and Groovy source code together, but when I tried to compile our tests, it failed to properly handle nested classes. The compiler quality appears quite premature. I was then going back to GMaven 1.5, the last 1.x release. I took this opportunity to rebase my local patches in org.kohsuke.gmaven to the latest release, which in my mind gets justified now that the upstream has ceased the development. My local patch to GMaven is captured in GMAVEN-3 and GMAVEN-4 (see http://jira.codehaus.org/browse/GMAVEN-3 and http://jira.codehaus.org/browse/GMAVEN-4). GMAVEN-4 is claimed to be fixed, but when I tried to compile our source tree I discovered that its handling of nested types breaks the generated stub code. In the end, I managed to patch gmaven and posted 1.5-jenkins-1. The bottom line is, we can now use @TestExtension correctly with Groovy tests. Also on the upside, we can get rid of org.kohsuke.gmaven and avoid the current confusion situation of using two GMaven plugins. I'll make a follow-up change to remove org.kohsuke.gmaven from elsewhere in our POM.
Showing
想要评论请 注册 或 登录