cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wilder Rodrigues <WRodrig...@schubergphilis.com>
Subject [DISCUSS] Moving to Java 8
Date Tue, 21 Apr 2015 13:27:00 GMT
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?

Thanks in advance.

Cheers,
Wilder

http://mail-archives.apache.org/mod_mbox/cloudstack-dev/201502.mbox/%3C54EEF6BE.5040401@shapeblue.com%3E<http://mail-archives.apache.org/mod_mbox/cloudstack-dev/201502.mbox/<54EEF6BE.5040401@shapeblue.com>>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message