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: false
User 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:

pom
<productHome> File 1.0.0

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:

pom

Example use on commandline:

pom
User Property: com.tibco.ep.ep-maven.product
<skipGenerateSources> Boolean -

DEVELOPMENT ONLY, DO NOT USE.


Default: false
User 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:

pom
  • 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:

pom

Example use on commandline:

pom
  • 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