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>