> -----Original Message-----
> From: Alex Huang [mailto:alex.hu...@citrix.com]
> Sent: Tuesday, September 24, 2013 4:23 PM
> To: dev@cloudstack.apache.org
> Subject: RE: VmWare SDK to vijava
> 
> So this discussion took a big turn that I did not expect.  I am very strongly
> against creating a "plugin" layer just to interface with VmWare.  I appreciate
> both the effort from Darren and Hugo and each hold some merit.  I think we
> should discuss this out and drive a consensus rather than spending time to
> create "plugin" layers and such.
> 
> For me, I prefer going directly to wsdl because the helper layer (both vim25
> and vijava) is so thin that it's not a lot of effort to reproduce.  Going 
> directly
> to wsdl has the following advantages:
>   - We don't have to worry about upgrades in the helper libraries.  Look at
> what happened on 4.2 vim25 upgrade and the change in hidden behavior
> changes that caused lots of bugs.  It just doesn't seem to be worth the time
> to deal with third party helper libraries for the small amount of code gain.
>   - With wsdl, we can generate with different package names so that using
> two different versions of wsdls can have two different set of stub classes so
> we avoid using java class loaders to distinguish between the two.

I want to elaborate specifically on this point a little bit.  In a production 
deployed cloud that has been around, there's bound to be hypervisors of 
different versions.  We have that problem with XenServer because it is version 
that's been supported by CloudStack the longest.  CloudStack deals with the 
different versions of the same Hypervisor by writing two different 
ServerResources (they might share a common base of course).  However, if the 
client stubs the different ServerResources talk to are also of different 
versions but with the same name, then we have to work on confining different 
versions of the client stubs to different class loaders.  That's a lot of 
effort to do something simple.  Instead, we can simply designate a different 
package name when  generating from the wsdl (assuming the different versions of 
client stubs is due to wsdl versioning differences when interfacing with 
different versions of hypervisor) and have the ServerResources just refer to 
the different client stubs generated.  Hence, I prefer generation directly from 
wsdl.

--Alex

Reply via email to