By: Zachary Wentworth
The FlowJo® application’s new plugin framework makes developing a plugin simple. With several helper methods and some insight from the developer documentation, a useful plugin for the FlowJo application can be created relatively quickly.
I spent about two weeks developing a plugin that interfaces with an AWS S3 server to store workspaces. With this functionality, users can upload working backups of their workspace and share the workspace among other FlowJo users. Workspaces can be uploaded when saving as well as downloading the most recent version of the workspace from the server if they choose to do so when sharing a workspace among peers.
The development process began with meeting application scientists to create a requirements document that included concrete use cases for the plugin. Wireframes were generated to explore how the user interacts with the plugin. After the wireframes were created, all of the user interactions were written into the plugin’s functional spec. After all of the criteria were set, the actual engineering began, and it was nearly plug-and-play from that point.
Developing this plugin did not come without bumps in the road relating to both the AWS S3 SDK and how it interacts with Java, as well as how FlowJo handles third-party JAR dependencies. The AWS S3 library relies on several third-party JARs, which complicated some of the integration with the FlowJo plugin framework. However, creating these plugins gave us insight on how we can improve the plugin framework. As of FlowJo version 10.2, the plugin framework allows including the third party JARs within the Support folder within the Plugins folder, allowing developers to incorporate third-party JARs better when creating plugins for FlowJo.
The FlowJo AWS S3 can be found here:
The plugin documentation can be found here: