Difference between revisions of "Archived-JVPP"

From fd.io
Jump to: navigation, search
m (Valderrv moved page JVPP to Archived-JVPP)
 
(5 intermediate revisions by 3 users not shown)
Line 14: Line 14:
  
 
== Description ==
 
== Description ==
 +
 +
=== Project Termination ===
 +
[[JVPP/Termination Review | JVPP/Termination Review]]
  
 
=== Architecture ===
 
=== Architecture ===
Line 36: Line 39:
 
<div align="center">JVppCore as an example of JVPP plugin architecture</div>
 
<div align="center">JVppCore as an example of JVPP plugin architecture</div>
 
Components marked with an asterisk (*) contain manually crafted code, which in addition to generated classes form jvpp. Exception applies to Callbacks and DTOs, since there are manually crafted marker interfaces in callback and dto package (dto/JVppRequest, dto/JVppReply, dto/JVppDump, dto/JVppReplyDump, callback/JVppCallback)
 
Components marked with an asterisk (*) contain manually crafted code, which in addition to generated classes form jvpp. Exception applies to Callbacks and DTOs, since there are manually crafted marker interfaces in callback and dto package (dto/JVppRequest, dto/JVppReply, dto/JVppDump, dto/JVppReplyDump, callback/JVppCallback)
 +
 +
== Meeting ==
 +
 +
[https://wiki.fd.io/view/Honeycomb/Meeting Honeycomb meeting]
 +
 +
== Releases ==
 +
 +
=== 19.04 - current master ===
 +
 +
'''[[JVPP/Release_Plans/Release_Plan_19.04| Release plan]]''':
 +
* Work planned for release
 +
* Milestones leading to the release
 +
 +
== Devel ==
 +
 +
[[JVPP/BranchCutting|HowTo: Cutting stable branches & version bumping]]

Latest revision as of 16:46, 5 February 2021

JVPP Facts

Project Lead: Michal Cmarada
Committers:

  • Michal Cmarada
  • Marek Grądzki
  • Tibor Kral
  • Rastislav Szabo
  • Jerome Tollet

Repository: git clone https://gerrit.fd.io/r/jvpp
Mailing List: JVPP-dev@lists.fd.io
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
Bugs: JVPP bugs

Description

Project Termination

JVPP/Termination Review

Architecture

JVPP is a VPP module providing Java APIs for VPP. Java APIs provide a way for a JVM application to access and manage VPP. Main use of JVPP is in Honeycomb project. Honeycomb relies heavily on JVPP to access and manage VPP.

JVPP contains of manually crafted code together with generated classes. Classes are being generated by python based on VPP API json files. Generated code represents various Java classes (Callbacks, callfacades, DTOs, types ...) and jni header files.

JVPP overview
Overview of JVPP usage

Plugin Support

VppRegistry opens connection to VPP (VppConnection) and manages JVPP plugins. Each plugin needs to be registered in the VppRegistry. Registration involves plugin initialization (providing JNI implementation with JVppCallback reference, VPP client identifier and VPP shared memory queue address).

Architecture of JVPP
JVPP - Architecture

API user sends message by calling a method of appropriate plugin interface. The call is delegated to JNI implementation provided by the particular plugin. When JNI code receives reply, it invokes callback method of JVppCallback that corresponds to the received message reply.

JVppCore as an example of JVPP plugin architecture
JVppCore as an example of JVPP plugin architecture

Components marked with an asterisk (*) contain manually crafted code, which in addition to generated classes form jvpp. Exception applies to Callbacks and DTOs, since there are manually crafted marker interfaces in callback and dto package (dto/JVppRequest, dto/JVppReply, dto/JVppDump, dto/JVppReplyDump, callback/JVppCallback)

Meeting

Honeycomb meeting

Releases

19.04 - current master

Release plan:

  • Work planned for release
  • Milestones leading to the release

Devel

HowTo: Cutting stable branches & version bumping