One major value proposition of FlexDeploy is its plugin architecture, and out of the box plugins. These plugins simplify the creation of workflows by replacing scripting with simple configuration. FlexDeploy provides plugins for Oracle Fusion Middleware, Oracle Cloud, Oracle E-Business Suite, and other Oracle and non-Oracle technologies. The list of plugins will continue to grow over time. But what if you have technologies that you wish to manage the build/deploy/test lifecycle, but FlexDeploy does not currently offer a supporting plugin? FlexDeploy covers this inevitable situation by providing low-level technology plugins such as Groovy, Unix Shell, and Windows Shell. If there is a Java or command-line interface available for a particular technology you can integrate it into FlexDeploy using just a bit of technical savvy.
As an example, let’s use the Unix Shell plugin to create a workflow for deploying an application to GlassFish. We will skip the build workflow since the out of the box plugins for JDeveloper or Maven will do the trick there. For the deploy workflow we will have the following steps.
- Undeploy the application
- Deploy the application
- Optionally restart the server
- Execute any tests defined on the target project
We will also need to create two workflow properties
- GLASSFISH_HOME (Environment Instance Scope) – Location of the GlassFish server installation.
- GLASSFISH_APPLICATION_NAME (Project Scope) – Name of the EAR artifact to deploy.
And lastly, to allow the user to select (at request time) whether to restart the server we will need one input, called RESTART_SERVER.
Creating the Workflow Properties
Creating the Workflow Input
Workflow Definition – Undeploy Application
Workflow Definition – Deploy Application
Workflow Definition – Restart Server
Low-level technology plugins, such as the Unix Shell Plugin used in this article, provide the ability to automate just about anything. Whether using the rich plugins that are provided out of the box, or getting down and dirty with scripting, the end result is having an automated solution which is fully integrated into the FlexDeploy build/deploy/test lifecycle.