foundationdb/bindings/java
Xin Dong 636d2ca631
Merge pull request #1207 from alecgrieser/tuple-performance-cache-packed
Java: Tuple serialization/deserialization uses fewer allocations
2019-03-13 15:53:52 -07:00
..
src Merge pull request #1207 from alecgrieser/tuple-performance-cache-packed 2019-03-13 15:53:52 -07:00
CMakeLists.txt CMakeLists alphabetization and Javadoc improvements 2019-03-11 16:57:36 -07:00
README.md build fat-jar with packages 2019-02-15 00:01:42 -08:00
fdb-java-style.xml spaces to tabs 2018-04-09 19:03:47 -07:00
fdbJNI.cpp Resolves #1235: Java: FDBExceptions are created successful operation completion (#1236) 2019-03-06 18:34:36 -08:00
fdb_java.vcxproj Add missing definitions. 2019-03-11 17:49:03 -07:00
local.mk Remove ClusterOptions from generated sources in Java 2019-01-25 09:30:02 -08:00
pom.xml.in Modified the groupId to org.foundationdb 2018-05-17 12:53:57 -07:00
suppressions.xml added a style guide ; fixed errors found from the style guide ; updated tests to use java 8 closures 2017-12-13 16:16:31 -08:00

README.md

FoundationDB logo

FoundationDB is a distributed database designed to handle large volumes of structured data across clusters of commodity servers. It organizes data as an ordered key-value store and employs ACID transactions for all operations. It is especially well-suited for read/write workloads but also has excellent performance for write-intensive workloads. Users interact with the database using API language binding.

To learn more about FoundationDB, visit foundationdb.org

FoundationDB Java Bindings

In order to build the java bindings, JDK >= 8 has to be installed. CMake will try to find a JDK installation, if it can find one it will automatically build the java bindings.

If you have Java installed but cmake fails to find them, set the JAVA_HOMEenvironment variable.

Fat Jar

By default, the generated jar file will depend on an installed libfdb_java (provided with the generated RPM/DEB file on Linux). However, users usually find a Jar-file that contains this library more convenient. This is also what you will get if you download the jar file from Maven.

This file can be generated by compiling the packages target. For example with make, you can run:

make packages

Multi-Platform Jar-File

If you want to create a jar file that can run on more than one supported architecture (the offical one supports MacOS, Linux, and Windows), you can do that by executing the following steps:

  1. Create a directory called lib somewhere on your file system.
  2. Create a subdirectory for each additional platform you want to support (windows for windows, osx for MacOS, and linux for Linux).
  3. Under each of those create a subdirectory with the name of the architecture (currently only amd64 is supported - on MacOS this has to be called x86_64 - amd64 on all others).
  4. Set the cmake variable FAT_JAR_BINARIES to this lib directory. For example, if you created this directory structure under /foo/bar, the corresponding cmake command would be:
cmake -DFAT_JAR_BINARIES=/foo/bar/lib <PATH_TO_FDB_SOURCE>

After executing building the packages (with make packages or the packages target in Visual Studio) you will find a jar-file in the packages directory in your build directory.