My extensive testing consisted of "it compiles!"  So somebody needs to validate 
it, I don't have a vmware setup handy.  The wsdl generation route is not 
feasible unless legal says it's okay.  Somebody want to email legal@?

Darren

> On Sep 24, 2013, at 5:27 PM, Hugo Trippaers <h...@trippaers.nl> wrote:
> 
> So at this moment we have the following tally,
> 
> Darren, Alex, Kelven opt for the wsdl route
> Hugo opts for the vijava route
> 
> I'm perfectly ok with ditching my work on the vijava in favour of the wsdl 
> route. The arguments presented in the last few mails make a lot of sense. So 
> i say the wsdl route is the way to go.
> 
> I do think however that we need to revisit the vmware code anyway. There is 
> dead code in there, formatting issues and a general duplication of code. 
> Parts of my plan to switch to vijava was to simplify the code as well, but i 
> can still do that with the WSDL layer. 
> 
> Darren, did you run your wsdl branch through the BVT test suite? If you did 
> we can merge it on short notice and get on with it. If you didn't can you 
> take care of that and give an overview of the testing done on that branch 
> besides the BVT?
> 
> Cheers,
> 
> Hugo
> 
> 
>> On Sep 25, 2013, at 2:58 AM, Kelven Yang <kelven.y...@citrix.com> wrote:
>> 
>> We have commercial releases on top of existing code base and there are
>> lots of testing efforts behind it, dramatic switch means $ cost, the major
>> concern for me is not about how beautiful vijava is or how bad a direct
>> wsdl approach would be. it is about to get things move smoothly.
>> 
>> It looks like that we should have VMware layer on its own to have a plugin
>> structure so that we can replace underlying binding easier, it should
>> solve the balance between developer's tho motivation and carrying on the
>> legacy with minimal impacts to the rest of others.
>> 
>> 
>> Kelven
>> 
>>> On 9/23/13 6:01 PM, "Hugo Trippaers" <h...@trippaers.nl> wrote:
>>> 
>>> Heya,
>>> 
>>> This biggest advantage i see in using vijava is that a lot of the
>>> functionality that we now have in the vmware-base project is already
>>> supplied with vijava.
>>> 
>>> There is a lot of code that facilitates calling tasks and other stuff in
>>> our MO classes. These classes are available in vijava and could be used
>>> instead of our classes. Basically when using vijava correctly you hardly
>>> have to work with the ManagedObjectReferences anymore. For me this would
>>> be a big benefit as it makes programming against vmware a lot easier. We
>>> also have a lot of duplicate code currently in the vmware class and i
>>> wouldn't mind getting rid of it, which i think is easier with the vijava
>>> libraries.
>>> 
>>> That said, the main driver is getting it into the main build so any other
>>> efforts towards that goal are ok with me.
>>> 
>>> I would propose that somebody else puts up a branch with our own wdsl
>>> wrapper and we open a discussion thread when both branches are ready to
>>> see which we want to merge in master. Anybody who wants to pick that up?
>>> 
>>> I'm stubbornly going to continue with converting to vijava, I put some
>>> effort into it and i want at least to see it running once ;-)  And the
>>> more i work with it the more i'm seeing to benefits of the library so i
>>> might be able to be more convincing in the end :-)
>>> 
>>> Cheers,
>>> 
>>> Hugo
>>> 
>>> 
>>>> On Sep 24, 2013, at 2:18 AM, Kelven Yang <kelven.y...@citrix.com> wrote:
>>>> 
>>>> Prior to 5.1, VMware provides java binding in its SDK and this is where
>>>> CloudStack VMware integration began with. Starting from 5.1, VMware no
>>>> longer provides the java binding in binary form and recommends its
>>>> customers to generate directly from its WS WSDL.
>>>> 
>>>> Since we are not sure if we can distribute VMware wsdl legally or not,
>>>> therefore, we ended up to generate and distribute the java binding in
>>>> binary form. If we can get this cleared in lebal, as Darren pointed, we
>>>> can solve our non-dist issue easily in matter of adding couple of lines
>>>> in
>>>> maven.
>>>> 
>>>> As of vijava, yes, I think it may add some value from developer's point
>>>> of
>>>> view, but on the other hand, I don't see immediate benefits to having
>>>> another layer on top of VMware official WS API, vijava is an open source
>>>> project for providing convenient java binding to vmware WS API, maybe
>>>> I'm
>>>> wrong, but I think VMware vSphere WS API is the only official published
>>>> API from VMware, and the testing result of the API is endorsed by VMware
>>>> as an commercial entity. So I see more business value to stick with the
>>>> official WS API directly. If we can clear the legal concern of
>>>> redistributing VMware wsdl. I would +1 to add a build step of generating
>>>> VMware java binding from wsdl.
>>>> 
>>>> Kelven
>>>> 
>>>> 
>>>>> On 9/23/13 12:40 AM, "Hugo Trippaers" <h...@trippaers.nl> wrote:
>>>>> 
>>>>> We have been having this discussion on moving vmware out of noredist
>>>>> since i joined the project. So no real need to rush this suddenly.
>>>>> Still
>>>>> it would be nice to get this in for the next release. The feature
>>>>> freeze
>>>>> of 4.3 is october 31st for the 4.3 release. This change (or any sdk
>>>>> change to vmware) should be considered an architecture change so it
>>>>> should come in at the start of the new release cycle.
>>>>> 
>>>>> So this is currently my main activity on CloudStack meaning i can work
>>>>> pretty much dedicated on this. With a bit of luck i can have the
>>>>> changes
>>>>> finished this week. Then it's up to the test results if we can make it
>>>>> into the 4.3 release or the 4.4 release. Of course all pending a
>>>>> successful merge vote.
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Hugo
>>>>> 
>>>>> On Sep 23, 2013, at 3:10 PM, Darren Shepherd
>>>>> <darren.s.sheph...@gmail.com> wrote:
>>>>> 
>>>>>> It's seems there could be some good merit to adopting vijava.  I hate
>>>>>> to belabor this point, but we could get vmware plugin out of noredist
>>>>>> real fast if we just generate bindings (I think)
>>>>>> 
>>>>>> Do you know if legally we can add the vmware wsdl to git?  We wouldn't
>>>>>> redistribute it in the binary builds.  If we could add the wsdl to
>>>>>> git,
>>>>>> I could add a couple lines to the Pom and it will generate the
>>>>>> bindings
>>>>>> as part of the build.  Then vmware will be fully redistributable and
>>>>>> there is no change to existing code.  At runtime everything should be
>>>>>> the same too.  We could make that change real fast and then
>>>>>> additionally
>>>>>> continue to look at vijava.
>>>>>> 
>>>>>> Personal I want to get rid of noredist.  If somebody wants to
>>>>>> contribute code that depends on nonfree code, it seems that should be
>>>>>> in
>>>>>> a cloudstack-nonfree repo.
>>>>>> 
>>>>>> Darren
>>>>>> 
>>>>>>> On Sep 22, 2013, at 11:43 PM, Hugo Trippaers <h...@trippaers.nl>
>>>>>>> wrote:
>>>>>>> 
>>>>>>> 
>>>>>>>> On Sep 23, 2013, at 1:39 PM, Darren Shepherd
>>>>>>>> <darren.s.sheph...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>> Yeah, I'll dig into it more.  I think I understand a bit that vmware
>>>>>>>> api is just a bunch of generics objects, so another library on top
>>>>>>>> to
>>>>>>>> create types on top of it helps.  So I'll look at it more.  In the
>>>>>>>> end
>>>>>>>> I'm still going to probably have reservations about 1) a custom
>>>>>>>> XML/soap framework 2) a third party maintained later between us and
>>>>>>>> vmware (sorta like libvirt-java always behind and incomplete with
>>>>>>>> native libvirt).  So it just depends on if the nicer api is worth
>>>>>>>> the
>>>>>>>> risk of the other things.  I don't think vmwares api changes much,
>>>>>>>> and
>>>>>>>> you can always get to the generic objects so maybe my concerns are
>>>>>>>> moot.  
>>>>>>> 
>>>>>>> Thanks, i could actually use a second pair of eyes if we want to get
>>>>>>> this into master. It would be nice to have a few people test this. I
>>>>>>> don't really share the concern on the XML/soap framework one is a
>>>>>>> good
>>>>>>> or bad as the other usually, i've seen interesting things with the
>>>>>>> axes
>>>>>>> framework as well. But thats besides the point for now. My main
>>>>>>> objective now it to get vijava working with as little changes as
>>>>>>> possible. Later we can do some refactoring and see if vijava really
>>>>>>> benefits us as much as i think/hope it will do.
>>>>>>> 
>>>>>>> Your second concern is one i share, we will have to see how it goes.
>>>>>>> Vmware doesn't really change its api that often and if it does we are
>>>>>>> generally not the early adopters of new versions of libraries. So for
>>>>>>> now we should be ok.
>>>>>>> 
>>>>>>> Hopefully we will get the vmware stuff in the redistributable build
>>>>>>> which is the primary objective here. All benefits are nice to have
>>>>>>> for
>>>>>>> future developments.
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> 
>>>>>>> Hugo
>>>>>>> 
>>>>>>>> 
>>>>>>>> Darren
>>>>>>>> 
>>>>>>>>> On Sep 22, 2013, at 10:14 PM, Hugo Trippaers <h...@trippaers.nl>
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Sep 23, 2013, at 1:01 PM, Darren Shepherd
>>>>>>>>>> <darren.s.sheph...@gmail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Oh, I thought the primary motivation was just to get to fully open
>>>>>>>>>> source
>>>>>>>>>> and out of noredist.  I don't know enough about VMware and vijava
>>>>>>>>>> so my
>>>>>>>>>> comments may be off base (everything I know about vmware client is
>>>>>>>>>> based
>>>>>>>>>> off about 2 hours of googling), but my gut reaction is that its
>>>>>>>>>> better to
>>>>>>>>>> stick with mainstream than use vijava.  I understand the VMware
>>>>>>>>>> wsdl is a
>>>>>>>>>> complicated and weird API.  But the fact that you could drop
>>>>>>>>>> vijava
>>>>>>>>>> in real
>>>>>>>>>> quick and it mostly matches the existing illustrates that its not
>>>>>>>>>> a
>>>>>>>>>> big
>>>>>>>>>> departure from from the vmware bindings so doesn't seem to make
>>>>>>>>>> consuming
>>>>>>>>>> it much easier.  It seems that vijava was better than vmware sdk
>>>>>>>>>> 2.5
>>>>>>>>>> because you didn't need Apache Axis.  But vSphere 5.1 sdk is based
>>>>>>>>>> off of
>>>>>>>>>> JAXWS and thus doesn't need axis anymore.  If I'm going to put my
>>>>>>>>>> trust in
>>>>>>>>>> something at runtime I'd rather use the sun/oracle jaxws or apache
>>>>>>>>>> CXF and
>>>>>>>>>> not some custom xml/soap framework one guy wrote.
>>>>>>>>> 
>>>>>>>>> The drop in real quick bit is just for starters. Some of the enums
>>>>>>>>> have changes names and instead of lists vijava uses arrays. Those
>>>>>>>>> items are pretty quick to adapt. The real interesting things are in
>>>>>>>>> the serviceInstance etc. That's where there are some changes. A
>>>>>>>>> nice
>>>>>>>>> example is on the vijava website where 100 lines of "regular"
>>>>>>>>> vmware
>>>>>>>>> sdk is replaced by 20-something lines of vijava. I'd say dig a bit
>>>>>>>>> deeper and i could use the help with the conversion process.
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Additionally, if somebody wants to know how to do something with
>>>>>>>>>> VMware or
>>>>>>>>>> why something isn't working, I'd rather point them to the VMware
>>>>>>>>>> SDK
>>>>>>>>>> documentation than vijava.  I would assume that there is going to
>>>>>>>>>> be more
>>>>>>>>>> information about the VMware library then there would be for
>>>>>>>>>> vijava
>>>>>>>>>> on
>>>>>>>>>> stackoverflow and google in general.
>>>>>>>>> 
>>>>>>>>> Google it, so far you are right, but java projects are switching.
>>>>>>>>> Don't forget that vijava is sort of an official vmware project. It
>>>>>>>>> is
>>>>>>>>> being maintained by one of their engineers and actually published
>>>>>>>>> in
>>>>>>>>> the com.vmware namespace.
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Finally, I wouldn't consider us generating and checking in the
>>>>>>>>>> JAXWS
>>>>>>>>>> bindings as being overhead in maintenance.  The xapi bindings are
>>>>>>>>>> not the
>>>>>>>>>> same thing.  VMware API is first and foremost a SOAP service.  The
>>>>>>>>>> java
>>>>>>>>>> bindings they provide are just a convenience in that they already
>>>>>>>>>> generated
>>>>>>>>>> the client stubs for you.  But if I was to consume any other SOAP
>>>>>>>>>> service
>>>>>>>>>> in the world, I would be generating my client stubs for it.  So
>>>>>>>>>> this is
>>>>>>>>>> just the normal approach you take to consume a webservice.
>>>>>>>>>> Typically you
>>>>>>>>>> generate the stubs as part of the build and never check-in the
>>>>>>>>>> generated
>>>>>>>>>> code to git, but I don't think we can check the vmware wsdl into
>>>>>>>>>> git (if we
>>>>>>>>>> could, that would be ideal).  But basically, if I'm generating
>>>>>>>>>> stubs or I'm
>>>>>>>>>> using a java jar, its about the same overhead.  If the webservice
>>>>>>>>>> moves
>>>>>>>>>> from version X, I generate new stubs against version X of the
>>>>>>>>>> wsdl.
>>>>>>>>>> If the
>>>>>>>>>> jar changes to version X, I update the pom dependency to version
>>>>>>>>>> X.
>>>>>>>>>> In
>>>>>>>>>> both cases, you still have to regression test for compatibility,
>>>>>>>>>> so
>>>>>>>>>> testing
>>>>>>>>>> effort trumps all other concerns.
>>>>>>>>> 
>>>>>>>>> I would seriously consider that overhead in maintenance. Now i
>>>>>>>>> don't
>>>>>>>>> even have to worry about that besides 4 lines of dependency in my
>>>>>>>>> maven project.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> So I'd personally like it if we just generated the stubs ourself
>>>>>>>>>> and then
>>>>>>>>>> we can move VMware plugin out of redist.  I guess it would be
>>>>>>>>>> helpful if
>>>>>>>>>> you could illustrate some of the benefits of vijava.  I know you
>>>>>>>>>> wanted to
>>>>>>>>>> get it working first so we could test the merits of it, I'm just
>>>>>>>>>> having a
>>>>>>>>>> hard time seeing why we would even attempt it, if we can just
>>>>>>>>>> stick
>>>>>>>>>> basically with what we have today, but make it all open source and
>>>>>>>>>> distributable.
>>>>>>>>> 
>>>>>>>>> Stay tuned and follow the commits :-)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Darren
>>>>>>>>> 
>>>>>>>>> Cheers,
>>>>>>>>> 
>>>>>>>>> Hugo
> 

Reply via email to