Very nice cleanup Andrea. Many thanks for your effort keeping this up to date and for refactoring the code to increase the provider performance! I've been through the entire PR now. Apart from what I've commented, let me summarize what should be changed:
* In the domain classes, for properties whose name does not match the serialized form, add the corresponding `@Named` annotation. That would make serialization and deserialization consistent. * All constructors of the domain objects should have `null` checks for their mandatory properties. * Don't use the `ConcreteBuilder + abstract Builder` pattern if the builder is not meant to be extended. * Rename API methods to something meaningful rather than the generic `getObject()`, etc. * There are several classes with unused imports and (quite long) blocks of commented code. Could you clean them up? * Avoid using `System.out`, even in tests. * **Important**: Add the expect and live tests for the `AccountApi` and `VirtualGuestBlockDeviceTemplateGroupApi` classes. * **Important**: Add the expect and live tests for the missing methods from the `VirtualGuestApi` class. Also, it would be great if, once finished addressing the comments, you could paste the result of running the live tests. And huge thanks for your effort on this refactor! Changing the entire provider is not an easy task, but the new code looks promising. --- Reply to this email directly or view it on GitHub: https://github.com/jclouds/jclouds/pull/296#issuecomment-37242142
