BusinessEvents Application POM File
In this version of 6.3.1, the performance has improved significantly due to lack of duplication. All the project build information is consolidated in a single source file called the Maven pom.xml file. A parent pom.xml is built-in with the BusinessEvents 6.3.1 installer in BE_HOME. This parent pom.xml inherits all the dependencies in BE_HOME/lib. Hence, every BusinessEvents project inherits the dependencies in BE_HOME.
The parent pom.xml specifies its parent as the following:
<parent> <groupId>com.tibco.cep.be </groupId> <artifactId>runtime</artifactId> <version>6.3.1</version> </parent>
In runtime pom.xml, the project property BE_HOME is set in the Properties section to resolve the file system paths. BE_HOME setup is not specific to any project and can be overridden by passing it as part of the mvn command. In this version of 6.3.1, the runtime pom.xml has all the build information with empty values. The project-specific pom.xml overrides the empty values with the properties relevant for a specific project.
For example, if there is no Docker configuration for a BE project, then the Docker registry configuration information is empty.
Therefore, in a CI/CD, the projects are built without changing the individual pom.xml.
You can edit the generated pom.xml file with the required parameters for building and deploying the BusinessEvents application.Third-Party JAR File Dependencies
During the BusinessEvents application pom.xml file generation, the third-party Java libraries found in the project are placed as standard Maven dependencies in the pom.xml file. One dependency entry is created for each JAR file found.
For example, if JUnit.jar is found in the project's build path, the following dependency is added to the pom.xml file:
<dependency> <groupId>com.tibco.be</groupId> <artifactId>junit</artifactId> <version>0.0.1</version> </dependency>
You can edit these dependencies depending on whether the JAR file is a standard JAR file or not. In the case of the standard JAR file, you can replace the dependency with a standard dependency or continue to use the generated dependency. For example:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
In the case of a custom JAR file, in addition to the dependency entry in the pom.xml file, install it to the local Maven (.m2) repository using the standard Maven command. For example, for a custom JAR file
myprojectjar.jar calls the
install phase and ensure that the
groupId,
artifactId and
version specified in the
install command are the same as the dependency in the pom.xml file or conversely.
mvn install:install-file -Dfile=/path/to/myprojectjar.jar -DgroupId=com.tibco.be -DartifactId=myprojectjar -Dversion=0.0.1 -Dpackaging=jar
In case the third-party Java library is not included in the project's build path, you manually add the dependency details (the
<dependency> tag) for the JAR file in the pom.xml file. After adding the dependency details for the JAR file in the pom.xml file, you must install the JAR file to the local
.m2 repository by using the Maven
install command. For example, for the JUnit test suit to work in the Maven
test phase, install the
junit.jar and the latest
org.hamcrest.core JAR files to the local
.m2 repository.
JDK Installation Location
If needed, you can also use your own JDK (or JRE containing
tools.jar) installation for Maven phase execution. By default, Maven uses the JRE installation path added to the system
PATH environment variable. You can override that path using the
pom.xml file. In the
pom.xml file, specify the JDK (or JRE containing
tools.jar) path in the
<jdkhome> element. The system then uses the
tools.jar file at the
<jdkhome> location for running Maven phases.
Project Libraries Dependencies
During the BusinessEvents application pom.xml file generation, the project libraries (.projlib) found in the BusinessEvents project build path are placed as standard Maven dependencies in the pom.xml file. One dependency entry is created for each project library file found. The
<type> tag specifies that this dependency is a project library.
For example:
<dependency> <groupId>com.tibco.be</groupId> <artifactId>myprojlib</artifactId> <version>0.0.1</version> <type>projlib</type> </dependency>
In addition to the dependency addition of the project library in the pom.xml file, install the project library in your Maven repository. You can use the BE_HOME/maven/bin/install-projlib utility to install the existing project library for the BusinessEvents project to your repository. See Installing The Project Library to Maven Repository for more details.
EAR File Location
To run the
compile phase, specify the location to store the generated EAR file for the BusinessEvents project using the
<earLocation> tag. The specified location is either a relative or an absolute path on the file system where the generated EAR file is placed. If the path starts with a forward slash (/) or a Windows drive (on the Windows platform), it is considered to be an absolute path. Otherwise, the path is relative to the folder containing the pom.xml file. In 6.3.1, the build process is independent of studio tools. This enables parallel execution of multiple projects, boosting the performance.
<earLocation> tag and not the custom EAR file name. The plug-in uses the combination of
artifactId and
version for the EAR file name.
Remote Deployment Repository
To run the
deploy phase, specify the remote deployment repository location in the pom.xml file using the
<distributionManagement> and
<repository> tags.
For example,
<distributionManagement>
<repository>
<id>central</id>
<name>be-releases</name>
<url>http://artifacts.tibco.com:8081/artifactory/be-releases</url>
</repository>
</distributionManagement>Also, create the $USER_HOME/.m2/settings.xml file for repository location and authorization. The content of a sample settings.xml file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servers>
<server>
<username>username</username>
<password>password</password>
<id>central</id>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<id>central</id>
<name>be-releases</name>
<url>http://artifacts.tibco.com:8081/artifactory/be-releases</url>
</repository>
</repositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>Project Library Build Location
To run the
build-project-lib phase, specify the location to store the generated project library (.projlib) file for the BusinessEvents project using the
<projLibLocation> tag in the pom.xml file. The specified location is either a relative or an absolute path on the file system where the generated project library (.projlib) file is placed. If the path starts with a forward slash (/) or a Windows drive (on the Windows platform), it is considered to be an absolute path. If not, the path is relative to the folder containing the pom.xml file.
Project Library Build Resources
If you require to include only certain project resources in the project library (.projlib) of your BusinessEvents project, specify those resources under the
<projLibResources> tag. Thus, when the
build-project-lib phase is run, only the project resources included in the
<projLibResources> tag are picked building the project library. Add one entry for each project resource that needs to be included in the project library. For example:
<projLibResources> <projLibResource>Concepts/Customer.concept</projLibResource> <projLibResource>Rules/getCustomer.rule</projLibResource> </projLibResources>