Plugin Documentation
This report describes goals, parameters details, requirements and sample usage of this plugin.
Goals
Goals available for this plugin:
Goal | Description |
---|---|
ep:administer-nodes | Administer nodes Example use in pom.xml: |
ep:check-testcases | Check for test cases. If no test cases are found, testCasesFound property is set to true so that nodes are not started or stopped. |
ep:compile-eventflow-fragment | Compile EventFlow modules. Compilation includes copying the source files to the output directory. |
ep:compile-liveview-fragment | Compile LiveView. Compilation includes copying the source files to the output directory |
ep:deploy-fragment | Deploy an application fragment Example use in pom.xml: A liveview fragment requires fragmentType, target and project set: |
ep:generate-main-eventflow | Typecheck EventFlows and generate java sources The plugin will scan the configured EventFlow source directories and typecheck/build them in the dependency order, reporting any typecheck failure. It does not build the generated java sources, this is done using a standard maven compiler plugin execution. The plugin keeps track of individual SBAPP/SBINT dependencies and will trigger or skip a a rebuild accordingly. SBAPPs and SBINTs have public interfaces and private implementation details. The public interface is composed of anything that another SBAPP/SBINT can import. Schemas, Streams, QueryTable, Constants are part of the public interface. Everything else (Module operators, etc) is private. If an EventFlow A depends on another EventFlow B and A and B are in the same fragment, then, upon a change on B's public interface, the plugin will rebuild B, then A. Upon a change on B's implementation only, the plugin will only rebuild B. If an EventFlow A depends on another EventFlow B and A and B are in different fragments, the plugin will only trigger a rebuild of A if the rebuild of B has happened and is installed in the maven repository (i.e. if the fragment containing B has been rebuilt successfully). EventFlow builds are shared between Studio and the Maven command line. A fragment built using the command line will not get rebuilt by Studio and vice-versa. A Maven clean or the removal of the default *target* directory will force a rebuild on the next call. |
ep:generate-test-eventflow | Typecheck EventFlows and generate java sources The plugin will scan the configured EventFlow source and test directories and typecheck/build them in the dependency order, reporting any typecheck failure. It does not build the generated java sources, this is done using a standard maven compiler plugin execution. See |
ep:help | Display help information on ep-maven-plugin.
Call mvn ep:help -Ddetail=true -Dgoal=<goal-name> to display parameter details. |
ep:install-product | Install product zip and tgz artifacts if not already installed. This goal scans through the project dependencies and if a product zip or tgz artifact is not installed, it is installed into the $TIBCO_EP_HOME directory. Dependencies with scope provided are skipped. A markersDirectory is used to track if the artifact has already been installed - hence manually removing this directory will cause the artifacts to be re-installed. This directory is only created if there is a need to install an artifact. To detect a manual installation of the product, a file specified by productValidationFile is used. If this file exists, then the product installation is not attempted. If the plugin does install a zip, then an md5 sum of the original zip is saved - this allows installation of a newer version of the zip at a later time. This can happen with SNAPSHOTS. |
ep:package-application | Build an application zip archive. The packaging rules are as follows :-
The plexus archiver is used to create the archive via the maven assembly plugin. The generated filename is <artifactId>-<version>-ep-application.zip |
ep:package-eventflow-fragment | Build a EventFlow fragment zip archive. The packaging rules are as follows :-
The plexus archiver is used to create the archive via the maven assembly plugin. Native archives (nar) are included - in this case a mapping is included from the nar AOL values (http://maven-nar.github.io/aol.html) to internal values. The generated filename is <artifactId>-<version>-ep-eventflow-fragment.zip |
ep:package-java-fragment | Build a java fragment zip archive. The packaging rules are as follows :-
The plexus archiver is used to create the archive via the maven assembly plugin. Native archives (nar) are included - in this case a mapping is included from the nar AOL values (http://maven-nar.github.io/aol.html) to internal values. The generated filename is <artifactId>-<version>-ep-java-fragment.zip |
ep:package-liveview-fragment | Build a LiveView fragment The packaging rules are as follows :-
The plexus archiver is used to create the archive via the maven assembly plugin. Native archives (nar) are included - in this case a mapping is included from the nar AOL values (http://maven-nar.github.io/aol.html) to internal values. The generated filename is <artifactId>-<version>-ep-liveview-fragment.zip |
ep:package-sw-fragment | Build a Streaming Web flow fragment The packaging rules are as follows :-
The plexus archiver is used to create the archive via the maven assembly plugin. Native archives (nar) are included - in this case a mapping is included from the nar AOL values (http://maven-nar.github.io/aol.html) to internal values. The generated filename is <artifactId>-<version>-ep-sw-fragment.zip |
ep:set-resources | Set resources |
ep:start-nodes | Install and start nodes. Nodes are installed one at a time but started in parallel. If a node directory already exists, stop and remove nodes is called first. If the directory still exists, it is deleted. Example use in pom.xml: |
ep:stop-nodes | Stop and remove nodes. When executed in clean phase, any errors found will be logged but won't cause the build to fail. When executed in a phase other than clean, a stop failure will fail the build. |
ep:test-eventflow-fragment | Test a EventFlow fragment using sbunit. A java runner for surefire is created and deployed to the test nodes - this runner invokes surefire and hence junit to run the test cases. The java runner takes the configured reportsDirectory property and appends the node name - the node specific test report files are created in this directory. When all the test have finished, these node specific test reports are renamed into the configured reportsDirectory directory. The maven property jenkins.executionId.reportsDirectory is set so that jenkins can locate the test reports. Java assertions are always enabled. Options file is always ignored. The following system properties are set :
Nodes are terminated on unit test failure, unless skipStop is set. |
ep:test-java-fragment | Test a java fragment using junit and surefire. A java runner for surefire is created and deployed to the test nodes - this runner invokes surefire and hence junit to run the test cases. The java runner takes the configured reportsDirectory property and appends the node name - the node specific test report files are created in this directory. When all the test have finished, these node specific test reports are renamed into the configured reportsDirectory directory. The maven property jenkins.executionId.reportsDirectory is set so that jenkins can locate the test reports. Java assertions are always enabled. Options file is always ignored. The following system properties are set :
Nodes are terminated on unit test failure, unless skipStop is set. |
ep:test-liveview-fragment | Test a LiveView fragment using sbunit. A java runner for surefire is created and deployed to the test nodes - this runner invokes surefire and hence junit to run the test cases. The java runner takes the configured reportsDirectory property and appends the node name - the node specific test report files are created in this directory. When all the test have finished, these node specific test reports are renamed into the configured reportsDirectory directory. The maven property jenkins.executionId.reportsDirectory is set so that jenkins can locate the test reports. Java assertions are always enabled. Options file is always ignored. The following system properties are set :
Nodes are terminated on unit test failure, unless skipStop is set. |
ep:unpack-fragment | Unpack any fragment archives listed in dependences. Eventflow fragments are extracted into eventflow subdirectory of the build directory ( default target/eventflow ) so they are not included onto the fragment zip. Files are not overwritten. |
ep:unpack-nar | Unpack any nar (native archive) archives listed in dependences. Nar archives are extracted into the build nar directory and are included on the java library path when running unit tests and native libraries are included in the fragment. |
System Requirements
The following specifies the minimum requirements to run this Maven plugin:
Maven | 3.8.8 |
JDK | 17 |
System Requirements History
The following specifies the minimum requirements to run this Maven plugin for historical versions:
Plugin Version | Maven | JDK |
---|---|---|
2.2.1 | - | 17 |
Usage
You should specify the version in your project's plugin configuration:
<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>com.tibco.ep</groupId> <artifactId>ep-maven-plugin</artifactId> <version>2.2.1</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>com.tibco.ep</groupId> <artifactId>ep-maven-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
For more information, see "Guide to Configuring Plug-ins"