diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..1d8d93fc
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,40 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+Dear @ivy-sgi, we have found the following bug: 
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000..32855071
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,22 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+Dear @ivy-sgi, it would be cool to have the following feature in the market place:
+ 
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 20f11744..82374537 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -11,19 +11,25 @@ on:
         type: string
         default: '-Divy.engine.download.url=https://dev.axonivy.com/permalink/nightly-10/axonivy-engine.zip'
         required: false
+      javaVersion:
+        type: number
+        default: 17
+      mvnVersion:
+        type: string
+        default: 3.6.3
       
 
 jobs:
   build:
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-latest
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
 
     - name: Setup Java JDK
-      uses: actions/setup-java@v3
+      uses: actions/setup-java@v4
       with:
-        java-version: 17
+        java-version: ${{ inputs.javaVersion || '17' }}
         distribution: temurin
 
     - name: Decide to deploy or not
@@ -44,8 +50,13 @@ jobs:
               "password": "${{ secrets.NEXUS_AXONIVY_COM_PASSWORD }}"
           }]
 
+    - name: Setup Maven
+      uses: stCarolas/setup-maven@v5
+      with:
+        maven-version: ${{ inputs.mvnVersion || '3.6.3' }}
+
     - name: Build with Maven
-      run: mvn clean ${{ steps.condval.outputs.value }} --batch-mode ${{ inputs.mvnArgs }}
+      run: mvn clean ${{ steps.condval.outputs.value }} --batch-mode --fail-at-end ${{ inputs.mvnArgs }}
 
     - name: Publish Unit Test Results
       uses: EnricoMi/publish-unit-test-result-action@v2
