diff --git a/docker/dockerfile-with-git/.gitmodules b/docker/dockerfile-with-git/.gitmodules
new file mode 100644
index 0000000000..aa3911dfc3
--- /dev/null
+++ b/docker/dockerfile-with-git/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "project"]
+ path = project
+ url = https://github.com/eugenp/tutorials.git
+ branch = master
\ No newline at end of file
diff --git a/docker/dockerfile-with-git/Dockerfile b/docker/dockerfile-with-git/Dockerfile
new file mode 100644
index 0000000000..91dfee3bc6
--- /dev/null
+++ b/docker/dockerfile-with-git/Dockerfile
@@ -0,0 +1,13 @@
+ADD . /project/
+ADD /build/ /project/
+ADD /output/project.jar /project/
+
+ADD ssh-private-key /root/.ssh/id_rsa
+RUN git clone git@github.com:eugenp/tutorials.git
+
+ARG username=$GIT_USERNAME
+ARG password=$GIT_PASSWORD
+RUN git clone https://username:password@github.com:eugenp/tutorials.git
+
+VOLUME /build/ /project/
+
diff --git a/persistence-modules/spring-boot-persistence-h2/src/main/resources/application.yaml b/persistence-modules/spring-boot-persistence-h2/src/main/resources/application.yaml
new file mode 100644
index 0000000000..aeb33f797a
--- /dev/null
+++ b/persistence-modules/spring-boot-persistence-h2/src/main/resources/application.yaml
@@ -0,0 +1,14 @@
+spring:
+ h2:
+ console:
+ enabled: true
+ path: /h2-console
+ console.settings.trace: false
+ spring.h2.console.settings.web-allow-others: false
+ datasource:
+ url: jdbc:h2:mem:mydb
+ username: sa
+ password: password
+ driverClassName: org.h2.Driver
+ jpa:
+ spring.jpa.database-platform: org.hibernate.dialect.H2Dialect
diff --git a/rule-engines/evrete/pom.xml b/rule-engines/evrete/pom.xml
new file mode 100644
index 0000000000..819a912c43
--- /dev/null
+++ b/rule-engines/evrete/pom.xml
@@ -0,0 +1,35 @@
+
+
+ 4.0.0
+ com.baeldung.evrete
+ evrete
+ 1.0
+ evrete
+
+
+ 2.1.04
+
+
+
+ com.baeldung
+ rule-engines
+ 1.0.0-SNAPSHOT
+
+
+
+
+
+ org.evrete
+ evrete-core
+ ${evrete.version}
+
+
+
+ org.evrete
+ evrete-dsl-java
+ ${evrete.version}
+
+
+
\ No newline at end of file
diff --git a/rule-engines/evrete/src/main/java/com/baeldung/evrete/introduction/IntroductionAJR.java b/rule-engines/evrete/src/main/java/com/baeldung/evrete/introduction/IntroductionAJR.java
new file mode 100644
index 0000000000..287d083311
--- /dev/null
+++ b/rule-engines/evrete/src/main/java/com/baeldung/evrete/introduction/IntroductionAJR.java
@@ -0,0 +1,47 @@
+package com.baeldung.evrete.introduction;
+
+import com.baeldung.evrete.introduction.model.Customer;
+import com.baeldung.evrete.introduction.model.Invoice;
+import org.evrete.KnowledgeService;
+import org.evrete.api.Knowledge;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.*;
+
+public class IntroductionAJR {
+ public static void main(String[] args) throws IOException {
+ ClassLoader classLoader = IntroductionAJR.class.getClassLoader();
+ KnowledgeService service = new KnowledgeService();
+ URL rulesetUrl = classLoader.getResource("rules/SalesRuleset.java");
+ Knowledge knowledge = service.newKnowledge(
+ "JAVA-SOURCE",
+ rulesetUrl
+ );
+
+ List customers = Arrays.asList(
+ new Customer("Customer A"),
+ new Customer("Customer B"),
+ new Customer("Customer C")
+ );
+
+ Random random = new Random();
+ Collection