XenServerJava
=============

Version 5.6.100-1.

XenServerJava is a complete SDK for Citrix XenServer, exposing the XenServer
API as Java classes.

For XenServer documentation, see http://docs.xensource.com.
XenServerJava includes a class for every XenServer class, and a method for
each XenServer API call, so API documentation and examples written for
for other languages will apply equally well to Java.
In particular, the SDK Guide and API Documentation are ideal for developers
wishing to use XenServerJava.

For community content, blogs, and downloads, visit the XenServer Developer
Network at http://community.citrix.com/cdn/xs.

XenServerJava is free sofware.  You can redistribute and modify it under the
terms of the GNU GPL version 2, with an additional linking exception that
allows its use unmodified within closed-source applications.  See LICENSE.txt
for details.

This library may be accompanied by pedagogical examples.  These do not form
part of this library, and are licensed for redistribution and modification
under less restrictive terms.  Such examples are licensed clearly at the top
of each file.

XenServerJava is dependent upon Apache XML-RPC and WS-Commons, both by The
Apache Software Foundation.  We would like to thank the ASF and the
Apache XML-RPC development team in particular.
Both are licensed under the Apache Software License 2.0; see
LICENSE.Apache-2.0.txt for details.

We test with version 3.1 of Apache XML-RPC, and version 1.0.2 of WS-Commons.
We recommend that you use these versions, though others may work.

Downloads
---------

XenServerJava is available in three separate archives, one for the compiled
binaries, one for the source code, and one containing sample code.

All three archives are available from the XenServer Developer Network at
http://community.citrix.com/cdn/xs.

Apache XML-RPC is available from http://ws.apache.org/xmlrpc/.
WS-Commons is available from http://ws.apache.org/commons/.
