ep:generate-main-eventflow
Full name:
com.tibco.ep:ep-maven-plugin:2.2.1:generate-main-eventflow
Description:
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.
Attributes:
- Requires a Maven project to be executed.
- The goal is not marked as thread-safe and thus does not support parallel builds.
- Binds by default to the lifecycle phase:
generate-sources.
Required Parameters
| Name | Type | Since | Description |
|---|---|---|---|
<configurationDirectory> |
File |
2.0.0 |
Additional resources directory for HOCON configurations This is added to the list of resource directories Example use in pom.xml: <configuration>
...
<configurationDirectory>${project.basedir}/src/main/confs</configurationDirectory>
...
</configuration>
Default: ${project.basedir}/src/main/configurations |
<testConfigurationDirectory> |
File |
2.0.0 |
Additional resources directory for test HOCON configurations This is added to the list of test resource directories Example use in pom.xml: <configuration>
...
<testConfigurationDirectory>${project.basedir}/src/main/confs</testConfigurationDirectory>
...
</configuration>
Default: ${project.basedir}/src/test/configurations |
Optional Parameters
| Name | Type | Since | Description |
|---|---|---|---|
<compilerPropertiesEntries> |
String[] |
2.0.0 |
The compiler properties used during EventFlow typecheck/build Example use in pom.xml: <configuration>
...
<compilerProperties>
<compilerProperty>streambase.runtime.stream-queue-timeout=1500</compilerProperties>
<compilerProperty>streambase.runtime.stream-queue-timeout-report-threshold=10</compilerProperties>
</compilerProperties>
...
</configuration>
Example use on commandline: mvn install -DcompilerProperties=streambase.runtime.stream-queue-timeout=1500,streambase.runtime.stream-queue-timeout-report-threshold=10 User Property: compilerProperties |
<eventflowDirectories> |
File[] |
2.0.0 |
The "main" EventFlow directories Default value is: ${project.basedir}/src/main/eventflow Example use in pom.xml: <configuration>
...
<eventflowDirectories>
<eventflowDirectory>${project.basedir}/src/main/eventflow</eventflowDirectory>
<eventflowDirectory>${project.basedir}/src/main/other</eventflowDirectory>
</eventflowDirectories>
...
</configuration>
Example use on commandline: mvn install -DeventflowDirectories=src/main/eventflow,src/main/other User Property: eventflowDirectories |
<failFast> |
Boolean |
- |
DEVELOPMENT ONLY, DO NOT USE. Default: falseUser Property: failFast |
<ignoreLeaks> |
String[] |
1.3.0 |
List of class names to ignore in leak detection. This is processed to a CSV value to include in unit testing and in jar manifest file. Example use in pom.xml: |
<productHome> |
File |
1.0.0 |
Product home location. This path is resolved in the following way :
Example use in pom.xml: Example use on commandline: User Property: com.tibco.ep.ep-maven.product |
<skipGenerateSources> |
Boolean |
- |
DEVELOPMENT ONLY, DO NOT USE. Default: falseUser Property: skipGenerateSources |
<testEventflowDirectories> |
File[] |
2.0.0 |
The "test" EventFlow directories Default value is: src/test/eventflow Example use in pom.xml: <configuration>
...
<testEventflowDirectories>
<testEventflowDirectory>${project.basedir}/src/test/eventflow</testEventflowDirectory>
<testEventflowDirectory>${project.basedir}/src/test/other</testEventflowDirectory>
</testEventflowDirectories>
...
</configuration>
Example use on commandline: mvn install -testEventflowDirectories=src/test/eventflow,src/test/other User Property: testEventflowDirectories |
Parameter Details
<compilerPropertiesEntries>
The compiler properties used during EventFlow typecheck/build
Example use in pom.xml:
<configuration>
...
<compilerProperties>
<compilerProperty>streambase.runtime.stream-queue-timeout=1500</compilerProperties>
<compilerProperty>streambase.runtime.stream-queue-timeout-report-threshold=10</compilerProperties>
</compilerProperties>
...
</configuration>
Example use on commandline:
mvn install -DcompilerProperties=streambase.runtime.stream-queue-timeout=1500,streambase.runtime.stream-queue-timeout-report-threshold=10
- Type:
java.lang.String[] - Since:
2.0.0 - Required:
No - User Property:
compilerProperties
<configurationDirectory>
Additional resources directory for HOCON configurations
This is added to the list of resource directories
Example use in pom.xml:
<configuration>
...
<configurationDirectory>${project.basedir}/src/main/confs</configurationDirectory>
...
</configuration>
- Type:
java.io.File - Since:
2.0.0 - Required:
Yes - Default:
${project.basedir}/src/main/configurations
<eventflowDirectories>
The "main" EventFlow directories
Default value is: ${project.basedir}/src/main/eventflow
Example use in pom.xml:
<configuration>
...
<eventflowDirectories>
<eventflowDirectory>${project.basedir}/src/main/eventflow</eventflowDirectory>
<eventflowDirectory>${project.basedir}/src/main/other</eventflowDirectory>
</eventflowDirectories>
...
</configuration>
Example use on commandline:
mvn install -DeventflowDirectories=src/main/eventflow,src/main/other
- Type:
java.io.File[] - Since:
2.0.0 - Required:
No - User Property:
eventflowDirectories
<failFast>
DEVELOPMENT ONLY, DO NOT USE.
- Type:
java.lang.Boolean - Required:
No - User Property:
failFast - Default:
false
<ignoreLeaks>
List of class names to ignore in leak detection. This is processed to a CSV value to include in unit testing and in jar manifest file.
Example use in pom.xml:
- Type:
java.lang.String[] - Since:
1.3.0 - Required:
No
<productHome>
Product home location. This path is resolved in the following way :
- If property com.tibco.ep.ep-maven.product is set, use that, else
- If environment variable TIBCO_EP_HOME is set, use that, else
- Use localrepository/../product-group/product-artifact/product-version (so default is ~/.m2/product-group/product-artifact/product-version)
Example use in pom.xml:
Example use on commandline:
- Type:
java.io.File - Since:
1.0.0 - Required:
No - User Property:
com.tibco.ep.ep-maven.product
<skipGenerateSources>
DEVELOPMENT ONLY, DO NOT USE.
- Type:
java.lang.Boolean - Required:
No - User Property:
skipGenerateSources - Default:
false
<testConfigurationDirectory>
Additional resources directory for test HOCON configurations
This is added to the list of test resource directories
Example use in pom.xml:
<configuration>
...
<testConfigurationDirectory>${project.basedir}/src/main/confs</testConfigurationDirectory>
...
</configuration>
- Type:
java.io.File - Since:
2.0.0 - Required:
Yes - Default:
${project.basedir}/src/test/configurations
<testEventflowDirectories>
The "test" EventFlow directories
Default value is: src/test/eventflow
Example use in pom.xml:
<configuration>
...
<testEventflowDirectories>
<testEventflowDirectory>${project.basedir}/src/test/eventflow</testEventflowDirectory>
<testEventflowDirectory>${project.basedir}/src/test/other</testEventflowDirectory>
</testEventflowDirectories>
...
</configuration>
Example use on commandline:
mvn install -testEventflowDirectories=src/test/eventflow,src/test/other
- Type:
java.io.File[] - Since:
2.0.0 - Required:
No - User Property:
testEventflowDirectories