formula-engine
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>com.salesforce.formula</groupId> <artifactId>formula-engine</artifactId> <version>0.9.4</version> </dependency>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.salesforce.formula</groupId> <artifactId>formula-engine</artifactId> <version>0.9.4</version> <name>Formula Engine</name> <description> Implementation of a formula engine in the "salesforce" style, which supports the standard force.com syntax, support for generation of sql and javascript, and extensibility for reuse as an email templating language. </description> <url>https://github.com/salesforce/formula-engine</url> <properties> <guava.version>31.1-jre</guava.version> <graalvm.version>22.3.0</graalvm.version> <embedded-postgres.version>2.0.1</embedded-postgres.version> <testcontainers.version>1.17.3</testcontainers.version> <jakarta.annotation.version>2.1.1</jakarta.annotation.version> <!-- If the coverage threshold for a project is not met, the build will warn if false and fail if true --> <coverage.failIfBelowThreshold>true</coverage.failIfBelowThreshold> <!-- When true, the build will fail if there are no tests present in a project --> <coverage.failIfNoTests>false</coverage.failIfNoTests> <!-- Each project can override this threshold --> <coverage.threshold>0.65</coverage.threshold> <coverage.skip>false</coverage.skip> <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version> <maven-assembly-plugin.version>3.2.0</maven-assembly-plugin.version> <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version> <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version> <maven-install-plugin.version>3.0.0-M1</maven-install-plugin.version> <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version> <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version> <maven-pmd-plugin.version>3.14.0</maven-pmd-plugin.version> <maven-release-plugin.version>3.0.0-M1</maven-release-plugin.version> <maven-source-plugin.version>3.2.1</maven-source-plugin.version> <maven-surefire-plugin.version>3.0.0-M3</maven-surefire-plugin.version> <maven-failsafe-plugin.version>3.0.0-M5</maven-failsafe-plugin.version> </properties> <packaging>pom</packaging> <modules> <module>api</module> <module>impl</module> <module>test-utils</module> <module>docs/coverage</module> </modules> <licenses> <license> <name>BSD 3-Clause</name> <url>file://${basedir}/LICENSE.txt</url> </license> </licenses> <organization> <name>Salesforce</name> <url>http://www.salesforce.com</url> </organization> <developers> <developer> <name>Steven Tamm</name> <roles> <role>Member</role> </roles> <email>formula-engine-oss@salesforce.com </email> <organization>Salesforce</organization> </developer> </developers> <scm> <connection>scm:git:https://github.com/salesforce/formula-engine.git</connection> <developerConnection>scm:git:https://github.com/salesforce/formula-engine.git</developerConnection> <url>https://github.com/salesforce/formula-engine</url> <tag>v0.9.4</tag> </scm> <dependencyManagement> <dependencies> <!-- This is an not a real optional dependency, you must include it --> <dependency> <groupId>com.salesforce.grammaticus</groupId> <artifactId>grammaticus</artifactId> <version>1.2.2</version> <optional>true</optional> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-complete</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> <version>4.5</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> </dependency> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>2.3.2</version> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>${jakarta.annotation.version}</version> </dependency> <!-- Embedded postgres validation --> <dependency> <groupId>io.zonky.test</groupId> <artifactId>embedded-postgres</artifactId> <version>${embedded-postgres.version}</version> </dependency> <!-- GraalJS impl --> <dependency> <groupId>org.graalvm.sdk</groupId> <artifactId>graal-sdk</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.js</groupId> <artifactId>js</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.regex</groupId> <artifactId>regex</artifactId> <version>${graalvm.version}</version> </dependency> <!-- For JSON Functions --> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.4.0</version> <optional>true</optional> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.13.4</version> <optional>true</optional> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.4</version> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.13.0</version> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${springframework.boot.version}</version> </plugin> <!-- build coverage error affter adding eclipse antlr generator <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.8</version> </plugin> --> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${maven-assembly-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>${maven-clean-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${maven-dependency-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${maven-enforcer-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>${maven-install-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${maven-jar-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> <configuration> <bottom>Copyright (c) 2004-2021, Salesforce.com, Inc. All rights reserved. Licensed under the BSD 3-Clause license. For full license text, see the LICENSE.txt file in the repository. </bottom> <doclint>none</doclint> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> <execution> <id>aggregate</id> <goals> <goal>aggregate</goal> </goals> <phase>site</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>${maven-release-plugin.version}</version> <configuration> <tagNameFormat>v@{project.version}</tagNameFormat> <autoVersionSubmodules>true</autoVersionSubmodules> <releaseProfiles>releases</releaseProfiles> <scmCommentPrefix>release: </scmCommentPrefix> </configuration> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.8</version> <extensions>true</extensions> <configuration> <serverId>sonatype-nexus-staging</serverId> <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${maven-source-plugin.version}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <!-- Runs the unit tests --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <failIfNoTests>${coverage.failIfNoTests}</failIfNoTests> <skip>${test.skipUnitTests}</skip> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${exec-maven-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>${maven-pmd-plugin.version}</version> <configuration> <rulesets> <ruleset>${project.parent.basedir}/pmd-ruleset.xml</ruleset> </rulesets> <excludeRoots> <excludeRoot>target/generated-sources</excludeRoot> </excludeRoots> <verbose>true</verbose> </configuration> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> <plugin> <!-- JaCoCo for Java code coverage metrics --> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <configuration> <skip>${coverage.skip}</skip> </configuration> <executions> <execution> <!-- Prepares a property pointing to the JaCoCo runtime agent that can be passed as a VM argument to the application under test. --> <id>prepare unit test JaCoCo runtime agent property</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <append>true</append> </configuration> <phase>initialize</phase> </execution> <execution> <!-- Create a code coverage report --> <id>create unit test code coverage report</id> <phase>verify</phase> <goals> <goal>report</goal> </goals> </execution> <execution> <!-- Verifies that code coverage thresholds are met, checking instruction coverage per bundle by default --> <id>check code coverage threshold</id> <goals> <goal>check</goal> </goals> <configuration> <haltOnFailure>${coverage.failIfBelowThreshold}</haltOnFailure> <rules> <rule> <limits> <limit> <minimum>${coverage.threshold}</minimum> </limit> </limits> </rule> </rules> </configuration> </execution> </executions> </plugin> <!-- temp to fix eclipse compiler error--> <!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>target/generated-sources/antlr</source> </sources> </configuration> </execution> </executions> </plugin> --> </plugins> </build> <profiles> <profile> <id>Code Coverage</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>coverage</name> </property> </activation> <modules> <module>coverage</module> </modules> <properties> <coverage.skip>false</coverage.skip> </properties> </profile> <!-- Include graaljs in the classpath on stock JDKs. --> <profile> <id>graaljs</id> <activation> <file> <!-- This may not be the best way to prove non-graal --> <missing>${java.home}/../bin/gu</missing> </file> </activation> <dependencies> <!-- Reinclude these to get the transitive dependencies and compile scope --> <dependency> <groupId>org.graalvm.sdk</groupId> <artifactId>graal-sdk</artifactId> <version>${graalvm.version}</version><!--$NO-MVN-MAN-VER$--> <scope>compile</scope> </dependency> <dependency> <groupId>org.graalvm.js</groupId> <artifactId>js</artifactId> <version>${graalvm.version}</version><!--$NO-MVN-MAN-VER$--> <scope>compile</scope> </dependency> <dependency> <groupId>org.graalvm.regex</groupId> <artifactId>regex</artifactId> <version>${graalvm.version}</version><!--$NO-MVN-MAN-VER$--> <scope>compile</scope> </dependency> <dependency> <groupId>org.graalvm.truffle</groupId> <artifactId>truffle-api</artifactId> <version>${graalvm.version}</version> <scope>compile</scope> </dependency> </dependencies> </profile> <profile> <id>sign-artifacts</id> <distributionManagement> <repository> <id>sonatype-nexus-staging</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> <snapshotRepository> <id>sonatype-nexus-staging</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement> <build> <plugins> <!-- Sign the artifacts --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <configuration> <!-- Prevent gpg from using pinentry programs --> <gpgArguments> <arg>--pinentry-mode</arg> <arg>loopback</arg> </gpgArguments> </configuration> <executions> <execution> <id>sign-artifacts</id> <goals> <goal>sign</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>releases</id> <build> <plugins> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.5.1</version> <executions> <execution> <id>default-deploy</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> <configuration> <serverId>sonatype-nexus-staging</serverId> <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> <stagingProgressTimeoutMinutes>15</stagingProgressTimeoutMinutes> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>db-tests</id> <modules> <module>api</module> <module>impl</module> <module>test-utils</module> <!-- Oracle tests run from within host --> <!--<module>oracle-test</module>--> <!-- <module>mysql-test</module> --> <!-- MYSQL tests having issues in handling regular expressions, so excluding these tests from maven build process--> <!-- These tests can be executed by using the "mysql" profile e.g. `mvn -P mysql clean verify -B` --> <!-- unable to connect to sqlserver on build server --> <!-- <module>sqlserver-test</module> --> <!-- <module>sqlite-test</module> --> <!-- <module>h2-test</module> --> <!-- Google spanner is having issues with connection in Jenkins, so excluding these tests from maven build process--> <!-- These tests can be executed by using the "google-spanner" profile e.g. `mvn -P google-spanner clean verify -B` --> <!-- <module>google-test</module> --> <!-- Running Presto is really slow, so comment it out as earlier --> <!-- <module>presto-test</module> --> <module>docs/coverage</module> </modules> </profile> <profile> <id>presto</id> <modules> <module>presto-test</module> </modules> </profile> <profile> <id>google-spanner</id> <modules> <module>google-test</module> </modules> </profile> <profile> <id>mysql</id> <modules> <module>mysql-test</module> </modules> </profile> </profiles> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.1.1</version> <configuration> <doclint>none</doclint> </configuration> </plugin> </plugins> </reporting> </project>