From 1b2477c674127780ffe986b336415a0ebede1dff Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 10 Mar 2022 17:57:54 +0100 Subject: [PATCH] docs: Convert 'java' page to rST Signed-off-by: Peter Krempa Reviewed-by: Erik Skultety --- docs/java.html.in | 121 ------------------------------------------- docs/java.rst | 128 ++++++++++++++++++++++++++++++++++++++++++++++ docs/meson.build | 2 +- 3 files changed, 129 insertions(+), 122 deletions(-) delete mode 100644 docs/java.html.in create mode 100644 docs/java.rst diff --git a/docs/java.html.in b/docs/java.html.in deleted file mode 100644 index 1f8c255d26..0000000000 --- a/docs/java.html.in +++ /dev/null @@ -1,121 +0,0 @@ - - - - -

Java API bindings

- -

Presentation

-

The Java bindings make use of JNA - 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: -

- - - -

Maven

-

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 repository available on -gitlab.com: -

-
-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 -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 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>
- - - diff --git a/docs/java.rst b/docs/java.rst new file mode 100644 index 0000000000..df846c6fc6 --- /dev/null +++ b/docs/java.rst @@ -0,0 +1,128 @@ +================= +Java API bindings +================= + +.. contents:: + +Presentation +------------ + +The Java bindings make use of `JNA `__ 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 `__ +- `libvirt.org HTTP server `__ + +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 `__ repository available on +`gitlab.com `__: + +:: + + 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 `__ 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 `__ 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 + +:: + + + + libvirt-org + https://libvirt.org/maven2 + + diff --git a/docs/meson.build b/docs/meson.build index f1d42f8b96..1237458ac3 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -30,7 +30,6 @@ docs_html_in_files = [ 'formatstoragecaps', 'index', 'internals', - 'java', 'logging', 'php', 'python', @@ -92,6 +91,7 @@ docs_rst_files = [ 'governance', 'hacking', 'hooks', + 'java', 'libvirt-go', 'libvirt-go-xml', 'macos', -- 2.47.2