VMware vCloud Suite SDK for Java 6.0 Release Notes

Released 12 MAR 2015

Updated: 15 MAR 2016

 

This document contains the following sections:

Overview

This SDK provides programmatic access to new features introduced in vSphere 6.0 and existing features that did not have a public API prior to the vSphere 6.0 release. The vCloud Suite SDK for Java also includes a provider development kit for defining, implementing and exposing new API services (API extensibility). Access to existing features is exposed through the vSphere Web Services API. This SDK also contains samples that demonstrate API extensibility and how the libraries work with other vSphere APIs.

The version 6.0 SDK enables programmatic access to the following services:

  • Service discovery using Lookup Service
  • Authentication (Single Sign-On)
  • Session management
  • Tagging
  • Content Library

Note:  Single Sign-On authentication is available through the VMware vCenter Single Sign On API. Service discovery is available through the Lookup Service API.

Distribution Kit

When you extract the contents of the vCloud Suite SDK for Java distribution kit, the files are placed in the VMware-vCloud-Suite-SDK-Java directory. That directory also contains the provider development kit which supports the development of a service to be integrated into the vCloud Suite environment.

    VMware-vCloud-Suite-SDK-Java/
        client/
        docs/
        provider/
        open_source_license.txt
        SDK-EULA.txt
        vCloud-Suite-SDK-Java-README.html

You can download the vCloud Suite SDK for Java distribution kit from the VMware Developer Center.

Supported Java Versions

The vCloud Suite SDK for Java 6.0 runs with JDK 7 or 8.

Known Issues

The following issues were discovered during testing.

  • Internal Server Error if Tagging Description Field is Empty

    The Tag Category Description field is optional in the vSphere Web Services API, but it is mandatory in the vCloud Suite SDK. Therefore, if the description field is empty, the vCloud Suite SDK can return an internal server error that states, "the ‘description’ field of the Category model is empty".

    Workaround:

    When creating tags, do not leave the description field empty. If you do not have any description, you may add a whitespace character (i.e. space).

  • Unauthenticated exception following long-running operation

    After an API client completes a long-running operation, such as an upload to the content library, the next operation might fail with an "Unauthenticated exception" message. This happens if the long running operation did not complete within the lifetime of the authentication session.

    Workarounds:

  • Keep the session alive by issuing short operations on another thread until the long running operation completes.
  • Increase the session length using the VMware vSphere Web Client. Select Administration > System Configuration > Services > vAPI Endpoint > Manage > General, and increase the value for the Maximum session idle time.
  • Tomcat vulnerability to CVE-2014-0227 (request smuggling exploit). The vCloud Suite SDK for Java ships with Tomcat version 7.0.35, which contains a vulnerability to request smuggling. In the case of a chunked request, a malformed continuation chunk could be interpreted by Tomcat as a new request.

    Workaround:

    Upgrade the Tomcat server to version 7.0.55 or later.

  • Validation of server certificates. The samples in the vCloud Suite SDK for Java do not perform server certificate validation, as written. This is suitable for development environments, but for production environments, you should modify the samples to perform certificate validation.

    To perform certificate validation:

    1. Import the server certificate into a certificate file that is accessible to the client.
    2. Modify the client code to present a Java keystore that contains the server certificate. For example:
      ProtocolFactory protocolFactory = new ProtocolFactory();
      ProtocolConnection protocolConnection = 
          protocolFactory.getConnection(Protocol.http, vcloudSuiteUrl, javaKeystore);
      
    3. Identify the certificate file location to the client. You can do this in one of two ways:
      • To identify the certificate location statically, set these trustStore properties:
          System.setProperty("javax.net.ssl.trustStore", javaKeystorePath);
          System.setProperty("javax.net.ssl.trustStorePassword", javaKeystorePassword);
        
      • To identify the certificate location dynamically, specify the locations on the command line when you run the samples:
          -Djavax.net.ssl.trustStore=javaKeystorePath
          -Djavax.net.ssl.trustStorePassword=javaKeystorePassword
        

Resolved Issues

  • Acquiring a Holder of Key (HoK) SAML token using a key/certificate pair generated during runtime, fails with JDK 1.8.

    The samples in the vCloud Suite SDK for Java use methods in the vCenter Single Sign-On SDK for authentication. A change in JDK 1.8 caused the certificate creation to fail with a java.security.cert.CertificateException.

    This problem has been fixed.