@@ -56,14 +67,15 @@ jobs:
           !*/target/*-reports/failsafe-summary.xml
 
     - name: Archive build artifact
-      uses: actions/upload-artifact@v3
+      uses: actions/upload-artifact@v4
       with:
         path: |
           */target/*.iar
+          */target/*-[0-9]*.jar
           *product/target/*.zip
 
     - name: Archive test reports
-      uses: actions/upload-artifact@v3
+      uses: actions/upload-artifact@v4
       if: failure()
       with:
         name: test-reports
diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml
index b1b3a7b7..7c8b09c8 100644
--- a/.github/workflows/dev.yml
+++ b/.github/workflows/dev.yml
@@ -11,5 +11,6 @@ jobs:
     uses: './.github/workflows/ci.yml'
     secrets: inherit
     with:
-      mvnArgs: '"-Divy.engine.download.url=https://dev.axonivy.com/permalink/dev/axonivy-engine.zip" "-Divy.engine.version=11.3.0" "-Dproject-build-plugin-version=11.3.0-SNAPSHOT" "-Dweb-tester.version=11.3.0-SNAPSHOT" -Dmaven.deploy.skip=true'
-
+      mvnArgs: '"-Divy.engine.download.url=https://dev.axonivy.com/permalink/dev/axonivy-engine.zip" "-Divy.engine.version=(10.0.0,]" "-Dproject.build.plugin.version=11.4.0-SNAPSHOT" "-Dtester.version=11.4.0-SNAPSHOT" "-Dselenide.version=7.0.3" -Dmaven.deploy.skip=true'
+      javaVersion: 21
+      mvnVersion: 3.9.8
diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml
new file mode 100644
index 00000000..9ec6a575
--- /dev/null
+++ b/.github/workflows/publish-release.yml
@@ -0,0 +1,18 @@
+name: Publish Release
+
+on:
+  push:
+    tags:
+      - "v*.*.*"
+
+permissions:
+  contents: write
+  pull-requests: read
+
+jobs:
+  build:
+    uses: axonivy-market/github-workflows/.github/workflows/publish-release.yml@v4
+    # The 'publish_release' input parameter is used to control whether the release should be published automatically.
+    # Uncomment and set to 'false' if you want to prevent the release from being published immediately.
+    # with:
+    #   publish_release: false
diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml
new file mode 100644
index 00000000..99bf6977
--- /dev/null
+++ b/.github/workflows/release-drafter.yml
@@ -0,0 +1,16 @@
+name: Release Drafter
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+    types: [opened, reopened, synchronize]
+
+permissions:
+  contents: write
+  pull-requests: write
+
+jobs:
+  build:
+    uses: axonivy-market/github-workflows/.github/workflows/release-drafter.yml@v4
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index bd6d7b04..0eddad9f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -5,17 +5,17 @@ on:
 
 jobs:
   build:
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-latest
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
 
     - name: Get branch name
       id: branch-name
-      uses: tj-actions/branch-names@v7.0.7
+      uses: tj-actions/branch-names@v8
 
     - name: Setup Java JDK
-      uses: actions/setup-java@v3
+      uses: actions/setup-java@v4
       with:
         java-version: 17
         distribution: temurin
diff --git a/.project b/.project
index d51add3b..022444b1 100644
--- a/.project
+++ b/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>com.axonivy.utils.docfactory</name>
+	<name>DocFactoryModules</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..ec0fe32a
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,24 @@
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone.
+As part of the Ricoh Group, Axon Ivy is guided by [The spirit of the three loves](https://www.ricoh.com/about/ricoh-way):
+
+- **Love your neighbor** 🤝  
+We love to get in touch with people and are willing to help others when we are aware of their issues and ideas. Everyone who participates as a user or contributor in this repository is our neighbor.
+
+- **Love your country** 🗺  
+We love the place we’re located at and enjoy the nature around us. We take care of the environment and are eager to learn from cultures around the globe.
+
+- **Love your work** 👷‍♂️  
+We are passionate developers, eager to work with new technologies, and are happy to be part of the digital transformation. We love to be creative at work and see our visions accomplished.
+
+## Our Guidelines
+
+This repository is intended to facilitate a friendly and inspiring exchange in which we focus on technical content.
+
+- Be friendly and patient.
+- Be welcoming.
+- Be considerate.
+- Be respectful.
+- Be careful in the words that you choose.
+- When we disagree, try to understand why.
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..1d4c06f7
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,25 @@
+## Reporting a Vulnerability
+
+At Axon Ivy, we take security seriously. If you believe you've found a security vulnerability in our software, we encourage you to let us know right away. We investigate all reported vulnerabilities promptly.
+
+To report a vulnerability, please send an email to [security@axonivy.com](mailto:security@axonivy.com) with the following information:
+
+- Description of the vulnerability
+- Steps to reproduce the vulnerability
+- Any additional information or context that may be helpful
+
+Please refrain from publicly disclosing the vulnerability until it has been addressed by our team.
+
+## Response Time
+
+We strive to respond to security vulnerability reports as quickly as possible. Upon receiving your report, we will acknowledge it within 72 hours and we will release a patch as soon as possible depending on complexity, but historically within a few days.
+Please report (suspected) security vulnerabilities at https://support.axonivy.com/.
+
+
+## Responsible Disclosure
+
+We encourage responsible disclosure of security vulnerabilities. We believe that working together with security researchers and the broader community helps us improve the security of our software for everyone.
+
+## Contact
+
+For any questions or concerns regarding security, please contact us at [security@axonivy.com](mailto:security@axonivy.com).
diff --git a/aspose-barcode-demo-product/README.md b/aspose-barcode-demo-product/README.md
index 7c1aa811..d3f5e1d7 100644
--- a/aspose-barcode-demo-product/README.md
+++ b/aspose-barcode-demo-product/README.md
@@ -2,4 +2,15 @@
 Aspose.Barcode is a powerful development library to generate & recognize barcodes. 
 The aspose-barcode.jar is not part of the aspose components included the Axon Ivy DocFactory but can be added to the project classpath via maven extension as shown in this demo.
 
-![Aspose.Barcode Demo](doc.png)
+## Demo
+
+With our demo for the connector we provide a simple UI for entering a string:
+![Aspose.Barcode UI](UI.png)
+
+By pressing **Proceed** this string is converted to a barcode:
+![Aspose.Barcode Demo](barcode.png)
+
+
+## Setup
+
+Simply install the marketplace connector - nothing else needs to be done :blush:
diff --git a/aspose-barcode-demo-product/README_DE.md b/aspose-barcode-demo-product/README_DE.md
new file mode 100644
index 00000000..6ecb8c0b
--- /dev/null
+++ b/aspose-barcode-demo-product/README_DE.md
@@ -0,0 +1,5 @@
+# Aspose.Barcode Demo
+
+Aspose.Barcode ist eine leistungsfähige Entwicklungsbibliothek zur Generierung und Erfassung von Barcodes. 
+
+Die `aspose-barcode.jar` ist nicht Bestandteil der aspose-Komponenten der AxonIvy-DocFactory. Sie kann aber, wie in dieser Demo gezeigt, über eine Maven-Erweiterung zum Projekt-`CLASSPATH` hinzugefügt werden.
diff --git a/aspose-barcode-demo-product/UI.png b/aspose-barcode-demo-product/UI.png
new file mode 100644
index 00000000..358052fa
Binary files /dev/null and b/aspose-barcode-demo-product/UI.png differ
diff --git a/aspose-barcode-demo-product/barcode.png b/aspose-barcode-demo-product/barcode.png
new file mode 100644
index 00000000..0fbbe3ae
Binary files /dev/null and b/aspose-barcode-demo-product/barcode.png differ
diff --git a/aspose-barcode-demo-product/pom.xml b/aspose-barcode-demo-product/pom.xml
index 4e495ab8..a39c2e97 100644
--- a/aspose-barcode-demo-product/pom.xml
+++ b/aspose-barcode-demo-product/pom.xml
@@ -3,7 +3,7 @@
 
   <groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>aspose-barcode-demo-product</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <build>
diff --git a/aspose-barcode-demo-product/zip.xml b/aspose-barcode-demo-product/zip.xml
index 30bf7964..30d830f4 100644
--- a/aspose-barcode-demo-product/zip.xml
+++ b/aspose-barcode-demo-product/zip.xml
@@ -11,7 +11,7 @@
             <directory>.</directory>
             <includes>
                 <include>product.json</include>
-                <include>README.md</include>
+                <include>README*.md</include>
                 <include>**/*.png</include>
             </includes>
         </fileSet>
