bonsai
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>com.phonepe.commons</groupId> <artifactId>bonsai</artifactId> <version>2.0.0</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <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.phonepe.commons</groupId> <artifactId>bonsai</artifactId> <packaging>pom</packaging> <version>2.0.0</version> <url>https://github.com/PhonePe/bonsai</url> <description>Bonsai Rule Engine</description> <inceptionYear>2025</inceptionYear> <scm> <connection>scm:git:https://github.com/PhonePe/bonsai.git</connection> <developerConnection>scm:git:https://github.com/PhonePe/bonsai.git</developerConnection> <tag>HEAD</tag> <url>https://github.com/PhonePe/bonsai.git</url> </scm> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> <comments>A business-friendly OSS license</comments> </license> </licenses> <developers> <developer> <id>Tushar-Naik</id> <name>Tushar Naik</name> <email>tushar.knaik@gmail.com</email> <roles> <role>owner</role> <role>developer</role> </roles> </developer> <developer> <id>suraj.s</id> <name>Suraj Singh</name> <email>suraj.s@phonepe.com</email> </developer> <developer> <id>chandrasekharpatra1</id> <name>Chandrasekhar Patra</name> <email>chandrasekharpatra1@gmail.com</email> </developer> <developer> <id>aditi.thakur</id> <name>Aditi Thakur</name> <email>aditi.thakur@phonepe.com</email> </developer> </developers> <issueManagement> <system>GitHub Issues</system> <url>https://github.com/PhonePe/bonsai/issues</url> </issueManagement> <ciManagement> <system>Travis CI</system> <url>https://travis-ci.org/PhonePe/bonsai</url> </ciManagement> <repositories> <repository> <id>clojars.org</id> <url>https://clojars.org/repo</url> </repository> <repository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <distributionManagement> <repository> <id>github</id> <name>GitHub PhonePe Apache Maven Packages</name> <url>https://maven.pkg.github.com/phonepe/bonsai</url> </repository> </distributionManagement> <modules> <module>bonsai-models</module> <module>bonsai-json-eval</module> <module>bonsai-core</module> <module>bonsai-conditions</module> </modules> <properties> <!--intellij module setting--> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <maven.compiler.release>17</maven.compiler.release> <maven.deploy.skip>false</maven.deploy.skip> <maven-javadoc-plugin.version>3.8.0</maven-javadoc-plugin.version> <maven.plugin.surefire.version>3.3.1</maven.plugin.surefire.version> <maven.plugin.enforcer.version>3.0.0-M2</maven.plugin.enforcer.version> <maven.plugin.jacoco.version>0.8.7</maven.plugin.jacoco.version> <maven.plugin.compiler.version>3.8.1</maven.plugin.compiler.version> <maven-javadoc-plugin.version>3.8.0</maven-javadoc-plugin.version> <maven.plugin.gpg.version>1.6</maven.plugin.gpg.version> <maven.plugin.source.version>3.3.0</maven.plugin.source.version> <maven.sonar.plugin.version>3.9.1.2184</maven.sonar.plugin.version> <!--lib versions--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <lombok.version>1.18.30</lombok.version> <mockito.version>2.28.2</mockito.version> <jackson.version>2.18.3</jackson.version> <hamcrest.all.version>1.3</hamcrest.all.version> <guava.version>33.4.0-jre</guava.version> <slf4j.version>1.7.25</slf4j.version> <query-dsl.version>2.0.3</query-dsl.version> <junit.jupiter.version>5.8.2</junit.jupiter.version> <junit.mockito.version>4.11.0</junit.mockito.version> <junit.wiremock.version>2.27.2</junit.wiremock.version> <!--sonar settings--> <sonar.projectKey>PhonePe_bonsai</sonar.projectKey> <sonar.organization>phonepe</sonar.organization> <sonar.host.url>https://sonarcloud.io</sonar.host.url> <sonar.sources>src/main</sonar.sources> <sonar.tests>src/test</sonar.tests> <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> <sonar.language>java</sonar.language> <sonar.qualitygate.wait>true</sonar.qualitygate.wait> <sonar.exclusions> </sonar.exclusions> <sonar.coverage.exclusions> **com/phonepe/commons/bonsai/models/** </sonar.coverage.exclusions> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.phonepe.commons</groupId> <artifactId>query-dsl</artifactId> <version>${query-dsl.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <version>${junit.mockito.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${junit.mockito.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-inline</artifactId> <version>${junit.mockito.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${maven.plugin.enforcer.version}</version> <executions> <execution> <id>no-duplicate-declared-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <banDuplicatePomDependencyVersions/> </rules> <fail>true</fail> </configuration> </execution> <execution> <id>enforce-no-snapshots</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireReleaseDeps> <message>No Snapshots Allowed!</message> </requireReleaseDeps> </rules> <fail>false</fail> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven.plugin.surefire.version}</version> <dependencies> <dependency> <groupId>me.fabriciorby</groupId> <artifactId>maven-surefire-junit5-tree-reporter</artifactId> <version>1.3.0</version> </dependency> </dependencies> <configuration> <reportFormat>plain</reportFormat> <consoleOutputReporter> <disable>true</disable> </consoleOutputReporter> <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter"> <printStacktraceOnError>true</printStacktraceOnError> <printStacktraceOnFailure>true</printStacktraceOnFailure> <printStdoutOnError>true</printStdoutOnError> <printStdoutOnFailure>true</printStdoutOnFailure> <printStdoutOnSuccess>false</printStdoutOnSuccess> <printStderrOnError>true</printStderrOnError> <printStderrOnFailure>true</printStderrOnFailure> <printStderrOnSuccess>false</printStderrOnSuccess> </statelessTestsetInfoReporter> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.7</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> <configuration> <excludes> <exclude>**com/phonepe/commons/bonsai/models/**</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven-plugin</artifactId> <version>1.18.20.0</version> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> </dependencies> <configuration> <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <outputDirectory>${delombok.output}</outputDirectory> <addOutputDirectory>false</addOutputDirectory> </configuration> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>delombok</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.plugin.compiler.version}</version> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${maven.plugin.source.version}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> <executions> <execution> <id>attach-javadocs</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <source>17</source> <sourcepath>target/generated-sources/delombok/</sourcepath> <doclint>none</doclint> </configuration> </plugin> <plugin> <groupId>org.openrewrite.maven</groupId> <artifactId>rewrite-maven-plugin</artifactId> <version>5.22.0</version> <configuration> <activeRecipes> <recipe>org.openrewrite.java.migrate.util.ReplaceStreamCollectWithToList</recipe> </activeRecipes> </configuration> <dependencies> <dependency> <groupId>org.openrewrite.recipe</groupId> <artifactId>rewrite-testing-frameworks</artifactId> <version>2.3.2</version> </dependency> <dependency> <groupId>org.openrewrite.recipe</groupId> <artifactId>rewrite-static-analysis</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>org.openrewrite.recipe</groupId> <artifactId>rewrite-migrate-java</artifactId> <version>2.8.0</version> </dependency> </dependencies> </plugin> </plugins> </build> <profiles> <profile> <id>lombok-needs-tools-jar</id> <activation> <file> <exists>${java.home}/../lib/tools.jar</exists> </file> </activation> <build> <plugins> <plugin> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven-plugin</artifactId> <version>1.16.10.0</version> <dependencies> <dependency> <groupId>sun.jdk</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency> </dependencies> </plugin> </plugins> </build> </profile> <profile> <id>central-release</id> <activation> <property> <name>release</name> <value>true</value> </property> </activation> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.sonatype.central</groupId> <artifactId>central-publishing-maven-plugin</artifactId> <version>0.5.0</version> <extensions>true</extensions> <configuration> <publishingServerId>ossrh</publishingServerId> <autoPublish>true</autoPublish> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> <configuration> <gpgArguments> <arg>--pinentry-mode</arg> <arg>loopback</arg> </gpgArguments> <passphrase>${env.MAVEN_GPG_PASSPHRASE}</passphrase> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>