Hi Wido, Thanks for the reply and making a good point concerning Ubuntu 14.04.
Besides the difficulty in writing testes without increasing even more out technical dept, another point on the Java 8 platform is the EOL (end of this month) of Java 1.7. For now I created a ticket on Apache Jira to keep track of it: https://issues.apache.org/jira/browse/CLOUDSTACK-8397. Could you please have a look and let me know if the content of the ticket is appropriate? We will start a new sprint in 1 week and will take some time to discuss what to do and when. Will keep the community updated on that matter. Thanks a gain. Cheers, Wilder On 21 Apr 2015, at 15:49, Wido den Hollander <[email protected]<mailto:[email protected]>> wrote: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/21/2015 03:27 PM, Wilder Rodrigues wrote: Hi all, Yesterday I started working on the LibvirtComputingResource class in order to apply the same patterns I used in the CitrixResourceBase + add more unit tests to it After 10 hours of work I got a bit stuck with the 1st test, which would cover the refactored LibvirtStopCommandWrapper. Why did I get stuck? The class used a few static methods that call native libraries, which I would like to mock. However, when writing the tests I faced problems with the current Mockito/PowerMock we are using: they are simply not enough for the task. What did I do then? I added a dependency to EasyMock and PowerMock-EasyMock API. It worked almost fine, but I had to add a “-noverify” to both my Eclipse Runtime configuration and also to the cloud-plugin-hypervisor-kvm/pom.xml file. I agree that’s not nice, but was my first attempt of getting it to work. After trying to first full build I faced more problems related to ClassDefNotFoundExpcetion which were complaining about Mockito classes. I then found out that adding the PowerMockRunner to all the tests classes was going to be a heavy burden and would also mess up future changes (e.g. the -noverify flag was removed from Java 8, thus adding it now would be a problem soon). Now that the first 2 paragraphs explain a bit about the problem, let’s get to the solution: Java 8 The VerifyError that I was getting was due to the use of the latest EasyMock release (3.3.1). I tried to downgrade it to 3.1/3.2 but it also did not work. My decision: do not refactor if the proper tests cannot be added. This left me with one action: migrate to Java 8. There were mentions about Java 8 in february[1] and now I will put some energy in making it happen. What is your opinion on it? I'm not against it technically, but practically I am. Ubuntu 14.04 does not ship a Java 8 JRE in the repositories. CentOS 7 has java-1.8.0-openjdk.x86_64 available, so it would work there. But Ubuntu is also widely used with CloudStack, so those users couldn't use CloudStack without any additional repositories. Since that isn't easy I would vote -1 on this if it came that far. Wido Thanks in advance. Cheers, Wilder http://mail-archives.apache.org/mod_mbox/cloudstack-dev/201502.mbox/%3 [email protected]<mailto:[email protected]>%3E<http://mail-archives.apache.org/mod_m box/cloudstack-dev/201502.mbox/<[email protected]<mailto:[email protected]>>> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJVNlV2AAoJEAGbWC3bPspCfYgQAMoXgekM6/NHXivIGLfbhekK ghf+Ll1EFku+9IdMUdaholO0bLz7TQ+DOphr+xikVNizqakSnYCSF5wjiKQYtc+g LCPvWhbp8UG4LjbjWdK80FPtbx0WH9OZg/XK097NQoFRNpchxRprpFoSSYJMAhqh WjDvwfgzCITw9pqC3jI8l3Sy/i1/yv7fFRv//w4vHOqRa+4urst+dXASGer83IAX zCJdp+SxOx2VnUDta32KJFc6CsV2rV4BW+5dPAhJad7mFd6EafngSWZRuJmjkbsq tSiULlUAluXSnZ86FQESDhffYJdp/fkjWbmZvSRYgE+Xn5cAyB02z9ukLeJktNgq 3UjIyINiU7182IXlrRUciZXXexc8jfYCaQ8wmgOjxmpPdih0zqWBa4RWA8VCt4SM Sw5BXO3hDjXljxrbeXs3AHSDPAslNoSDOEmKVeLYDdMWbO0Z7FvUurRuv4LKgOdE lofDGIcUBw++AE1DuF+vIU/Gnfo61oMzY2FPvXp4V+wHekf+uet8H4MPs0Y5PFDD 9HyewO+aWEC0w8LQVAIevP8pwbArv4zX65AtSWI2IKqmwQOpvIeuB2M7sdxgoNM+ M7IMdYBC3XyIcxqYwDvevlAM0PoeUhpYY9m6fpfirlhJMXS8nBEA1H45cQQBCVDz /uhF9CC8wnEQcb2cu+lF =Hhwq -----END PGP SIGNATURE-----
