UDX Development Process Overview
This topic provides a summary of the procedure for developing and deploying new user-defined extensions (UDX) created in either C++ or JVM environments.
- Familiarize yourself with the UDX interface, the extension point classes, input and output parameters, data members and methods defined in the
udx_api.hpp
include file (for C++ UDX development), or imported from thecom.cambridgesemantics.anzograph.udx
package (for JVM UDX development). For information about the UDX interface, see Reviewing UDX Interface Files. - Create the C++
.cpp
or JVM source files for a user-defined extension library. (Each source library file may contain one or more UDX functions, aggregates, or service extensions.)
For C++ environments, the udx_api.hpp include file provides a description of classes , data members, and methods available for C++ UDX development. For JVM environments, Graph Lakehouse provides two JAR files in the<install_path>/lib/jar
directory:- anzograph-udx-api-2.1.0 – Graph Lakehouse UDX Interface library.
- anzograph-udx-api-2.1.0-javadoc – Full HTML API documentation describing Graph Lakehouse JVM UDX interface library packages, classes, annotations, data members and methods.
- Add the required metadata statements to your UDX library source file so you can register the new UDXs in your source file as an extension library available in Graph Lakehouse. You may create one or more separate UDX or extension library files to register and use in Graph Lakehouse.
- Compile the UDX library source file into a shared object file for C++ based extension libraries or a JAR file for JVM-based extension libraries.
- Place the C++ shared object (
.so
) or JAR files, and any files or libraries the extensions are dependent on, in a pre-configured location on the Graph Lakehouse leader node of a server cluster. Each time Graph Lakehouse is started, the system loads the C++ shared object or JAR files and adds any registered extensions to the Graph Lakehouse registry.