4. Plugin finished, deploy it in Abiquo

When the plugin is finished, deploy it in the Abiquo system. 

Create the jar with the plugin

This is an easy step, that you probably already know, but for completeness we will describe it anyway.

Go to your plugin main directory and build the plugin with maven:

Build plugin jar
mvn clean package
Build plugin jar output example
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.example:myownplugin:jar:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ com.abiquo:platform:4.0.4, /home/sergi/.m2/repository/com/abiquo/platform/4.0.4/platform-4.0.4.pom, line 2223, column 29
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Custom Abiquo Backup Plugin 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ myownplugin ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven) @ myownplugin ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myownplugin ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ myownplugin ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /tmp/mvn/myownplugin/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ myownplugin ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 9 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ myownplugin ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ myownplugin ---
[INFO] Surefire report directory: /tmp/mvn/myownplugin/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.248 sec - in TestSuite

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myownplugin ---
[INFO] Building jar: /tmp/mvn/myownplugin/target/myownplugin-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.808 s
[INFO] Finished at: 2017-11-23T18:36:59+01:00
[INFO] Final Memory: 24M/619M
[INFO] -----------------------------------------------------------------------

You will get the plugin jar in the target directory of your project

Plugin jar path view
target
├── classes
├── generated-sources
├── maven-archiver
├── maven-status
├── myownplugin-1.0-SNAPSHOT.jar
├── surefire-reports
└── test-classes

6 directories, 1 file


Place the plugin jar in Abiquo components

Once you have created the jar, place it in the Abiquo components that will use it.

That means in the three Tomcat webapps:

  • API
  • Virtual Factory
  • Cloud Provider Proxy

Keep in mind if you have a monolithic installation or a distributed one in order to don't forget any of your environments.

Then, follow the steps:

1. Stop tomcat
service abiquo-tomcat stop
2. Copy your jar to the tomcat webapps
cp myownplugin-1.0-SNAPSHOT.jar /opt/abiquo/tomcat/webapps/api/WEB-INF/lib/
cp myownplugin-1.0-SNAPSHOT.jar /opt/abiquo/tomcat/webapps/virtualfactory/WEB-INF/lib/
cp myownplugin-1.0-SNAPSHOT.jar /opt/abiquo/tomcat/webapps/cpp/WEB-INF/lib/
3. Start tomcat
service abiquo-tomcat start

When Tomcat starts, look at the logs for each webapp to check that your plugin has been loaded.

In api.log, virtualfactory.log and cpp.log there should be a line similar to the following, but with your plugin type.

Log line example
11:47:59.293 DEBUG c.a.c.plugin.AbstractPluginManager - Loaded plugin for type myownplugin

Request a license

You will need a license to run any plugin that is loaded in Abiquo.

So this means that custom plugins will also need a license.

So you should request a license for your plugin type.

Add it to Abiquo and enjoy your integration!

Copyright © 2006-2022, Abiquo Holdings SL. All rights reserved