Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

YANG Tools is a infrastructure project aiming to develop necessary tool chain and libraries providing
support of NETCONF and YANG for Java(JVM-language based) projects and applications.

...

Its purpose is to take YANG models as input and produce Java source code.

This component does not dependent on any specific build frameworks (e.g. Buck, Maven, Ant) and it is deployable in a standalone JVM or OSGi framework environment.

...

For example, DataNode (the base type) allow an application to call a method to enumerate the String names of fields in the model and another method to get the DataNode associated with each of the fields by name.

Alternatively, applications also be able to cast the DataNode to its specific runtime type, where it can access each field via specific method and get specific types in return.

...

In a nutshell, the process takes a set of YANG files and compiles them into a set of Java classes along with the compiled schema metadata and packages them into a JAR, withmanifest with manifest annotated as an OSGi bundle and a single-jar ONOS application.

The original YANG files will be included as resources as well.

...

The runtime serves as a registry of various YANG models in the system and its primary purpose is serialization and deserialization from various external formats (XML, JSON, Kryo) and their internal Java representations (based on DataNode base-class).

...

Implementations of outward-facing protocols depend on the YANG runtime to serialize and deserialize their payloads and the dynamic Config subsystem will depend on the YANG runtime to serialize these objects for distribution and persistence.

...