mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-05 04:25:19 +00:00
docs: Convert 'java' page to rST
Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
8ec0e9a800
commit
1b2477c674
@ -1,121 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<body>
|
|
||||||
<h1>Java API bindings</h1>
|
|
||||||
|
|
||||||
<h2>Presentation</h2>
|
|
||||||
<p>The Java bindings make use of <a href="https://jna.dev.java.net/">JNA</a>
|
|
||||||
to expose the C API in a Java friendly way. The bindings are based on
|
|
||||||
work initiated by Toth Istvan.</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="https://libvirt.org/sources/java/">libvirt.org HTTP server</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Maven</h3>
|
|
||||||
<p>A maven repository is located at <a href="https://libvirt.org/maven2/">https://libvirt.org/maven2/</a>
|
|
||||||
which you can use to include this in your maven projects.</p>
|
|
||||||
|
|
||||||
<h2>GIT source repository</h2>
|
|
||||||
<p> The Java bindings code source is now maintained in a <a
|
|
||||||
href="https://git-scm.com/">git</a> repository available on
|
|
||||||
<a href="https://gitlab.com/libvirt/libvirt-java/">gitlab.com</a>:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
git clone https://gitlab.com/libvirt/libvirt-java.git
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h2>Building</h2>
|
|
||||||
<p>The code is built using ant, and assumes that you have the jna jar installed. Once you have downloaded
|
|
||||||
the code you can build the code with</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
|
|
||||||
% cd libvirt-java
|
|
||||||
% ant build
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Content</h2>
|
|
||||||
<p>The bindings are articulated around a few
|
|
||||||
classes in the <code>org/libvirt</code> package, notably the
|
|
||||||
<code>Connect</code>, <code>Domain</code> and <code>Network</code>
|
|
||||||
ones. Functions in the <a href="html/index.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-domain.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
|
|
||||||
(virConnectPtr conn);</code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code>int <a href="html/libvirt-libvirt-domain.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="https://libvirt.org/sources/java/javadoc">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> package</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>
|
|
||||||
<h2>Maven</h2>
|
|
||||||
<p>Up until version 0.4.7 the Java bindings were available from the central maven repository.</p>
|
|
||||||
<p>If you want to use 0.4.8 or higher, please add the following repository to your pom.xml</p>
|
|
||||||
<pre><repositories>
|
|
||||||
<repository>
|
|
||||||
<id>libvirt-org</id>
|
|
||||||
<url>https://libvirt.org/maven2</url>
|
|
||||||
</repository>
|
|
||||||
</repositories></pre>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
128
docs/java.rst
Normal file
128
docs/java.rst
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
=================
|
||||||
|
Java API bindings
|
||||||
|
=================
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
Presentation
|
||||||
|
------------
|
||||||
|
|
||||||
|
The Java bindings make use of `JNA <https://jna.dev.java.net/>`__ to expose the
|
||||||
|
C API in a Java friendly way. The bindings are based on work initiated by Toth
|
||||||
|
Istvan.
|
||||||
|
|
||||||
|
Getting it
|
||||||
|
----------
|
||||||
|
|
||||||
|
The latest versions of the libvirt Java bindings can be downloaded from:
|
||||||
|
|
||||||
|
- `libvirt.org FTP server <ftp://libvirt.org/libvirt/java/>`__
|
||||||
|
- `libvirt.org HTTP server <https://libvirt.org/sources/java/>`__
|
||||||
|
|
||||||
|
A maven repository is located at https://libvirt.org/maven2/ which you can use
|
||||||
|
to include this in your maven projects.
|
||||||
|
|
||||||
|
GIT source repository
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The Java bindings code source is now maintained in a
|
||||||
|
`git <https://git-scm.com/>`__ repository available on
|
||||||
|
`gitlab.com <https://gitlab.com/libvirt/libvirt-java/>`__:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git clone https://gitlab.com/libvirt/libvirt-java.git
|
||||||
|
|
||||||
|
Building
|
||||||
|
--------
|
||||||
|
|
||||||
|
The code is built using ant, and assumes that you have the jna jar installed.
|
||||||
|
Once you have downloaded the code you can build the code with
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
|
||||||
|
% cd libvirt-java
|
||||||
|
% ant build
|
||||||
|
|
||||||
|
Content
|
||||||
|
-------
|
||||||
|
|
||||||
|
The bindings are articulated around a few classes in the ``org/libvirt``
|
||||||
|
package, notably the ``Connect``, ``Domain`` and ``Network`` ones. Functions in
|
||||||
|
the `C API <html/index.html>`__ taking ``virConnectPtr``, ``virDomainPtr`` or
|
||||||
|
``virNetworkPtr`` 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:
|
||||||
|
|
||||||
|
``int virConnectNumOfDomains (virConnectPtr conn);``
|
||||||
|
|
||||||
|
``int virDomainSetMaxMemory (virDomainPtr domain, unsigned long memory);``
|
||||||
|
|
||||||
|
become
|
||||||
|
|
||||||
|
``virConn.numOfDomains()``
|
||||||
|
|
||||||
|
``virDomain.setMaxMemory(long memory)``
|
||||||
|
|
||||||
|
There is of course some functions where the mapping is less direct and using
|
||||||
|
extra classes to map complex arguments. The
|
||||||
|
`Javadoc <https://libvirt.org/sources/java/javadoc>`__ is available online or as
|
||||||
|
part of a separate libvirt-java-javadoc package.
|
||||||
|
|
||||||
|
So let's look at a simple example inspired from the ``test.java`` test found in
|
||||||
|
``src`` in the source tree:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
import org.libvirt.*;
|
||||||
|
public class minitest {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Connect conn=null;
|
||||||
|
try{
|
||||||
|
conn = new Connect("test:///default", true);
|
||||||
|
} catch (LibvirtException e) {
|
||||||
|
System.out.println("exception caught:"+e);
|
||||||
|
System.out.println(e.getError());
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
Domain testDomain=conn.domainLookupByName("test");
|
||||||
|
System.out.println("Domain:" + testDomain.getName() + " id " +
|
||||||
|
testDomain.getID() + " running " +
|
||||||
|
testDomain.getOSType());
|
||||||
|
} catch (LibvirtException e) {
|
||||||
|
System.out.println("exception caught:"+e);
|
||||||
|
System.out.println(e.getError());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
There is not much to comment about it, it really is a straight mapping from the
|
||||||
|
C API, the only points to notice are:
|
||||||
|
|
||||||
|
- the import of the modules in the ``org.libvirt`` package
|
||||||
|
- getting a connection to the hypervisor, in that case using the readonly
|
||||||
|
access to the default test hypervisor.
|
||||||
|
- getting an object representing the test domain using ``lookupByName``
|
||||||
|
- if the domain is not found a LibvirtError exception will be raised
|
||||||
|
- extracting and printing some information about the domain using various
|
||||||
|
methods associated to the Domain class.
|
||||||
|
|
||||||
|
Maven
|
||||||
|
-----
|
||||||
|
|
||||||
|
Up until version 0.4.7 the Java bindings were available from the central maven
|
||||||
|
repository.
|
||||||
|
|
||||||
|
If you want to use 0.4.8 or higher, please add the following repository to your
|
||||||
|
pom.xml
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>libvirt-org</id>
|
||||||
|
<url>https://libvirt.org/maven2</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
@ -30,7 +30,6 @@ docs_html_in_files = [
|
|||||||
'formatstoragecaps',
|
'formatstoragecaps',
|
||||||
'index',
|
'index',
|
||||||
'internals',
|
'internals',
|
||||||
'java',
|
|
||||||
'logging',
|
'logging',
|
||||||
'php',
|
'php',
|
||||||
'python',
|
'python',
|
||||||
@ -92,6 +91,7 @@ docs_rst_files = [
|
|||||||
'governance',
|
'governance',
|
||||||
'hacking',
|
'hacking',
|
||||||
'hooks',
|
'hooks',
|
||||||
|
'java',
|
||||||
'libvirt-go',
|
'libvirt-go',
|
||||||
'libvirt-go-xml',
|
'libvirt-go-xml',
|
||||||
'macos',
|
'macos',
|
||||||
|
Loading…
Reference in New Issue
Block a user