Difference between revisions of "Archived-JVPP"
Line 40: | Line 40: | ||
[https://wiki.fd.io/view/Honeycomb/Meeting Honeycomb 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 |
Revision as of 15:36, 20 March 2019
JVPP Facts |
Project Lead: Michal Cmarada
Repository: git clone https://gerrit.fd.io/r/jvpp |
Contents
Description
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.
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).
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.
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
Releases
19.04 - current master
- Work planned for release
- Milestones leading to the release