= release-notes-aggregator
-This module contains only release notes related documentation
\ No newline at end of file
+This module contains only release notes related documentation.
+
+Full release notes can be found at link:release_notes.html[Release Notes]
Honeycomb provides a maven archetype to generate a plugin skeleton. To use that archetype, run maven:
+[subs="+attributes"]
mvn -X archetype:generate -DarchetypeGroupId=io.fd.honeycomb.tools -DarchetypeArtifactId=honeycomb-plugin-archetype -DarchetypeVersion={project-version}
Fill in the parameters e.g.
+[subs="+attributes"]
groupId: io.fd.honeycomb.tutorial
artifactId: sample-plugin
version: {project-version}
Then create the pom:
-[source,xml]
+[source,xml,subs="+attributes"]
----
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
folder
The distribution can be started by:
+[subs="attributes"]
sudo ./sample-distribution/target/sample-distribution-{project-version}-hc/sample-distribution-{project-version}/honeycomb
-Note: honeycomb-start script is the background alternative
+
+NOTE: honeycomb-start script is the background alternative
Honeycomb will display following message in the log:
=== JVpp dependency
Another important thing that the plugin needs is dependency to VPP's JVpp (Java APIs). To do so, just update *-impl's pom.xml with:
-[source,xml]
+[source,xml,subs="+attributes"]
----
<!-- VPP's core Java APIs -->
<dependency>
Also add vpp-translate-utils dependency so that writing translation code is easier:
-[source,xml]
+[source,xml,subs="+attributes"]
----
<dependency>
<groupId>io.fd.honeycomb.vpp</groupId>
* clone honeycomb codebase (since that's the home of vpp-integration distribution)
* add a dependency for this sample plugin in vpp-integration distribution (honeycomb/vpp-integration/minimal-distribution/pom.xml):
-[source,xml]
+
+[source,xml,subs="+attributes"]
----
<dependency>
<groupId>io.fd.honeycomb.tutorial</groupId>
<version>{project-version}</version>
</dependency>
----
+
* modify Main of vpp-integration distribution to include sample-plugin (/home/mmarsale/Projects/honeycomb/vpp-integration/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/integration/distro/Main.java):
[source,java]
----
== Obtain the honeycomb source code
TIP: Make sure you have https://wiki.fd.io/view/DEV/Setting_up_Gerrit[registered your ssh key with gerrit].
+[subs="+attributes"]
git clone ssh://[username]@gerrit.fd.io:29418/honeycomb
cd honeycomb
git checkout {project-branch}
Install JVpp into local maven repository to make Honeycomb pick up the same JVpp version
+[subs="+attributes"]
cd build-vpp-native/vpp-api/java/
mvn install:install-file -Dfile=jvpp-registry-{project-vpp-version}.jar -DgroupId=io.fd.vpp -DartifactId=jvpp-registry -Dversion={project-vpp-snapshot-version} -Dpackaging=jar
mvn install:install-file -Dfile=jvpp-core-{project-vpp-version}.jar -DgroupId=io.fd.vpp -DartifactId=jvpp-core -Dversion={project-vpp-snapshot-version}-Dpackaging=jar
Now Honeycomb can be run with:
- sudo sh vpp-integration/minimal-distribution/target/vpp-integration-distribution-1.16.9-SNAPSHOT-hc/vpp-integration-distribution-1.16.9-SNAPSHOT/honeycomb
+[subs="+attributes"]
+ sudo sh vpp-integration/minimal-distribution/target/vpp-integration-distribution-{project-version}-hc/vpp-integration-distribution-{project-version}/honeycomb
=== Building packages
After the code has been built, you can build an RPM or DEB package for honeycomb.
* Honeycomb infra:
** {project-git-web}/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/config/honeycomb.json?h={project-branch}[Honeycomb base configuration]
* Honeycomb vpp plugins commons:
-** {project-git-web}/vpp-common/minimal-distribution/src/main/resources/honeycomb-minimal-resources/config/jvpp.json?h={project-branch}[VPP plugins common configuration]
+** {project-git-web}/vpp-common/vpp-common-integration/src/main/resources/honeycomb-minimal-resources/config/jvpp.json?h={project-branch}[VPP plugins common configuration]
* V3PO plugin:
** {project-git-web}/v3po/v3po2vpp/src/main/resources/honeycomb-minimal-resources/config/v3po.json?h={project-branch}[V3PO plugin for Honeycomb configuration]
* LISP plugin
== Starting Honeycomb agent
The zipped vpp-integration distribution can be started by invoking:
+[subs="+attributes"]
sudo ./vpp-integration-distribution-{project-version}/honeycomb
This will start Honeycomb with all ODL dependencies and VPP translation code. It will automatically initialize vpp-jvpp to create interface between VPP and Honeycomb.
====
Testing over RESTCONF is easier, and common calls can be found in this postman collection:
-*{project-git-web}/v3po/postman_rest_collection.json?h={project-branch}[V3PO postman collection][Honeycomb V3PO POSTMAN collection]*
+* {project-git-web}/v3po/postman_rest_collection.json?h={project-branch}[V3PO postman collection][Honeycomb V3PO POSTMAN collection]*
Each request in the collection contains equivalent VPP command (over CLI or VAT, whichever works) in the description.
====