As of Jan 27, 2011, VI Java API has been downloaded 12,000+ times, a solid milestone indicating wide adoption of the API in VMware community.
InfoQ.com released my presenation (http://www.infoq.com/presentations/vsphere-java-api) of last year's SpringOne conference. It has both video and slides for more than one hour. The voice was not quite clear in the first one or two minutes. After that it's pretty good.
This presenation is a complete overview of the open source vSphere Java API. Because the audience then was new to virtualization, the first several minutes covered a little virtualization basics. You can scroll over if you know virtualization already.... read more
Today we hit another 1,000 download milestone - 6,000 downloads total - since last one on Jan 8th. Two majoy things that happened in this period of time accelerated the adoption.
• A new blog site was created for better interaction with the community. Please feel free to sign up (http://www.doublecloud.org) if you haven't yet. Also, I started to use Twitter @sjin2008.
• VI (vSphere) Java API was selected as one of the first 10 projects featured in VMware Labs. Please take a moment to vote 5 star for vSphere Java API here.Optionally you can leave a comment there.
http://labs.vmware.com/flings/vi-java... read more
VMware announced VMware Labs today. I am glad that VI (vSphere) Java API is one of the first 10 projects featured there.
Like other labs, VMware Labs is a great way for the company especially R&D team to know what user and developer communities like. So it's important to exercise your influence by voting for the projects you like. If many folks like a particular project, it's possible that the project becomes a product officially supported by the company in the future.... read more
<P>VMware has announced VMware Script-O-Mania contest. Check out <a href="http://www.doublecloud.org/2010/02/04/4-ways-to-win-2500-prizewith-vsphere-java-api/">this post</a>
for details of the contest and how VI Java API can help you to win the prize.
Recent Blog Posts:
<li><a title="4 Ways to WIN $2,500 Prize With vSphere Java API" href="http://www.doublecloud.org/2010/02/04/4-ways-to-win-2500-prizewith-vsphere-java-api/">4 Ways to WIN $2,500 Prize With vSphere Java API </a></li>
<li><a title="Introducing A Tiny Yet Powerful API to Manage and Automate vSphere" href="http://www.doublecloud.org/2010/02/03/introducing-a-tiny-yet-powerful-api-to-manage-and-automate-vsphere/">Introducing A Tiny Yet Powerful API to Manage and Automate vSphere </a></li>
<li><a title="A Little Known Secret of vSphere Managed Object Browser" href="http://www.doublecloud.org/2010/02/02/a-little-known-secret-of-vsphere-managed-object-browser/">A Little Known Secret of vSphere Managed Object Browser </a></li>
<li><a title="CO2: The Formula For A Successful Developer Ecosystem" href="http://www.doublecloud.org/2010/02/01/co2-the-formula-for-a-successful-developer-ecosystem/">CO2: The Formula For A Successful Developer Ecosystem </a></li>
<li><a title="Common Mistakes Using VMware VI and vSphere SDK" href="http://www.doublecloud.org/2010/01/31/common-mistakes-using-vmware-vi-and-vsphere-sdk/">Common Mistakes Using VMware VI and vSphere SDK </a></li>
<li><a title="Event: SF Cloud Computing Club Meetup on Mar 16" href="http://www.doublecloud.org/2010/01/30/event-sf-cloud-computing-club-meetup-on-mar-16/">Event: SF Cloud Computing Club Meetup on Mar 16 </a></li>
<li><a title="Top 10 Best Practices Using VMware VI and vSphere SDK (part 2)" href="http://www.doublecloud.org/2010/01/29/top-10-best-practices-using-vmware-vi-and-vsphere-sdk-part-2/">Top 10 Best Practices Using VMware VI and vSphere SDK (part 2) </a></li>
<li><a title="Top 10 Best Practices Using VMware VI and vSphere SDK (part 1)" href="http://www.doublecloud.org/2010/01/28/top-10-best-practices-using-vmware-vi-and-vsphere-sdk-part-1/">Top 10 Best Practices Using VMware VI and vSphere SDK (part 1) </a></li>
<li><a title="Get your hands dirty with self paced labs at PEX 2010" href="http://www.doublecloud.org/2010/01/28/get-your-hands-dirty-with-self-paced-labs-at-pex-2010/">Get your hands dirty with self paced labs at PEX 2010 </a></li>
<li><a title="How does LinkedIn.com do the search?" href="http://www.doublecloud.org/2010/01/28/how-does-linkedin-com-do-the-search/">How does LinkedIn.com do the search? </a></li>
Just blogged an initial plan for what to expect in next release (http://www.doublecloud.org/2010/01/27/what-else-do-you-want-from-next-release-of-vi-java-api/). Please share your thoughts and add your wishlist there. Your feedbacks are important for the direction of the project.
Please feel free to subscribe RSS (http://www.doublecloud.org/?feed=rss2) or follow me (http://twitter.com/sjin2008) for updates on the progress.... read more
One of my goals this year is to build a more interactive community around the API. After trying the WordPress provided by sourceforge, I decided to start a new blog site: http://www.doublecloud.org. I will start blogging on a regular basis. You can sign up the blog feed for lastest developments and technical insights. Also, don't forget to leave your comments there.
Also, we cannot get away from the micro blogging. I also created my Twitter account: @sjin2008. To follow me, just visit project home and click the "Follow" button on the right sidebar after the twitter icon. One click only. I promise. It will connect to Twitter and create the connection after you login your own account.... read more
Happy new year everyone!
As of Jan 8, we surpassed 5,000 downloads. This is an important milestone for the project as it indicates the adoption of this powerful yet easy-to-use API has reached a new level.
It's almost 6 months since 2.0 was released on June 25. The community was thrilled by the dramatic performance boost with the new Just Enough Web Services Engine I wrote for VIM API. Some developers told me their applications run 15 times, not percent, faster than before.
Although some people told me they didn't find any bug, we do have bugs. There were about 10+ bugs reported or found by myself. These bugs were fixed immediately, normally within 24 hours after being reported. Depending on how you use the API, you mostly don't hit any of the bugs. Therefore, the fixes went to the subversion right away so that you can grab them as needed, but I didn't hurry up for a new release. Now they accumulate enough for an update release:... read more
1. Get Exclusive Content Designed for ISV/IHV/OEM Partners.
2. Learn about Enhanced Program Benefits.
3. Expanded Focus as Part of Partner Exchange.
4. Interact with VMware Product Managers, Engineers and Resellers.
5. Receive free Software and Other Discounts. All registered attendees will get a complementary 1-yr developer license for a 2-CPU VMware vSphere Standard product. In addition, attendees will have the chance to take complimentary VCP Prep and other classes and training. In total, a more than $3,000 value. ... read more
As mentioned earlier, VI Java API was leveraged at VMWorld 2009 Keynote demos. Now I got legal approval and contributed the related adapters to CloudTools code hosted at Google.
The CloudTools/CloudFoudry was originally designed for EC2. The CloudTools is open source; the CloudFoudry is not. With our contributed code, you can run CloudTools with vSphere for deploying your Java (Groovy) based web applications to your internal cloud. It offers both Maven and Grails plugins so you can do all the deployment with one line of command. Even better, you can integrate the plugin command with Spring Tools Suite (STS) and have a context menu in the Eclispe based IDE. This is what I call DIY PaaS (Do It Yourself Platform as a Service): vSphere + VI Java API + adapter + CloudTools.... read more
One of VMware community members recently sent me an email for samples of using OvfManager APIs. I just took some time to write two samples illustrating how to use them:
First, ExportOvfToLocal.java. This sample shows how to download either a VM or vApp to your local machine. The typical flow is:
Find the VM or vApp
Call their exportVm() or exportVApp() methods and get HttpNfcLease
Set lease time out
Wait for HttpNfcLease until it's ready
From the HttpNfcLease.info property, find the all URLs from which you download the vmdk files
Call OvfManager.createDescriptor() API to create the content of ovf and save it to a file along with downloaded vmdk files.
Release the lease by calling httpNfcLeaseComplete() method ... read more
I presented the VI Java API at SpringOne 2GX conference in New Orleans. Here is the presnetation slides which cover all the basics of the VI Java API and advanced features in version 2.0 like Just Enough Web Service Engine, Client REST API, etc. Check it out here.
The presentation was video recorded and will be posted once it's ready later.... read more
Today we hit yet another milestone - 4,000 downloads. I am now in New Orleans and will present the VI Java API at the SpringOne 2GX conference. I will post the slides and possibly the recored video next week. So stay tuned.
I am very happy to announce the 1.0 of the Jython Virtual Appliance based on Ubuntu. It's made available by our community member Timo Sugliani. Great job Timo!
To run the virtual appliance, you will need either VMware Workstation, VMware Server or VMware Player. The later two are free products from VMware Download Site.
After compressed to RAR format, the virtual appliance is about 600M. After downloading the virtual appliance here, you can uncompress it to a folder using free 7-Zip or other tools. Double chicking the .vmx file will bring up the Virtual Applicance. The initial username/password is vijava/vijava. You can and should change your credential after first login.... read more
While working on the VI Java API, I got many inquiries from new users on references. They concern mainly about the API quality, support, and licenses before developing products/projects on the API. Not much about the ease of use and cleanness of the API because the samples tell everything there.
Thanks to the user community, I just compiled a page with testimonials by CTO, VP Engineering, Engineers, Developers, Consultants, Quality Engineers from companies like EMC, NetApp, Salesforce, TripWire, Hyperic, Splunk, HyTrust, Reflex, 4Base, ICT, and of course VMware (We use it too!). As James Burke pointed out, "It (VI Java API) is a must-have for anyone interested in Java development with VMware vSphere."... read more
<P>In the last two months, I was quite busy with porting the <a href="http://code.google.com/p/cloudtools/">CloudTools</a> to vSphere.
The project made its way into both keynotes in VMworld 2009 at San Francisco:</P>
<LI><a href="http://www.vmware.com/go/vmworld2009-maritz">Paul Maritz (VMware CEO) Keynote</a>, demoed by SpringSource CEO Rod Johnson (starting at 76'10")</LI>
<LI><a href="http://www.vmware.com/go/vmworld2009-herrod">Steve Herrod (VMware CTO) Keynote</a>, demoed by SpringSource CTO Adiran Colyer (starting at 67'40")</LI>
</UL>... read more
Three months ago on April 11, we hit 2K download milestone. Today we hit yet another 1K milestone. Here are some basic statistics about the project:
*. 3013 downloads to date
*. 218 messages in the discussion forum
*. 10 Developers on project
For more statistics, you can subscribe this feed: http://sourceforge.net/export/rss2_projsummary.php?group_id=228007. The link is also listed in the home page (http://vijava.sf.net) after Project News.... read more
I am very pleased to announce general availability of VI (VSphere) Java API 2.0 today. The 2.0 release represents 6 months of continuous engineering effort since this January. It has packed many features:
1. New high performance web service engine. When I told people that we replaced AXIS, most of them wanted me to confirm what I said. The new engine is 15X times faster in loading, 4+X in de-serialization than AXIS 1.4 with only ¼ of size.
2. vSphere 4 support.
3. REST client API.
4. Caching framework API.
5. Multiple version support with single set of APIs.
6. Clean license. The API and dependent dom4j are all BSD licenses.... read more
The same day a year ago, I released the first version of VI Java API(http://vijava.sf.net). It's been downloaded for 2,300+ copies (not including VMware internal downloads) and used widely since then.
Today, I am pleased to announce another important milestone -- the vSphere 4 support with VI Java 2 Beta 3 ( With the name change of VI to vSphere, should we change the API to vSphere Java API as well?). ... read more
It's been a month since the 2.0 beta 2 update 2 was released. I haven't received any critical bug for a month. The API especially the web service engine is now stable.
This new 2.0 beta 2 update 3 is mainly about a new experimental feature - the caching framework. It not only caches the content, but also watches the changes on the server side for you. If you want to develop a large scale application, this feature is what you want. Check out the sample code to find out how to use it:
As the same as the rest of the API, you will find it very easy to use. Please let me know how you like the caching framework and how you would like to improve it.
Also included in this release is a fix to the following bug:
2785235 searchManagedEntity() fails on empty managed entity
I am considering to add two new pages on project home:
1. List of the products/projects/companies who use the VI Java API.
2. User's testimonials. Tell us your sucess story.
Please let me (sjin at vmware.com) know if you or your company is interested to leverage this opportunity.... read more
As of today (April 11, 2009), VI Java API got 2,004 downloads. Quite an acceleration of adoption since 2.0 Beta was released in Feb. For the first 1,000 download milestone, it took about 8 months; for the second 1,000 downloads, it only took about 3 months even though 2.0 still in Beta. I expect it will take even less time for the next 1,000 downloads after 2.0 GAs.
After two beta releases and several updates, the VIJ is now stabilized, and also optimized. We don’t have critical bugs on the project tracker now. Although the first beta outperforms AXIS several times, the latest beta 2 u2 is two times faster than the first beta. One of the developers told me he observed 10+ speed improvement in his application.
Other major technical benefits include:
. The code size is much smaller: 1/5 of AXIS 1.4, and 1/40 of AXIS 2. Yes, you read it correctly. It’s 1 to 40 in size to AXIS 2.
. VIJ 2.0 works for all the versions of VI, despite their namespace difference. If your application has to work with multiple version of targets, the space saving is even more – as high as 1: 120.
Business wise, the VI Java API license is very clean. The API itself and the dependent dom4j are all coming with BSD license, one of the most lenient license types. You can redistribute them with your application with a peace of mind. This is critical for ISVs – you don’t want your customers to download and configure AXIS after installing your software.
Behind the success of the VI Java API project is an active community. I would like to thank everyone in the community who gave me suggestions, tried the API, filed the bugs, helped others to use the API in various forums.
Looking into future, we need to promote more so that more people in the VMware community can share the success and enjoy the benefit of VI Java API.
This update release fixes the following two bugs:
2738911 IllegalArgumentException from retrieveObjectProperties()
2738959 InvalidLogin should be throw from login method
To download it, visit http://vijava.sf.net
A new update to the VI Java API 2.0 beta 2 was just released to fix the following bugs:
2710085 Unable to serialize java.lang.Byte
2717348 issue with queryPerfCounter() call
2721464 Issue with returning Calendar
2722374 Issue with returning ManagedObjectReference
2722381 issue with multiple XML parsing
2726014 issue with findExtension method when none found
2726016 issue with methods returning ManagedObjectReference
2726018 Error with configureLicenseSource
Many thanks to the folks who reported/filed the above bugs: George Costea, Eric Forgette (NetApp), Daniel Parrella (VMware), and two anonymous users (2717348, 2721464)
The big thing of this release is another round of refactoring and optimization. For the same test application we tried with beta 2, it now takes 0.840s – 0.05s reduction from the beta 2. Taking away the time spent on the server side, it’s 0.120s vs 0.170s. Quite a good result!
So what changes got us this result?
First of all, the class type caching is added. Previously we call Class.forName() for every data object types in the com.vmware.vim25 package. Now it’s called only once and placed into a HashMap object.
Secondly, remove un-necessary object instantiation. For example, I used to have a method to create an ArrayList object for all the elements which has the same tags. This method is changed to return only the number of the same tags.
Thirdly, change the string comparison to the type comparison. For example, I used to compare the object’s type name to “ManagedObjectReference.” We now just check with the following:
fRealType == ManagedObjectReference.class
Last, but not least, I start to use parallel garbage collector in the testing. All needed is to add the following option to the command:
If you run your application with Eclipse, you can go to the “Run” dialog, click on the “Arguments” tab and add the above in the “VM arguments.”
The parallel GC made a big difference with the test application, which retrieves properties from 51 managed objects for 60 times. In each retrieval, a lot of objects get created – DOM objects after the initial parsing, the data objects for all the properties.
To download the code, visit http://vijava.sf.net
VI Java API 2.0 beta 2 was just released. It has all the fixes in the previous 3 updates of beta 1, plus the following bugs and improvements:
2692371 OptionManager#getSetting() fails
2692265 Update readme with latest information
2690376 Incorrect serialization of Calendar if first level object
2689088 Using streaming feature in parsing XML
2688913 Typo in the VIM20 namespace
2685661 si.invoke("currentTime") does not return valid result... read more