diff --git a/aspose-barcode-demo-test/pom.xml b/aspose-barcode-demo-test/pom.xml
index f02eec02..2ad7b7f4 100644
--- a/aspose-barcode-demo-test/pom.xml
+++ b/aspose-barcode-demo-test/pom.xml
@@ -3,12 +3,12 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.axonivy.utils.docfactory</groupId>
 	<artifactId>aspose-barcode-demo-test</artifactId>
-	<version>10.0.11-SNAPSHOT</version>
+	<version>10.0.14-SNAPSHOT</version>
 	<packaging>iar-integration-test</packaging>
 
 	<properties>
-		<project-build-plugin-version>10.0.14</project-build-plugin-version>
-		<web-tester.version>10.0.14</web-tester.version>
+		<project.build.plugin.version>10.0.16</project.build.plugin.version>
+    <tester.version>10.0.16</tester.version>
 	</properties>
 
 	<dependencies>
@@ -21,7 +21,7 @@
 		<dependency>
 			<groupId>com.axonivy.ivy.webtest</groupId>
 			<artifactId>web-tester</artifactId>
-			<version>${web-tester.version}</version>
+			<version>${tester.version}</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
@@ -32,7 +32,7 @@
 			<plugin>
 				<groupId>com.axonivy.ivy.ci</groupId>
 				<artifactId>project-build-plugin</artifactId>
-				<version>${project-build-plugin-version}</version>
+				<version>${project.build.plugin.version}</version>
 				<extensions>true</extensions>
 			</plugin>
 		</plugins>
diff --git a/aspose-barcode-demo/pom.xml b/aspose-barcode-demo/pom.xml
index 85e2e0ab..392036fb 100644
--- a/aspose-barcode-demo/pom.xml
+++ b/aspose-barcode-demo/pom.xml
@@ -3,10 +3,10 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>aspose-barcode-demo</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>iar</packaging>
   <properties>
-    <project-build-plugin-version>10.0.14</project-build-plugin-version>
+    <project.build.plugin.version>10.0.16</project.build.plugin.version>
     <aspose.version>23.4</aspose.version>
   </properties>
   <dependencies>
@@ -39,7 +39,7 @@
       <plugin>
         <groupId>com.axonivy.ivy.ci</groupId>
         <artifactId>project-build-plugin</artifactId>
-        <version>${project-build-plugin-version}</version>
+        <version>${project.build.plugin.version}</version>
         <extensions>true</extensions>
       </plugin>
     </plugins>
diff --git a/aspose-email-demo-product/README.md b/aspose-email-demo-product/README.md
index bda45f63..3aae2929 100644
--- a/aspose-email-demo-product/README.md
+++ b/aspose-email-demo-product/README.md
@@ -1,5 +1,26 @@
 # Aspose.Email Demo
+
 Aspose.Email is a powerful library to create, manipulate and convert email formats including MSG, EML, EMLX and MHT without any Microsoft Outlook dependencies.
 The aspose-mail.jar is not part of the aspose components included the Axon Ivy DocFactory but can be added to the project classpath via maven extension as shown in this demo.
 
