]> xenbits.xensource.com Git - libvirt.git/commitdiff
documentation for java bindings
authorDaniel Veillard <veillard@redhat.com>
Tue, 22 Jul 2008 17:49:53 +0000 (17:49 +0000)
committerDaniel Veillard <veillard@redhat.com>
Tue, 22 Jul 2008 17:49:53 +0000 (17:49 +0000)
* docs/java.html docs/java.html.in: added documentation for the
  java bindings
Daniel

ChangeLog
docs/java.html [new file with mode: 0644]
docs/java.html.in [new file with mode: 0644]

index a91cc3fefd230e04a4ac3e54356ef5e83810b70f..d4fbf64c2157deecb8aca959d0400021c78f4bff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jul 22 19:48:51 CEST 2008 Daniel Veillard <veillard@redhat.com>
+
+       * docs/java.html docs/java.html.in: added documentation for the
+         java bindings
+
 Tue Jul 22 18:11:13 CEST 2008 Jim Meyering <meyering@redhat.com>
 
        better diagnostic when failing to undefine a running domain via ID
diff --git a/docs/java.html b/docs/java.html
new file mode 100644 (file)
index 0000000..2b0c15f
--- /dev/null
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<!--
+        This file is autogenerated from java.html.in
+        Do not edit this file. Changes will be lost.
+      -->
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+    <link rel="stylesheet" type="text/css" href="main.css" />
+    <link rel="SHORTCUT ICON" href="32favicon.png" />
+    <title>libvirt: Java API bindings</title>
+    <meta name="description" content="libvirt, virtualization, virtualization API" />
+  </head>
+  <body>
+    <div id="header">
+      <div id="headerLogo"></div>
+      <div id="headerSearch">
+        <form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><div>
+            <input id="query" name="query" type="text" size="12" value="" />
+            <input id="submit" name="submit" type="submit" value="Search" />
+          </div></form>
+      </div>
+    </div>
+    <div id="body">
+      <div id="menu">
+        <ul class="l0"><li>
+            <div>
+              <a title="Front page of the libvirt website" class="inactive" href="index.html">Home</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="Details of new features and bugs fixed in each release" class="inactive" href="news.html">News</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="Get the latest source releases, binary builds and get access to the source repository" class="inactive" href="downloads.html">Downloads</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="Information for users, administrators and developers" class="active" href="docs.html">Documentation</a>
+              <ul class="l1"><li>
+                  <div>
+                    <a title="Information about deploying and using libvirt" class="inactive" href="deployment.html">Deployment</a>
+                  </div>
+                </li><li>
+                  <div>
+                    <a title="Overview of the logical subsystems in the libvirt API" class="inactive" href="intro.html">Architecture</a>
+                  </div>
+                </li><li>
+                  <div>
+                    <a title="Description of the XML formats used in libvirt" class="inactive" href="format.html">XML format</a>
+                  </div>
+                </li><li>
+                  <div>
+                    <a title="Hypervisor specific driver information" class="inactive" href="drivers.html">Drivers</a>
+                  </div>
+                </li><li>
+                  <div>
+                    <a title="Reference manual for the C public API" class="inactive" href="html/index.html">API reference</a>
+                  </div>
+                </li><li>
+                  <div>
+                    <a title="Bindings of the libvirt API for other languages" class="active" href="bindings.html">Language bindings</a>
+                    <ul class="l2"><li>
+                        <div>
+                          <a title="overview of the python API bindings" class="inactive" href="python.html">Python</a>
+                        </div>
+                      </li><li>
+                        <div>
+                          <span class="active">Java</span>
+                        </div>
+                      </li></ul>
+                  </div>
+                </li></ul>
+            </div>
+          </li><li>
+            <div>
+              <a title="User contributed content" class="inactive" href="http://wiki.libvirt.org">Wiki</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="Frequently asked questions" class="inactive" href="FAQ.html">FAQ</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="How and where to report bugs and request features" class="inactive" href="bugs.html">Bug reports</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="How to contact the developers via email and IRC" class="inactive" href="contact.html">Contact</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="Miscellaneous links of interest related to libvirt" class="inactive" href="relatedlinks.html">Related Links</a>
+            </div>
+          </li><li>
+            <div>
+              <a title="Overview of all content on the website" class="inactive" href="sitemap.html">Sitemap</a>
+            </div>
+          </li></ul>
+      </div>
+      <div id="content">
+        <h1>Java API bindings</h1>
+        <h2>Presentation</h2>
+        <p>The Java bindings are currently a work in progress based mostly
+on the work of Toth Istvan. The first usable release is 0.2.0, where
+most of the naming conventions were defined. Futher release will try
+as much as possible to stay compatible</p>
+        <h2>Getting it</h2>
+        <p>
+  The latest versions of the libvirt Java bindings can be downloaded from:
+</p>
+        <ul><li><a href="ftp://libvirt.org/libvirt/java/">libvirt.org FTP server</a></li><li><a href="http://libvirt.org/sources/java/">libvirt.org HTTP server</a></li></ul>
+        <h2>Hourly development snapshots</h2>
+        <p> Once an hour, an automated snapshot is made from the latest CVS server
+  source tree. These snapshots should be usable, but we make no guarantees
+  about their stability: </p>
+        <ul><li><a href="ftp://libvirt.org/libvirt/java/libvirt-java-snapshot.tar.gz">libvirt.org FTP server</a></li><li><a href="http://libvirt.org/sources/java/libvirt-java-snapshot.tar.gz">libvirt.org HTTP server</a></li></ul>
+        <h2>CVS repository access</h2>
+        <p> The master source repository uses <a href="http://ximbiot.com/cvs/cvshome/docs/">CVS</a> and anonymous access
+is provided. Prior to accessing the server is it necessary to authenticate
+using the password <code>anoncvs</code>. This can be accomplished with
+the <code>cvs login</code> command:
+</p>
+        <pre>
+  # cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs login
+</pre>
+        <p>
+  Once authenticated, a checkout can be obtained using
+</p>
+        <pre>
+
+  # cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs co libvirt-java
+</pre>
+        <p>
+The libvirt-java build process uses GNU autotools, so after obtaining a checkout
+it is necessary to generate the configure script and Makefile.in templates
+using the <code>autogen.sh</code> command. As an example, to do a complete
+build and install it into your home directory run:
+</p>
+        <pre>
+  ./autogen.sh --prefix=$HOME/usr
+  make
+  make install
+</pre>
+        <p>Other build system are not currently available but as usual we take patches
+(Eclipse/ant/...) would be welcome !</p>
+        <p> currently libvirt-java requires a version of libvirt &gt;= 0.4.0 to be
+installed as well as the associated libvirt development files/package. It
+should compile with any java implementation &gt;= 1.5, the bindings uses
+the enum construct which appeared only in that version.</p>
+        <p>Libvirt-java bindings development occurs on the same mailing-list as
+the normal libvirt work see <a href="contact.html">the associated contact
+page</a></p>
+        <h2>GIT repository mirror</h2>
+        <p>
+  The CVS source repository is also mirrored using GIT, and is available
+  for anonymous access via:
+</p>
+        <pre> 
+  git clone git://git.et.redhat.com/libvirt-java
+</pre>
+        <p>
+  It can also be browsed at
+</p>
+        <pre>
+
+  <a href="http://git.et.redhat.com/?p=libvirt-java.git;a=summary">http://git.et.redhat.com/?p=libvirt-java.git;a=summary</a>
+</pre>
+        <h2>Content</h2>
+        <p>The bindings are articulated around a few
+classes in the <code>org/libvirt</code> namespace, notably the
+<code>Connect</code>, <code>Domain</code> and <code>Network</code>
+ones. Functions in the <a href="html/libvirt-libvirt.html">C API</a>
+taking <code>virConnectPtr</code>, <code>virDomainPtr</code> or
+<code>virNetworkPtr</code> as their first argument usually become
+methods for the classes, their name is just stripped from the
+virConnect or virDomain(Get) prefix and the first letter gets converted to
+lower case, for example the C functions:</p>
+        <p>
+      <code>int <a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
+(virConnectPtr conn);</code>
+    </p>
+        <p>
+      <code>int <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a>
+(virDomainPtr domain, unsigned long memory);</code>
+    </p>
+        <p>become</p>
+        <p>
+      <code>virConn::numOfDomains()</code>
+    </p>
+        <p>
+      <code>virDomain::setMaxMemory(long memory)</code>
+    </p>
+        <p> There is of course some functions where the mapping is less direct
+and using extra classes to map complex arguments. The <a href="http://libvirt.org/org/libvirt/package-summary.html">Javadoc</a> is available online or as
+part of a separate libvirt-java-javadoc package.</p>
+        <p>So let's look at a simple example inspired from the
+<code>test.java</code> test found in <code>src</code> in the source tree:</p>
+        <pre>import <span style="color: #0071FF; background-color: #FFFFFF">org.libvirt.*</span>;
+public class minitest {
+    public static void main(String[] args) {
+        Connect conn=null;
+        try{
+            conn = new <span style="color: #0071FF; background-color: #FFFFFF">Connect</span>("test:///default", true);
+        } catch (<span style="color: #0071FF; background-color: #FFFFFF">LibvirtException</span> e){
+            System.out.println("exception caught:"+e);
+            System.out.println(e.getError());
+        }
+        try{
+            <span style="color: #0071FF; background-color: #FFFFFF">Domain</span> testDomain=conn.<span style="color: #007F00; background-color: #FFFFFF">domainLookupByName</span>("test");
+            System.out.println("Domain:" + testDomain.<span style="color: #E50073; background-color: #FFFFFF">getName</span>() + " id " +
+                               testDomain.<span style="color: #E50073; background-color: #FFFFFF">getID</span>() + " running " +
+                               testDomain.<span style="color: #E50073; background-color: #FFFFFF">getOSType</span>());
+        } catch (<span style="color: #0071FF; background-color: #FFFFFF">LibvirtException</span> e){
+            System.out.println("exception caught:"+e);
+            System.out.println(e.getError());
+        }
+    }
+}
+</pre>
+        <p>There is not much to comment about it, it really is a straight mapping
+from the C API, the only points to notice are:</p>
+        <ul><li>the import of the modules in the <code><span style="color: #0071FF; background-color: #FFFFFF">org.libvirt</span></code> namespace</li><li>getting a connection to the hypervisor, in that case using the
+    readonly access to the default test hypervisor.</li><li>getting an object representing the test domain using <span style="color: #007F00; background-color: #FFFFFF">lookupByName</span></li><li>if the domain is not found a LibvirtError exception will be raised</li><li>extracting and printing some information about the domain using
+    various <span style="color: #E50073; background-color: #FFFFFF">methods</span>
+    associated to the Domain class.</li></ul>
+      </div>
+    </div>
+    <div id="footer">
+      <p id="sponsor">
+           Sponsored by:<br /><a href="http://et.redhat.com/"><img src="et.png" alt="Project sponsored by Red Hat Emerging Technology" /></a></p>
+    </div>
+  </body>
+</html>
diff --git a/docs/java.html.in b/docs/java.html.in
new file mode 100644 (file)
index 0000000..316070c
--- /dev/null
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<html>
+  <body>
+    <h1>Java API bindings</h1>
+
+<h2>Presentation</h2>
+    <p>The Java bindings are currently a work in progress based mostly
+on the work of Toth Istvan. The first usable release is 0.2.0, where
+most of the naming conventions were defined. Futher release will try
+as much as possible to stay compatible</p>
+
+<h2>Getting it</h2>
+<p>
+  The latest versions of the libvirt Java bindings can be downloaded from:
+</p>
+
+<ul>
+<li><a href="ftp://libvirt.org/libvirt/java/">libvirt.org FTP server</a></li>
+<li><a href="http://libvirt.org/sources/java/">libvirt.org HTTP server</a></li>
+</ul>
+
+<h2>Hourly development snapshots</h2>
+<p> Once an hour, an automated snapshot is made from the latest CVS server
+  source tree. These snapshots should be usable, but we make no guarantees
+  about their stability: </p>
+
+<ul>
+  <li><a href="ftp://libvirt.org/libvirt/java/libvirt-java-snapshot.tar.gz">libvirt.org FTP server</a></li>
+  <li><a href="http://libvirt.org/sources/java/libvirt-java-snapshot.tar.gz">libvirt.org HTTP server</a></li>
+</ul>
+
+<h2>CVS repository access</h2>
+
+<p> The master source repository uses <a
+href="http://ximbiot.com/cvs/cvshome/docs/">CVS</a> and anonymous access
+is provided. Prior to accessing the server is it necessary to authenticate
+using the password <code>anoncvs</code>. This can be accomplished with
+the <code>cvs login</code> command:
+</p>
+
+<pre>
+  # cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs login
+</pre>
+
+<p>
+  Once authenticated, a checkout can be obtained using
+</p>
+
+<pre>
+
+  # cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs co libvirt-java
+</pre>
+
+<p>
+The libvirt-java build process uses GNU autotools, so after obtaining a checkout
+it is necessary to generate the configure script and Makefile.in templates
+using the <code>autogen.sh</code> command. As an example, to do a complete
+build and install it into your home directory run:
+</p>
+<pre>
+  ./autogen.sh --prefix=$HOME/usr
+  make
+  make install
+</pre>
+<p>Other build system are not currently available but as usual we take patches
+(Eclipse/ant/...) would be welcome !</p>
+<p> currently libvirt-java requires a version of libvirt &gt;= 0.4.0 to be
+installed as well as the associated libvirt development files/package. It
+should compile with any java implementation &gt;= 1.5, the bindings uses
+the enum construct which appeared only in that version.</p>
+<p>Libvirt-java bindings development occurs on the same mailing-list as
+the normal libvirt work see <a href="contact.html">the associated contact
+page</a></p>
+
+<h2>GIT repository mirror</h2>
+
+<p>
+  The CVS source repository is also mirrored using GIT, and is available
+  for anonymous access via:
+</p>
+
+<pre> 
+  git clone git://git.et.redhat.com/libvirt-java
+</pre>
+
+<p>
+  It can also be browsed at
+</p>
+
+<pre>
+
+  <a href="http://git.et.redhat.com/?p=libvirt-java.git;a=summary">http://git.et.redhat.com/?p=libvirt-java.git;a=summary</a>
+</pre>
+
+<h2>Content</h2>
+<p>The bindings are articulated around a few
+classes in the <code>org/libvirt</code> namespace, notably the
+<code>Connect</code>, <code>Domain</code> and <code>Network</code>
+ones. Functions in the <a href="html/libvirt-libvirt.html">C API</a>
+taking <code>virConnectPtr</code>, <code>virDomainPtr</code> or
+<code>virNetworkPtr</code> as their first argument usually become
+methods for the classes, their name is just stripped from the
+virConnect or virDomain(Get) prefix and the first letter gets converted to
+lower case, for example the C functions:</p>
+    <p>
+      <code>int <a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
+(virConnectPtr conn);</code>
+    </p>
+    <p>
+      <code>int <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a>
+(virDomainPtr domain, unsigned long memory);</code>
+    </p>
+    <p>become</p>
+    <p>
+      <code>virConn::numOfDomains()</code>
+    </p>
+    <p>
+      <code>virDomain::setMaxMemory(long memory)</code>
+    </p>
+    <p> There is of course some functions where the mapping is less direct
+and using extra classes to map complex arguments. The <a href="http://libvirt.org/org/libvirt/package-summary.html">Javadoc</a> is available online or as
+part of a separate libvirt-java-javadoc package.</p>
+    <p>So let's look at a simple example inspired from the
+<code>test.java</code> test found in <code>src</code> in the source tree:</p>
+    <pre>import <span style="color: #0071FF; background-color: #FFFFFF">org.libvirt.*</span>;
+public class minitest {
+    public static void main(String[] args) {
+        Connect conn=null;
+        try{
+            conn = new <span style="color: #0071FF; background-color: #FFFFFF">Connect</span>("test:///default", true);
+        } catch (<span style="color: #0071FF; background-color: #FFFFFF">LibvirtException</span> e){
+            System.out.println("exception caught:"+e);
+            System.out.println(e.getError());
+        }
+        try{
+            <span style="color: #0071FF; background-color: #FFFFFF">Domain</span> testDomain=conn.<span style="color: #007F00; background-color: #FFFFFF">domainLookupByName</span>("test");
+            System.out.println("Domain:" + testDomain.<span style="color: #E50073; background-color: #FFFFFF">getName</span>() + " id " +
+                               testDomain.<span style="color: #E50073; background-color: #FFFFFF">getID</span>() + " running " +
+                               testDomain.<span style="color: #E50073; background-color: #FFFFFF">getOSType</span>());
+        } catch (<span style="color: #0071FF; background-color: #FFFFFF">LibvirtException</span> e){
+            System.out.println("exception caught:"+e);
+            System.out.println(e.getError());
+        }
+    }
+}
+</pre>
+    <p>There is not much to comment about it, it really is a straight mapping
+from the C API, the only points to notice are:</p>
+    <ul>
+      <li>the import of the modules in the <code><span style="color: #0071FF; background-color: #FFFFFF">org.libvirt</span></code> namespace</li>
+      <li>getting a connection to the hypervisor, in that case using the
+    readonly access to the default test hypervisor.</li>
+      <li>getting an object representing the test domain using <span style="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
+      <li>if the domain is not found a LibvirtError exception will be raised</li>
+      <li>extracting and printing some information about the domain using
+    various <span style="color: #E50073; background-color: #FFFFFF">methods</span>
+    associated to the Domain class.</li>
+    </ul>
+  </body>
+</html>