ONAP depends on or has integration capabilities with the open source software projects or standards listed on this page.

The "Category" column may contain:

  • Component: something linked with ONAP. This includes frameworks, libraries
  • Database: a separate executable
  • Notation or Language
  • Tool: something used in the development process only, such as a Utility, Compiler

Project NameONAP ProjectsDescriptionLicenseCategory

A complete JavaScript-based front-end web application frameworkMITFramework (Component)

Bower is a package manager for web-based frameworks, libraries, utilities and other assetsBSDUtility (Tool)

BPEL (Business Process Execution Language) is an XML-based language that allows Web services in a service-oriented architecture (SOA) to interconnect and share data


Business Process Model and NotationN/ANotation


The Cask Data Application Platform (CDAP) is an open source project for distributed data and applications. CDAP is a layer of software running on top of Hadoop platformsApache 2.0Database Layer

Apache Cassandra is a distributed (NoSQL) database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Apache 2.0Database

Containerization (along with compose)

A business rules management system (BRMS) with a forward and backward chaining inference based rules engine, using an enhanced implementation of the Rete algorithm.ASL 2Component


Event and Error Logging Framework

in conjunction with the ELK stack (Elasticsearch, Logstash and Kibana)


Elastic Search
A search engine based on Apache Lucene, providing a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documentsApache 2.0Database

A web based code review and repository management for the Git version control system.Apache 2.0Tool

Distributed version control systemGPLv2Tool

A JavaScript task runner, a tool used to automatically perform frequently used tasks such as minification, compilation, unit testing, linting, etc. It uses a command-line interface to run custom tasks defined in a file (known as a Gruntfile)MIT


Apache Hadoop is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storageApache 2.0Database

Apache HBase is a distributed, versioned, non-relational database modeled after Google's Bigtable. HBase provides random, realtime read/write access to Big Data, especially hosting very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware.Apache 2.0Database

Hibernate (our JPA 2.0 provider ORM)


Java (v7 and 8)
Version 8 of the Java OpenJDK and run-timeGPLv2 with Classpath Exception. See OpenJDK Legal pagesLanguage / Platform

Provides a web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrationsEclipseTool

Java Persistence Architecture (JSR-317) - the specification level of the Object Relation Mapping layer.
Where EclipseLink is the RI and Hibernate is the JPA provider.


A simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.Eclipse Public License 1.0Test Framework (Tool)


1.8.10 Container orchestration



A data visualization plugin for Elasticsearch, providing visualization capabilities on top of the content indexed on an Elasticsearch clusterApache 2.0Plug-in (Component)

A community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPLGPLv2, LGPLv2Database

Apache Maven is a software project management and comprehension tool. Based on a project object model (POM), Maven can manage project build, reporting and documentation from a central piece of information.Apache 2.0Tool

A popular and widely deployed relational database management system (RDBMS)GPLv2Database

MySQL Connector/J
Provides connectivity for client applications developed in the Java programming language with MySQL Connector/J, a driver that implements the Java Database Connectivity (JDBC) API.GPLv2Database

A package manager for JavascriptArtistic License 2.0Tool

OpenStack Heat
The main project in the OpenStack Orchestration program, Heat implements an orchestration engine to launch multiple composite cloud applications based on templates.Apache 2.0Component

An object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliancePostgreSQL LicenseDatabase

An application framework and inversion of control container for the Java platform Apache 2.0Framework

An open source framework backed by a large ecosystem of tools that helps you design, build, document, and consume your RESTful APIs. The Swagger API specification has been renamed the OpenAPI Specification.

Apache 2.0


A testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to useApache 2.0Tool

Titan Graph DB
A scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. Apache 2.0Database

We use version 8 of this web container that implements version 3.1 of the Servlet spec JSR-340.
Web Container

Topology and Orchestration Specification for Cloud Applications (TOSCA), is an OASIS standard language to describe a topology of cloud based web services, their components, relationships, and the processes that manage them. The TOSCA standard includes specifications to describe processes that create or modify web services.N/A

Standard Language

ARIASO, Modeling, VNF SDKReference implementation of the TOSCA Simple Yaml Profile 1.0.Apache 2.0Component

A programming language developed and maintained by Microsoft, as a strict superset of JavaScript, adding optional static typing and class-based object-oriented programming to the language.Apache 2.0Language

A general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system (originated by Booch, Jacobson and Rumbaugh).

openstack-client SDKApache 2.0Component

A human-readable data serialization standard language (YAML Ain't Markup Language), used to implement Heat templates.Standard/MLMarkup Language

A data modeling language for the definition of data sent over the NETCONF network configuration protocolMultiple, by source directory. See ReadMe.mdStandard Language



Beijing SO workaround for Azure - https://github.com/onapdemo

  • No labels


  1. is these frameworks are used or these frame works are related to this project , the title of the p[age is saying something different to the description 

    1. Concerning the tools and test frameworks (Gerrit, git, maven, JUnit etc), these are used as part of the ONAP tool chain.

      Concerning the Databases (I;e. MariaDB, MySQL etc), these are not part of our ONAP Source Code deliverables but some ONAP components have been integrated with them.

      Concerning frameworks (i.e. AngularJS, Drools, Woorea, etc), these were integrated and delivered as part of the ONAP Source Code.

      ONAP is also integrated with OpenJDK

  2. Catherine: nice clarification, identifying frameworks used vs frameworks integrated & delivered. Consider whether "framework used" and "framework integrated" is needed in the Category column.

    I think OpenJDK is essentially the same as Java v8, shown in the list.

    See also: Required Tools.

  3. About the Oracle JDK/OpenJDK differences - Oracle(after the SUN acquire) incorporated the JRocket JVM (was separate default JVM for WebLogic) and JVisualVM/JRMC into the JDK.  The OpenJDK version does not ship with JMC or JVisualVM (diagnostic/instrumentation tools we could use) out of the box - it also is lacking some licensed Java EE internal optimizations we don't really require.