-![Aspose.Email Demo](doc.png)
+## Demo
+
+![Aspose.Email Demo](asposeemail0.png)
+
+
+When you start this demo, a UI opens:
+
+![Aspose.Email Demo](asposeemail1.png)
+
+Pushing the button "Create" will generate a `newEmail.msg` file, according to you input you have entered in the UI before.
+
+![Aspose.Email Demo](asposeemail2.png)
+
+The `newEmail.msg` file can be opened with Outlook
+
+![Aspose.Email Demo](asposeemail3.png)
+
+
+## Setup
+
+Simply install the marketplace connector - nothing else needs to be done :blush:
diff --git a/aspose-email-demo-product/README_DE.md b/aspose-email-demo-product/README_DE.md
new file mode 100644
index 00000000..7a4f2c2d
--- /dev/null
+++ b/aspose-email-demo-product/README_DE.md
@@ -0,0 +1,5 @@
+# Aspose.Email Demo
+
+Aspose.Email ist eine mächtige Bibliothek zum Erstellen, Bearbeiten und Konvertieren von E-Mail-Formaten wie MSG, EML, EMLX und MHT ohne Abhängigkeiten zu Microsoft Outlook. 
+
+Die `aspose-mail.jar` ist nicht Bestandteil der aspose-Komponenten der AxonIvy-DocFactory. Sie kann aber, wie in dieser Demo gezeigt, über eine Maven-Erweiterung zum Projekt-CLASSPATH hinzugefügt werden.
diff --git a/aspose-email-demo-product/asposeemail0.png b/aspose-email-demo-product/asposeemail0.png
new file mode 100644
index 00000000..605e0014
Binary files /dev/null and b/aspose-email-demo-product/asposeemail0.png differ
diff --git a/aspose-email-demo-product/asposeemail1.png b/aspose-email-demo-product/asposeemail1.png
new file mode 100644
index 00000000..3b520c75
Binary files /dev/null and b/aspose-email-demo-product/asposeemail1.png differ
diff --git a/aspose-email-demo-product/asposeemail2.png b/aspose-email-demo-product/asposeemail2.png
new file mode 100644
index 00000000..afcc0632
Binary files /dev/null and b/aspose-email-demo-product/asposeemail2.png differ
diff --git a/aspose-email-demo-product/asposeemail3.png b/aspose-email-demo-product/asposeemail3.png
new file mode 100644
index 00000000..2057fac8
Binary files /dev/null and b/aspose-email-demo-product/asposeemail3.png differ
diff --git a/aspose-email-demo-product/pom.xml b/aspose-email-demo-product/pom.xml
index c247e29e..99327b4b 100644
--- a/aspose-email-demo-product/pom.xml
+++ b/aspose-email-demo-product/pom.xml
@@ -3,7 +3,7 @@
 
   <groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>aspose-email-demo-product</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <build>
diff --git a/aspose-email-demo-product/zip.xml b/aspose-email-demo-product/zip.xml
index 30bf7964..30d830f4 100644
--- a/aspose-email-demo-product/zip.xml
+++ b/aspose-email-demo-product/zip.xml
@@ -11,7 +11,7 @@
             <directory>.</directory>
             <includes>
                 <include>product.json</include>
