Skip to content

Programming Languages


Egeria's runtime and clients are written in Java.

Java is a strongly-typed, compiled language. The resulting object code runs in a virtual machine called the Java Virtual Machine (JVM).

The JVM is supported on most operating systems and so Java programs can run with the same behavior on almost any machine. This portability of code is why Java is used for the Egeria runtime (the OMAG Server Platform) and the clients.

If you want to run Egeria you need to install the Java Runtime Environment (JRE). To build and test Egeria, you need the Java Development Kit (JDK) installed. The JDK also contains the runtime environment (JRE).

There are various JDK's available, and you may even have one pre-installed on your system.

Check for a pre-installed Java

java -version

Egeria requires Java 17 as a minimum level. Language constructs up to Java 17 are permitted, but not above. We use the Adoptium (formerly AdoptOpenJDK) distribution. Official images and maven artifacts are built with this level. Additionally, code must compile and run on the current latest Java release. This is validated before any code can be merged.

Java can be installed by:

  1. Downloading the OpenJDK 17 (LTS) HotSpot JVM from Adoptium .
  2. Running the installer that is downloaded.

Alternatively, JDK's may be found on your operating system install repositories or via third party tools like HomeBrew on MacOS.

Also, you must ensure JAVA_HOME is set, and pointing to a JDK. If this is not done, an error such as Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.1.1:jar (attach-javadocs) on project open-connector-framework: MavenReportException: Error while generating Javadoc: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set. will be seen as the Javadoc Maven plugin depends on this value to work correctly.


Python is an interpreted programming language. It is favored by data scientists and script-writers because it supports writing in snippets where variables can be created on the fly and are typically global.

Python is used in much of the educational material. For example, Egeria uses Python in the hands-on labs since it is the native language of the Jupyter Notebooks environment we use for the labs.


Markdown is a simple tagging language that generates HTML webpages. We use it for documentation (this page is written in Markdown for example), in GitHub comments and in the Jupyter Notebooks that form the teaching material for the hand-on labs.

GitHub provides a useful summary for Markdown and our own documentation guide provides Egeria-specific formatting and stylistic pointers, as well as further information on the system we use to translate such .md files into the website you are currently reading.

Raise an issue or comment below