-                <include>README.md</include>
+                <include>README*.md</include>
                 <include>**/*.png</include>
             </includes>
         </fileSet>
diff --git a/aspose-email-demo-test/pom.xml b/aspose-email-demo-test/pom.xml
index 0a891041..e5b76aac 100644
--- a/aspose-email-demo-test/pom.xml
+++ b/aspose-email-demo-test/pom.xml
@@ -3,12 +3,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.axonivy.utils.docfactory</groupId>
 	<artifactId>aspose-email-demo-test</artifactId>
-	<version>10.0.11-SNAPSHOT</version>
+	<version>10.0.14-SNAPSHOT</version>
 	<packaging>iar-integration-test</packaging>
 
 	<properties>
-		<project-build-plugin-version>10.0.14</project-build-plugin-version>
-		<web-tester.version>10.0.14</web-tester.version>
+		<project.build.plugin.version>10.0.16</project.build.plugin.version>
+    <tester.version>10.0.16</tester.version>
+		<selenide.version>6.9.0</selenide.version>
 	</properties>
 
 	<dependencies>
@@ -21,7 +22,7 @@
 		<dependency>
 			<groupId>com.axonivy.ivy.webtest</groupId>
 			<artifactId>web-tester</artifactId>
-			<version>${web-tester.version}</version>
+			<version>${tester.version}</version>
 			<scope>test</scope>
 		</dependency>
 		<dependency>
@@ -33,7 +34,7 @@
 		<dependency>
 			<groupId>com.codeborne</groupId>
 			<artifactId>selenide-proxy</artifactId>
-			<version>6.9.0</version>
+			<version>${selenide.version}</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
@@ -44,7 +45,7 @@
 			<plugin>
 				<groupId>com.axonivy.ivy.ci</groupId>
 				<artifactId>project-build-plugin</artifactId>
-				<version>${project-build-plugin-version}</version>
+				<version>${project.build.plugin.version}</version>
 				<extensions>true</extensions>
 			</plugin>
 		</plugins>
diff --git a/aspose-email-demo/pom.xml b/aspose-email-demo/pom.xml
index 5e94a9bb..0eff486e 100644
--- a/aspose-email-demo/pom.xml
+++ b/aspose-email-demo/pom.xml
@@ -3,11 +3,11 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>aspose-email-demo</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>iar</packaging>
   <properties>
-    <project-build-plugin-version>10.0.14</project-build-plugin-version>
-    <aspose.version>23.4</aspose.version>
+    <project.build.plugin.version>10.0.16</project.build.plugin.version>
+    <aspose.version>24.3.1</aspose.version>
   </properties>
   <dependencies>
     <dependency>
@@ -40,7 +40,7 @@
       <plugin>
         <groupId>com.axonivy.ivy.ci</groupId>
         <artifactId>project-build-plugin</artifactId>
-        <version>${project-build-plugin-version}</version>
+        <version>${project.build.plugin.version}</version>
         <extensions>true</extensions>
       </plugin>
     </plugins>
diff --git a/doc-factory-demos-test/pom.xml b/doc-factory-demos-test/pom.xml
index 11050536..328ee5aa 100644
--- a/doc-factory-demos-test/pom.xml
+++ b/doc-factory-demos-test/pom.xml
@@ -3,12 +3,13 @@
 
 	<groupId>com.axonivy.utils.docfactory</groupId>
 	<artifactId>doc-factory-demos-test</artifactId>
-	<version>10.0.11-SNAPSHOT</version>
+	<version>10.0.14-SNAPSHOT</version>
 	<packaging>iar-integration-test</packaging>
 
 	<properties>
-		<project-build-plugin-version>10.0.14</project-build-plugin-version>
-		<web-tester.version>10.0.14</web-tester.version>
+		<project.build.plugin.version>10.0.16</project.build.plugin.version>
+    <tester.version>10.0.16</tester.version>
+		<selenide.version>6.9.0</selenide.version>
 	</properties>
 
 	<dependencies>
@@ -21,13 +22,13 @@
 		<dependency>
 			<groupId>com.axonivy.ivy.webtest</groupId>
 			<artifactId>web-tester</artifactId>
-			<version>${web-tester.version}</version>
+			<version>${tester.version}</version>
 		 	<scope>test</scope>
  		</dependency>
  		<dependency>
 			<groupId>com.codeborne</groupId>
 			<artifactId>selenide-proxy</artifactId>
-			<version>6.9.0</version>
+			<version>${selenide.version}</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
@@ -40,7 +41,7 @@
 			<plugin>
 				<groupId>com.axonivy.ivy.ci</groupId>
 				<artifactId>project-build-plugin</artifactId>
-				<version>${project-build-plugin-version}</version>
+				<version>${project.build.plugin.version}</version>
 				<extensions>true</extensions>
 				<configuration>
 					<deployToEngineApplication>doc-factory</deployToEngineApplication>
diff --git a/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestApiExamplesIT.java b/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestApiExamplesIT.java
index 2eef2391..e981d2f1 100644
--- a/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestApiExamplesIT.java
+++ b/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestApiExamplesIT.java
@@ -7,7 +7,6 @@
 import static com.codeborne.selenide.Selenide.open;
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.FileNotFoundException;
 import java.nio.file.Path;
 
 import org.junit.jupiter.api.BeforeAll;
@@ -21,6 +20,7 @@
 import com.codeborne.selenide.Configuration;
 import com.codeborne.selenide.FileDownloadMode;
 import com.codeborne.selenide.Selenide;
+import com.codeborne.selenide.SelenideElement;
 
 @IvyWebTest
 class WebTestApiExamplesIT {
@@ -60,7 +60,7 @@ void docWithNestedTablesHTML() throws Exception {
   }
 
   @Test
-  void zipMultipleDocuments() throws FileNotFoundException {
+  void zipMultipleDocuments() throws Exception {
     open(EngineUrl.createProcessUrl("/DocFactoryDemos/16CD7829EF6B489B/start2.ivp"));
     var doc = Selenide.$$("button").find(exactText("Create Multiple Formats")).shouldBe(visible).download();
     assertThat(doc).hasName("Documents.zip");
@@ -80,13 +80,17 @@ void ivyDocApi(WebAppFixture fixture) {
     $(withText("Task End")).shouldBe(visible);
 
     open(EngineUrl.create().path("tasks").toUrl());
-    $(By.linkText("Task: View attached document")).shouldBe(visible).click();
+    $(By.id("tasksForm:tasks:0:taskName")).shouldBe(visible).click();
+    SelenideElement taskStartBtn = $(By.id("actionMenuForm:taskStartBtn"));
+    if (taskStartBtn.isDisplayed()) {
+    	taskStartBtn.shouldBe(visible).click();
+    }
     Selenide.switchTo().frame("iFrame");
     $("h3").shouldHave(exactText("DocFactoryDemos: Attached Document"));
     $("iframe").shouldBe(visible);
   }
 
-  private void assertDownload(String process, String expectedFileName) throws FileNotFoundException {
+  private void assertDownload(String process, String expectedFileName) throws Exception {
     open(EngineUrl.createProcessUrl(DOC_DEMOS_BASE + process));
     var doc = $("#docLink").shouldBe(visible).download();
     assertThat(doc).hasName(expectedFileName);
diff --git a/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestSubprocessExamplesIT.java b/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestSubprocessExamplesIT.java
index 9327e50e..6e6ed8c0 100644
--- a/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestSubprocessExamplesIT.java
+++ b/doc-factory-demos-test/src_test/com/axon/docfactory/demos/WebTestSubprocessExamplesIT.java
@@ -5,7 +5,6 @@
 import static com.codeborne.selenide.Selenide.open;
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.FileNotFoundException;
 import java.nio.file.Path;
 import java.time.Duration;
 
@@ -62,11 +61,11 @@ void docWithNestedObject() throws Exception {
     assertDownload("start6.ivp", "DocWithNestedObject.pdf");
   }
 
-  private void assertDownload(String process, String expectedFileName) throws FileNotFoundException {
+  private void assertDownload(String process, String expectedFileName) throws Exception {
     open(EngineUrl.createProcessUrl(DOC_DEMOS_BASE + process));
     var doc = $("#docLink").shouldBe(visible).download(DownloadOptions.using(FileDownloadMode.PROXY)
             .withTimeout(Duration.ofSeconds(10))
-            .withFilter(FileFilters.withName(expectedFileName))); 
+            .withFilter(FileFilters.withName(expectedFileName)));
 
     assertThat(doc).hasName(expectedFileName);
     assertThat(doc.length() / 1024).isGreaterThan(15);
diff --git a/doc-factory-demos/pom.xml b/doc-factory-demos/pom.xml
index d16c1cf9..7ba69263 100644
--- a/doc-factory-demos/pom.xml
+++ b/doc-factory-demos/pom.xml
@@ -3,11 +3,11 @@
 
 	<groupId>com.axonivy.utils.docfactory</groupId>
 	<artifactId>doc-factory-demos</artifactId>
-	<version>10.0.11-SNAPSHOT</version>
+	<version>10.0.14-SNAPSHOT</version>
 	<packaging>iar</packaging>
 
 	<properties>
-		<project-build-plugin-version>10.0.14</project-build-plugin-version>
+		<project.build.plugin.version>10.0.16</project.build.plugin.version>
 	</properties>
 
 	<repositories>
@@ -15,6 +15,13 @@
 			<id>aspose.com</id>
 			<url>https://repository.aspose.com/repo</url>
 		</repository>
+		<repository>
+      <id>sonatype</id>
+      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+      <snapshots>
+        <updatePolicy>always</updatePolicy>
+      </snapshots>
+    </repository>
 	</repositories>
 
 	<dependencies>
@@ -31,7 +38,7 @@
 			<plugin>
 				<groupId>com.axonivy.ivy.ci</groupId>
 				<artifactId>project-build-plugin</artifactId>
-				<version>${project-build-plugin-version}</version>
+				<version>${project.build.plugin.version}</version>
 				<extensions>true</extensions>
 			</plugin>
 		</plugins>
diff --git a/doc-factory-doc/pom.xml b/doc-factory-doc/pom.xml
index f44a47e4..03ea1dd5 100644
--- a/doc-factory-doc/pom.xml
+++ b/doc-factory-doc/pom.xml
@@ -4,7 +4,7 @@
 	<groupId>com.axonivy.utils.docfactory</groupId>
 	<artifactId>doc-factory-doc</artifactId>
 	<packaging>pom</packaging>
-	<version>10.0.11-SNAPSHOT</version>
+	<version>10.0.14-SNAPSHOT</version>
 	<name>Doc Factory</name>
 
 	<build>
diff --git a/doc-factory-doc/source/doc-factory/callable-processes.rst b/doc-factory-doc/source/doc-factory/callable-processes.rst
index 9f1bc8cc..9b6f70d3 100644
--- a/doc-factory-doc/source/doc-factory/callable-processes.rst
+++ b/doc-factory-doc/source/doc-factory/callable-processes.rst
@@ -163,13 +163,13 @@ process file:
 
 The second one (writeDocumentWithOneDataClass) allows writing a single document
 with a template by providing a **CompositeObject (DataClass)**. Here is the
-description of this callable that you can find in the |ivy| process file:
+description of this callable that you can find in the Axon Ivy process file:
 
 .. figure:: /_static/images/callable-processes-3.png
 
 Other ones (writeDocumentWithMailMergeTable) allow writing a single document
 with a template that can contain merge mail with regions (tables). Here is the
-description of this callable that you can find in the |ivy| process file:
+description of this callable that you can find in the Axon Ivy process file:
 
 .. figure:: /_static/images/callable-processes-4.png
 
@@ -195,6 +195,6 @@ than one document with a list of **DocumentTemplate** objects. Each
 regions and mail merge with nested regions are now supported, because the
 DocumentTemplate Object encapsulates the necessary parameters to perform such
 merges (:ref:`DocumentTemplate <df-callable-processes-document-template>`). Here
-is the description of this callable that you can find in the |ivy| process file:
+is the description of this callable that you can find in the Axon Ivy process file:
 
 .. figure:: /_static/images/callable-processes-2.png
\ No newline at end of file
diff --git a/doc-factory-doc/source/doc-factory/demos.rst b/doc-factory-doc/source/doc-factory/demos.rst
index 8be8f06c..d0b356b4 100644
--- a/doc-factory-doc/source/doc-factory/demos.rst
+++ b/doc-factory-doc/source/doc-factory/demos.rst
@@ -1,6 +1,6 @@
 Demos
 =====
 
-In the DocFactoryDemos Project included in the DocFactory |ivy| Market artifact
-that is available in the |ivy-designer| Ivy Project Import, you will find
+In the DocFactoryDemos Project included in the DocFactory Axon Ivy Market artifact
+that is available in the Axon Ivy Designer Ivy Project Import, you will find
 several hands-on examples showing how to create documents with the DocFactory.  
diff --git a/doc-factory-doc/source/doc-factory/doc-factory-object.rst b/doc-factory-doc/source/doc-factory/doc-factory-object.rst
index c0abb627..6d1488ac 100644
--- a/doc-factory-doc/source/doc-factory/doc-factory-object.rst
+++ b/doc-factory-doc/source/doc-factory/doc-factory-object.rst
@@ -3,7 +3,7 @@
 Document Factory Object
 =======================
 
-We implemented the |ivy| DocFactory Object based on the commercial
+We implemented the Axon Ivy DocFactory Object based on the commercial
 Aspose Java API. To be able to allow developing other Document Factories that
 work the same way as this one, a DocFactory implementation should always
 extend the abstract class
@@ -21,7 +21,7 @@ public static method :code:`BaseDocFactory.getInstance()` returns such an
 object.
 
 Suppose you want to use your own implementation class of the **BaseDocFactory**.
-In that case, you have to set a special Java system property on the |ivy-engine|
+In that case, you have to set a special Java system property on the Axon Ivy Engine
 named **document.factory**. Its value is the fully qualified name of your
 DocFactory class, e.g., :code:`com.acme.docfactory.MyDocFactory`. The
 :code:`getInstance()` method of the **BaseDocFactory** will then return an
@@ -30,3 +30,12 @@ instance of your document factory class.
 .. tip::
    For more information about the methods of the BaseDocFactory, please refer to its **JavaDoc**.
 
+.. tip::
+   If you use Aspose libraries delivered with the Axon Ivy Platform outside of the
+   AsposeDocFactory, then you have to load the licenses for each product used.
+   See :file:DocumentCreator.java in the DocFactory examples.
+
+.. tip::
+   If you use Aspose libraries **not** packaged with the Axon Ivy Platform, then you
+   have to add the packages and load the appropriate license for each product used. 
+   See :file:IvyAsposeBarcoder.java in aspose-barcode-demo.
\ No newline at end of file
diff --git a/doc-factory-doc/source/doc-factory/mail-merging.rst b/doc-factory-doc/source/doc-factory/mail-merging.rst
index 2f83b36a..e34cc011 100644
--- a/doc-factory-doc/source/doc-factory/mail-merging.rst
+++ b/doc-factory-doc/source/doc-factory/mail-merging.rst
@@ -110,7 +110,7 @@ regions and merge regions in general:
      in the same row as the first cell.
    * The names of the columns in the DataTable must match the merge field name.
      Unless you have specified mapped fields the merge will not be successful
-     for those fields whose names are different. In the |ivy| Implementation of
+     for those fields whose names are different. In the Axon Ivy Implementation of
      this feature we use the Dataclasses Class names as TableStart names and the
      Dataclasses attributes names as mergefields names (more information
      :ref:`here <mail-merge-nested-mapping>`).
@@ -127,7 +127,7 @@ The following picture shows the result of the mail merge with regions:
 
 .. _mail-merge-nested-mapping:
 
-The previous nested mail merge has been made by using List of |ivy| DataClasses
+The previous nested mail merge has been made by using List of Axon Ivy DataClasses
 built as follows:
 
 .. figure:: /_static/images/mail-merge-nested-4.png
diff --git a/doc-factory-doc/source/index.rst b/doc-factory-doc/source/index.rst
index 77c2c3ff..e341db34 100644
--- a/doc-factory-doc/source/index.rst
+++ b/doc-factory-doc/source/index.rst
@@ -7,17 +7,19 @@ merge letters with the help of Microsoft Office Templates (:file:`.dot` or
 
 You can extend the DocFactory to cover your project requirements. At the
 moment, it is implemented with the commercial Java Library `Aspose
-<https://www.aspose.com>`_ that we ship with the |ivy| Platform.
+<https://www.aspose.com>`_ that we ship with the Axon Ivy Platform.
 
 .. tip::
 
    The DocFactory currently bundles the modules aspose-words, aspose-cells,
    aspose-pdf, aspose-slides. There are additional Aspose modules such as
-   aspose-barcode, aspose-ocr, aspose-diagram, that you can use in |ivy|. You
+   aspose-barcode, aspose-ocr, aspose-diagram, that you can use in Axon Ivy. You
    have to add these modules from the `Aspose repository
-   <https://repository.aspose.com/repo/com/aspose/>`_ to your |ivy| project and
+   <https://repository.aspose.com/repo/com/aspose/>`_ to your Axon Ivy project and
    call the Java API. You can find the complete documentation on the Aspose
    website at `Aspose <https://www.aspose.com>`_. 
+   For correct license handling, kindly refer to the tips given in 
+   :ref:`DocFactory Object <df-doc-factory-object>`
 
 Microsoft Office templates contain fixed text and dynamic merge fields. A merge
 field is a placeholder for text information. Each merge field has a name and
diff --git a/doc-factory-product/pom.xml b/doc-factory-product/pom.xml
index f97811e1..0228592b 100644
--- a/doc-factory-product/pom.xml
+++ b/doc-factory-product/pom.xml
@@ -3,7 +3,7 @@
 
 	<groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>doc-factory-product</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <build>
diff --git a/doc-factory-product/zip.xml b/doc-factory-product/zip.xml
index 30bf7964..30d830f4 100644
--- a/doc-factory-product/zip.xml
+++ b/doc-factory-product/zip.xml
@@ -11,7 +11,7 @@
             <directory>.</directory>
             <includes>
                 <include>product.json</include>
-                <include>README.md</include>
+                <include>README*.md</include>
                 <include>**/*.png</include>
             </includes>
         </fileSet>
diff --git a/doc-factory-test/pom.xml b/doc-factory-test/pom.xml
index 52d8bbdc..69da36a5 100644
--- a/doc-factory-test/pom.xml
+++ b/doc-factory-test/pom.xml
@@ -3,11 +3,12 @@
 
   <groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>doc-factory-test</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>iar</packaging>
   
   <properties>
-    <project-build-plugin-version>10.0.14</project-build-plugin-version>
+    <project.build.plugin.version>10.0.16</project.build.plugin.version>
+    <tester.version>10.0.16</tester.version>
     <pdfbox.version>2.0.28</pdfbox.version>
     <powermock2.version>2.0.9</powermock2.version>
   </properties>
@@ -22,7 +23,7 @@
     <dependency>
       <groupId>com.axonivy.ivy.test</groupId>
       <artifactId>unit-tester</artifactId>
-      <version>10.0.0</version>
+      <version>${tester.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.pdfbox</groupId>
@@ -50,7 +51,7 @@
       <plugin>
         <groupId>com.axonivy.ivy.ci</groupId>
         <artifactId>project-build-plugin</artifactId>
-        <version>${project-build-plugin-version}</version>
+        <version>${project.build.plugin.version}</version>
         <extensions>true</extensions>
       </plugin>  
     </plugins>
@@ -68,4 +69,13 @@
       </snapshots>
     </pluginRepository>
   </pluginRepositories>
+  <repositories>
+    <repository>
+      <id>sonatype</id>
+      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+      <snapshots>
+        <updatePolicy>always</updatePolicy>
+      </snapshots>
+    </repository>
+  </repositories>
 </project>
diff --git a/doc-factory/pom.xml b/doc-factory/pom.xml
index 4ab8e229..9c132cb5 100644
--- a/doc-factory/pom.xml
+++ b/doc-factory/pom.xml
@@ -3,11 +3,11 @@
   
   <groupId>com.axonivy.utils.docfactory</groupId>
   <artifactId>doc-factory</artifactId>
-  <version>10.0.11-SNAPSHOT</version>
+  <version>10.0.14-SNAPSHOT</version>
   <packaging>iar</packaging>
 
   <properties>
-    <project-build-plugin-version>10.0.14</project-build-plugin-version>
+    <project.build.plugin.version>10.0.16</project.build.plugin.version>
     <aspose.version>23.4</aspose.version>
   </properties>
  
@@ -16,6 +16,13 @@
       <id>aspose.com</id>
       <url>https://repository.aspose.com/repo</url>
     </repository>
+    <repository>
+      <id>sonatype</id>
+      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+      <snapshots>
+        <updatePolicy>always</updatePolicy>
+      </snapshots>
+    </repository>
   </repositories>
   <dependencies>
     <dependency>
@@ -54,7 +61,7 @@
       <plugin>
         <groupId>com.axonivy.ivy.ci</groupId>
         <artifactId>project-build-plugin</artifactId>
-        <version>${project-build-plugin-version}</version>
+        <version>${project.build.plugin.version}</version>
         <extensions>true</extensions>
       </plugin>
     </plugins>
diff --git a/pom.xml b/pom.xml
index 9013ae57..dac6a0d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
 	
 	<artifactId>com.axonivy.utils.docfactory</artifactId>
 	<groupId>doc-factory-modules</groupId>
-	<version>10.0.11-SNAPSHOT</version>
+	<version>10.0.14-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	
 	<modules>