From af28c7ec4c49342c3a82d534fe0478ab35063356 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Wed, 22 Feb 2023 21:14:34 +0100 Subject: [PATCH 01/45] Adopt jasperreports-plugin (#1) This pr updates the groupid, java package, build process, and readme to this plugins new home at pro-crafting. --- .github/dependabot.yml | 6 + .github/workflows/build.yml | 34 +++++ .github/workflows/maven.yml | 17 --- .github/workflows/pull-request.yml | 15 +++ CHANGELOG.md | 5 + README.md | 20 ++- pom.xml | 121 ++++++------------ .../tools}/jasperreport/CompileTask.java | 2 +- .../tools}/jasperreport/JasperReporter.java | 2 +- .../tools}/jasperreport/JasperReportTest.java | 2 +- 10 files changed, 113 insertions(+), 111 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/maven.yml create mode 100644 .github/workflows/pull-request.yml rename src/main/java/com/{alexnederlof => pro_crafting/tools}/jasperreport/CompileTask.java (98%) rename src/main/java/com/{alexnederlof => pro_crafting/tools}/jasperreport/JasperReporter.java (99%) rename src/test/java/com/{alexnederlof => pro_crafting/tools}/jasperreport/JasperReportTest.java (99%) diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..80c51e7 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: maven + directory: "/" + schedule: + interval: daily \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..89013a9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,34 @@ +name: Build + +on: + push: + branches: + - 'main' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + - name: Maven build + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + MAVEN_SIGNING_KEY: ${{ secrets.MAVEN_SIGNING_KEY }} + run: | + echo "$MAVEN_SIGNING_KEY" > MAVEN_SIGNING_KEY_FILE.base64 + base64 --decode MAVEN_SIGNING_KEY_FILE.base64 > MAVEN_SIGNING_KEY_FILE.bin + gpg --batch --fast-import MAVEN_SIGNING_KEY_FILE.bin + mvn deploy -s cd/settings.xml -P sign,native + - name: Sonar + env: + SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + mvn org.jacoco:jacoco-maven-plugin:prepare-agent org.apache.maven.plugins:maven-surefire-plugin:test org.sonarsource.scanner.maven:sonar-maven-plugin:sonar diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml deleted file mode 100644 index bc9c0b1..0000000 --- a/.github/workflows/maven.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Java CI - -on: [push] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Build with Maven - run: mvn test diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000..9de41c8 --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,15 @@ +name: Pull Request CI + +on: [pull_request] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + - name: Maven build + run: mvn -B install diff --git a/CHANGELOG.md b/CHANGELOG.md index 32aded3..2c5f91b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 3.0 + +- Move plugin to pro-crafting. +- No other changes planned for this release. This one is intended for a clean migration. + # 2.8 - Update to Jasper 6.15 diff --git a/README.md b/README.md index 80db87f..bfad8e3 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,18 @@ JasperReports-plugin ============= -This maven compiles Jasper files to the target directory. +This maven plugin compiles Jasper files to the target directory. -# 👋 This plugin is up for adoption -I've not used this plugin myself in years, so I'd like to hand this project over -to people who actually use it. If you are interested, please open an issue to -reach me. - Alex +Migration to version 3 +---------- + +@alexnederlof is the original author of the plugin, but has not used it in years. The plugin got adopted by me (@Postremus) and migrated to the pro-crafting organization. +Main goal of the adoption is to always provide a version for the latest jasperreports release. + +For this reason, when migrating from jasperreports-plugin 2.8 to 3.0, you will need to follow these steps: + +# First, you will need to change the groupdId in the plugin definition, as outlined in section [Usage](#usage) +# Second, the plugin now gets compiled using jdk 17. Compatibility with java 1.8 is ensured, since the CI built forces an `--release 8` flag. If any problems arise though, please let me know by opening an issue - we can always adjust that. Motivation ---------- @@ -20,9 +26,9 @@ You can use the plugin by adding it to the plug-in section in your pom; - com.alexnederlof + com.pro-crafting.tools jasperreports-plugin - 2.8 + 3.0.0 process-sources diff --git a/pom.xml b/pom.xml index 6d975e8..d95a53e 100644 --- a/pom.xml +++ b/pom.xml @@ -1,18 +1,25 @@ 4.0.0 - com.alexnederlof + + + com.pro-crafting + pc-parent + 11 + + + com.pro-crafting.tools jasperreports-plugin maven-plugin - 2.9-SNAPSHOT + 3.0.0-SNAPSHOT + jasperreport-plugin A Jasper compiler plugin - http://github.com/alexnederlof/Jasper-report-maven-plugin + https://github.com/pro-crafting/Jasper-report-maven-plugin - 1.8 - 1.8 + 8 UTF-8 UTF-8 @@ -22,19 +29,12 @@ - scm:git:git@github.com:alexnederlof/Jasper-report-maven-plugin.git - http://github.com/alexnederlof/Jasper-report-maven-plugin - scm:git:git@github.com:alexnederlof/Jasper-report-maven-plugin.git + scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git + https://github.com/pro-crafting/Jasper-report-maven-plugin + scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git HEAD - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - - @@ -68,6 +68,13 @@ Benjamin Wiedmann github@wied.it + + + Postremus + Martin Panzer + postremus1996@googlemail.com + +2 + @@ -143,28 +150,17 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.0 - - false - - - - org.apache.maven.plugins - maven-source-plugin - 3.0.1 - - - attach-sources - - jar-no-fork - - - + + + org.apache.maven.surefire + surefire-junit47 + ${version.maven-surefire-plugin} + + org.apache.maven.plugins maven-javadoc-plugin - 3.0.1 attach-javadocs @@ -193,17 +189,6 @@ - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.8 - true - - ossrh - https://oss.sonatype.org/ - true - - org.apache.maven.plugins maven-plugin-plugin @@ -212,52 +197,20 @@ - - - release - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.6 - - - sign-artifacts - verify - - sign - - - - - - - - - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - main - https://repo.maven.apache.org/maven2/ + jaspersoft-third-party + https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/ - jasperreports - https://jaspersoft.jfrog.io/jaspersoft/jr-ce-releases + jr-ce-snapshots + JasperReports CE Snapshots + https://jaspersoft.jfrog.io/jaspersoft/jr-ce-snapshots - jaspersoft-third-party - https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/ + jr-ce-releases + JasperReports CE Releases + https://jaspersoft.jfrog.io/jaspersoft/jr-ce-releases - diff --git a/src/main/java/com/alexnederlof/jasperreport/CompileTask.java b/src/main/java/com/pro_crafting/tools/jasperreport/CompileTask.java similarity index 98% rename from src/main/java/com/alexnederlof/jasperreport/CompileTask.java rename to src/main/java/com/pro_crafting/tools/jasperreport/CompileTask.java index b13dbf5..7d5eb4e 100644 --- a/src/main/java/com/alexnederlof/jasperreport/CompileTask.java +++ b/src/main/java/com/pro_crafting/tools/jasperreport/CompileTask.java @@ -1,4 +1,4 @@ -package com.alexnederlof.jasperreport; +package com.pro_crafting.tools.jasperreport; /* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license diff --git a/src/main/java/com/alexnederlof/jasperreport/JasperReporter.java b/src/main/java/com/pro_crafting/tools/jasperreport/JasperReporter.java similarity index 99% rename from src/main/java/com/alexnederlof/jasperreport/JasperReporter.java rename to src/main/java/com/pro_crafting/tools/jasperreport/JasperReporter.java index ed6fe63..d8850be 100644 --- a/src/main/java/com/alexnederlof/jasperreport/JasperReporter.java +++ b/src/main/java/com/pro_crafting/tools/jasperreport/JasperReporter.java @@ -1,4 +1,4 @@ -package com.alexnederlof.jasperreport; +package com.pro_crafting.tools.jasperreport; /* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license diff --git a/src/test/java/com/alexnederlof/jasperreport/JasperReportTest.java b/src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java similarity index 99% rename from src/test/java/com/alexnederlof/jasperreport/JasperReportTest.java rename to src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java index 5dfb1b1..3ee69b9 100644 --- a/src/test/java/com/alexnederlof/jasperreport/JasperReportTest.java +++ b/src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java @@ -1,4 +1,4 @@ -package com.alexnederlof.jasperreport; +package com.pro_crafting.tools.jasperreport; /* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license From 5de12c0ed16954666aada81ce5b44a14f3820727 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Wed, 22 Feb 2023 21:20:35 +0100 Subject: [PATCH 02/45] Fix readme formatting (#2) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bfad8e3..a292aca 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,13 @@ This maven plugin compiles Jasper files to the target directory. Migration to version 3 ---------- -@alexnederlof is the original author of the plugin, but has not used it in years. The plugin got adopted by me (@Postremus) and migrated to the pro-crafting organization. +alexnederlof is the original author of the plugin, but has not used it in years. The plugin got adopted by me (Postremus) and migrated to the pro-crafting organization. Main goal of the adoption is to always provide a version for the latest jasperreports release. For this reason, when migrating from jasperreports-plugin 2.8 to 3.0, you will need to follow these steps: -# First, you will need to change the groupdId in the plugin definition, as outlined in section [Usage](#usage) -# Second, the plugin now gets compiled using jdk 17. Compatibility with java 1.8 is ensured, since the CI built forces an `--release 8` flag. If any problems arise though, please let me know by opening an issue - we can always adjust that. +1. First, you will need to change the groupdId in the plugin definition, as outlined in section [Usage](#usage) +2. Second, the plugin now gets compiled using jdk 17. Compatibility with java 1.8 is ensured, since the CI built forces an `--release 8` flag. If any problems arise though, please let me know by opening an issue - we can always adjust that. Motivation ---------- From 3bfdd791ec503b503a5f8ae765581835b62c1e8c Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Wed, 22 Feb 2023 21:23:08 +0100 Subject: [PATCH 03/45] Fix CI main branch build (#3) --- cd/settings.xml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 cd/settings.xml diff --git a/cd/settings.xml b/cd/settings.xml new file mode 100644 index 0000000..16a854b --- /dev/null +++ b/cd/settings.xml @@ -0,0 +1,32 @@ + + + + ossrh + ${env.OSSRH_USERNAME} + ${env.OSSRH_TOKEN} + + + docker.io + ${env.DOCKER_IO_USERNAME} + ${env.DOCKER_IO_TOKEN} + + + + + + ossrh + + true + + + gpg + ${env.GPG_KEY_NAME} + ${env.GPG_PASSPHRASE} + + + + + From 7dee8f281556434c1478d40f47c8643a70e67281 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 23 Feb 2023 19:59:12 +0100 Subject: [PATCH 04/45] [maven-release-plugin] prepare release jasperreports-plugin-3.0.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d95a53e..78a3b8f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.0.0-SNAPSHOT + 3.0.0 jasperreport-plugin A Jasper compiler plugin @@ -32,7 +32,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.0.0 From 5923bbabb6559ff58322098ea2aa33e2c26075a4 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 23 Feb 2023 19:59:16 +0100 Subject: [PATCH 05/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 78a3b8f..e31257f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.0.0 + 3.0.1-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -32,7 +32,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.0.0 + HEAD From fdfbc910aea466477ccce6c8f0bd1872d424002f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Feb 2023 19:13:16 +0000 Subject: [PATCH 06/45] Bump plexus-utils from 3.3.0 to 3.5.0 Bumps [plexus-utils](https://github.com/codehaus-plexus/plexus-utils) from 3.3.0 to 3.5.0. - [Release notes](https://github.com/codehaus-plexus/plexus-utils/releases) - [Commits](https://github.com/codehaus-plexus/plexus-utils/compare/plexus-utils-3.3.0...plexus-utils-3.5.0) --- updated-dependencies: - dependency-name: org.codehaus.plexus:plexus-utils dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e31257f..5c439b2 100644 --- a/pom.xml +++ b/pom.xml @@ -94,7 +94,7 @@ org.codehaus.plexus plexus-utils - 3.3.0 + 3.5.0 test From 7096418d63f04ce6557b5585c9e6ff1c7756c23c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Feb 2023 19:12:53 +0000 Subject: [PATCH 07/45] Bump plexus-compiler-api from 2.8.8 to 2.13.0 Bumps [plexus-compiler-api](https://github.com/codehaus-plexus/plexus-compiler) from 2.8.8 to 2.13.0. - [Release notes](https://github.com/codehaus-plexus/plexus-compiler/releases) - [Commits](https://github.com/codehaus-plexus/plexus-compiler/compare/plexus-compiler-2.8.8...plexus-compiler-2.13.0) --- updated-dependencies: - dependency-name: org.codehaus.plexus:plexus-compiler-api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c439b2..4b48f75 100644 --- a/pom.xml +++ b/pom.xml @@ -136,7 +136,7 @@ org.codehaus.plexus plexus-compiler-api - 2.8.8 + 2.13.0 javax.servlet From d4ccfbddb8a09df9a5f9eaff3b3b9957c0c62f9a Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 23 Feb 2023 20:58:04 +0100 Subject: [PATCH 08/45] Extend readme (#10) * Extend readme Mention required jasperreports maven repositories for itext dependencies. Add section about jaspereports compatibility. Other small fixes --- README.md | 27 +++++++++++++++++++++++---- pom.xml | 10 ---------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a292aca..0c1102d 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ This maven plugin compiles Jasper files to the target directory. Migration to version 3 ---------- -alexnederlof is the original author of the plugin, but has not used it in years. The plugin got adopted by me (Postremus) and migrated to the pro-crafting organization. -Main goal of the adoption is to always provide a version for the latest jasperreports release. +[alexnederlof](https://github.com/alexnederlof) is the original author of this plugin, but has not used it in years. The plugin got adopted by me ([Postremus](https://github.com/Postremus)) and migrated to the pro-crafting organization. +Main goal of the adoption is to always provide a version for the latest JasperReports release. -For this reason, when migrating from jasperreports-plugin 2.8 to 3.0, you will need to follow these steps: +For this reason, when migrating from jasperreports-plugin 2.8 to 3.0, you will need to keep these things in mind: 1. First, you will need to change the groupdId in the plugin definition, as outlined in section [Usage](#usage) 2. Second, the plugin now gets compiled using jdk 17. Compatibility with java 1.8 is ensured, since the CI built forces an `--release 8` flag. If any problems arise though, please let me know by opening an issue - we can always adjust that. @@ -20,7 +20,7 @@ The original jasperreports-maven-plugin from org.codehaus.mojo was a bit slow. T Usage ----- -You can use the plugin by adding it to the plug-in section in your pom; +You can use the plugin by adding it to the plug-in section in your pom: ```xml @@ -54,6 +54,17 @@ You can use the plugin by adding it to the plug-in section in your pom; ``` +You might also need to add the following repositories section to your pom in order to correctly resolve all dependencies: + +```xml + + + jaspersoft-third-party + https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/ + + +``` + If you want to pass any Jasper options to the compiler you can do so by adding them to the configuration like so: ```xml @@ -97,3 +108,11 @@ You can also use this alternative approach for JARs: ``` +JasperReports Compatibility +----- + +The following table shows which version of JasperReports is used for compilation for each plugin version + +| Plugin Version | JasperReports Version | +|----------------|-----------------------| +| 3.0.0 | 6.15.0 | diff --git a/pom.xml b/pom.xml index 4b48f75..6edefce 100644 --- a/pom.xml +++ b/pom.xml @@ -202,15 +202,5 @@ jaspersoft-third-party https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/ - - jr-ce-snapshots - JasperReports CE Snapshots - https://jaspersoft.jfrog.io/jaspersoft/jr-ce-snapshots - - - jr-ce-releases - JasperReports CE Releases - https://jaspersoft.jfrog.io/jaspersoft/jr-ce-releases - From 9614039466ee388b4b7ed1f7a5b4942b99731756 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Fri, 24 Feb 2023 21:30:20 +0100 Subject: [PATCH 09/45] Cleanup Pom (#11) remove setting already provided by parent use version properties --- pom.xml | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 6edefce..2d91bea 100644 --- a/pom.xml +++ b/pom.xml @@ -19,9 +19,24 @@ + 8 - UTF-8 UTF-8 + + + 6.15.0 + 3.6.0 + 1.7.30 + 2.13.0 + 4.0.1 + 2.6 + 3.6.3 + 4.13.2 + 1.1 + 3.5.0 + + + 3.5.2 @@ -78,73 +93,74 @@ + + junit junit - 4.13.2 + ${version.junit} test + org.apache.maven.shared maven-plugin-testing-harness - 1.1 + ${version.maven-plugin-testing-harness} test org.codehaus.plexus plexus-utils - 3.5.0 + ${version.plexus-utils} test net.sf.jasperreports jasperreports - 6.15.0 + ${version.jasperreports} + + + net.sf.jasperreports + jasperreports-fonts + ${version.jasperreports} - commons-lang commons-lang - 2.6 + ${version.commons-lang} - org.apache.maven maven-plugin-api - 3.6.3 + ${version.maven-plugin-api} org.apache.maven.plugin-tools maven-plugin-annotations - 3.6.0 + ${version.maven-plugin-annotations} provided - - net.sf.jasperreports - jasperreports-fonts - 6.15.0 - - org.slf4j slf4j-simple - 1.7.30 + ${version.slf4j} org.codehaus.plexus plexus-compiler-api - 2.13.0 + ${version.plexus-compiler-api} javax.servlet javax.servlet-api - 4.0.1 + ${version.javax.servlet-api} + @@ -192,7 +208,7 @@ org.apache.maven.plugins maven-plugin-plugin - 3.5.2 + ${version.maven-plugin-plugin} From 8897e278621e027b3c270bb312eeea882aec4d0d Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Fri, 24 Feb 2023 22:08:13 +0100 Subject: [PATCH 10/45] Enforce maven 3.5.2 for the build (#12) * Enforce maven 3.5.2 for the build Add the maven wrapper to ensure that we always build using maven 3.5.2. Also make sure that each maven related dependency is set to 3.5.2. --- .github/workflows/build.yml | 4 +- .github/workflows/pull-request.yml | 2 +- .mvn/wrapper/maven-wrapper.jar | Bin 0 -> 59925 bytes .mvn/wrapper/maven-wrapper.properties | 18 ++ CONTRIBUTING.md | 4 +- mvnw | 287 ++++++++++++++++++++++++++ mvnw.cmd | 187 +++++++++++++++++ pom.xml | 6 +- 8 files changed, 501 insertions(+), 7 deletions(-) create mode 100644 .mvn/wrapper/maven-wrapper.jar create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100755 mvnw create mode 100755 mvnw.cmd diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 89013a9..c1bc767 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,10 +25,10 @@ jobs: echo "$MAVEN_SIGNING_KEY" > MAVEN_SIGNING_KEY_FILE.base64 base64 --decode MAVEN_SIGNING_KEY_FILE.base64 > MAVEN_SIGNING_KEY_FILE.bin gpg --batch --fast-import MAVEN_SIGNING_KEY_FILE.bin - mvn deploy -s cd/settings.xml -P sign,native + ./mvnw deploy -s cd/settings.xml -P sign - name: Sonar env: SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - mvn org.jacoco:jacoco-maven-plugin:prepare-agent org.apache.maven.plugins:maven-surefire-plugin:test org.sonarsource.scanner.maven:sonar-maven-plugin:sonar + ./mvnw org.jacoco:jacoco-maven-plugin:prepare-agent org.apache.maven.plugins:maven-surefire-plugin:test org.sonarsource.scanner.maven:sonar-maven-plugin:sonar diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 9de41c8..4219185 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -12,4 +12,4 @@ jobs: distribution: 'temurin' java-version: '17' - name: Maven build - run: mvn -B install + run: ./mvnw -B install diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..bf82ff01c6cdae4a1bb754a6e062954d77ac5c11 GIT binary patch literal 59925 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

dy!05UMhSKsK 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 VCNKd3JGtOvEm(5t0lFyE{{i--k}m)N literal 0 HcmV?d00001 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..71658c6 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7dc3b6f..2fbeef8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1,3 @@ -To deploy, use `mvn clean deploy -P release` +For local builds, use `mvnw clean install`. + +For deployment, use `mvnw release:prepare`. diff --git a/mvnw b/mvnw new file mode 100755 index 0000000..b7f0646 --- /dev/null +++ b/mvnw @@ -0,0 +1,287 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.1.1 +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME + else + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + printf '%s' "$(cd "$basedir"; pwd)" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=$(find_maven_basedir "$(dirname $0)") +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $wrapperUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + QUIET="--quiet" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" + else + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + elif command -v curl > /dev/null; then + QUIET="--silent" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaSource=`cygpath --path --windows "$javaSource"` + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100755 index 0000000..474c9d6 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,187 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.1.1 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml index 2d91bea..07a1d9c 100644 --- a/pom.xml +++ b/pom.xml @@ -25,12 +25,12 @@ 6.15.0 - 3.6.0 1.7.30 2.13.0 4.0.1 2.6 - 3.6.3 + 3.5.2 + 3.5.2 4.13.2 1.1 3.5.0 @@ -40,7 +40,7 @@ - 3.5.0 + 3.5.2 From cfa32e1eb568f0fe057cf55394199caff592b922 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Fri, 24 Feb 2023 22:14:25 +0100 Subject: [PATCH 11/45] Extend readme (#13) fix small typo add badges for ci status and latest version --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c1102d..fe89007 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +[![Version](https://img.shields.io/maven-central/v/com.pro-crafting.tools/jasperreports-plugin?logo=apache-maven&style=for-the-badge)](https://search.maven.org/artifact/com.pro-crafting.tools/jasperreports-pluginm) +[![GitHub Actions Status]()](https://github.com/pro-crafting/Jasper-report-maven-plugin/actions/workflows/build.yml) + JasperReports-plugin ============= @@ -12,7 +15,7 @@ Main goal of the adoption is to always provide a version for the latest JasperRe For this reason, when migrating from jasperreports-plugin 2.8 to 3.0, you will need to keep these things in mind: 1. First, you will need to change the groupdId in the plugin definition, as outlined in section [Usage](#usage) -2. Second, the plugin now gets compiled using jdk 17. Compatibility with java 1.8 is ensured, since the CI built forces an `--release 8` flag. If any problems arise though, please let me know by opening an issue - we can always adjust that. +2. Second, the plugin now gets compiled using jdk 17. Compatibility with java 1.8 is ensured, since the CI build now forces an `--release 8` flag. If any problems arise though, please let me know by opening an issue - we can always adjust that. Motivation ---------- From 32871cbcd12abdb0e8a3794408ea544561edc0c7 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Fri, 24 Feb 2023 22:40:43 +0100 Subject: [PATCH 12/45] Integrate with m2e. (#14) * Integrate with m2e. This fixes the "plugin execution not covered by a lifecycle configuration" message in eclipse. The plugin now runs incrementally, i.e. on every save in eclipse. --- CHANGELOG.md | 4 ++++ .../META-INF/m2e/lifecycle-mapping-metadata.xml | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c5f91b..2d93d50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.1.0 + +- Integrate with m2e. This fixes the "plugin execution not covered by a lifecycle configuration" message in eclipse. + # 3.0 - Move plugin to pro-crafting. diff --git a/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml b/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml new file mode 100644 index 0000000..0a19f6e --- /dev/null +++ b/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml @@ -0,0 +1,17 @@ + + + + + + jasper + + + + + true + false + + + + + From ecc99289b3caa97931ae05393c04963f9387e942 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 25 Feb 2023 07:00:35 +0100 Subject: [PATCH 13/45] update jasperreports to 6.16.0 --- CHANGELOG.md | 1 + README.md | 1 + pom.xml | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d93d50..f3a7131 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # 3.1.0 - Integrate with m2e. This fixes the "plugin execution not covered by a lifecycle configuration" message in eclipse. +- Update to Jasper 6.16.0 # 3.0 diff --git a/README.md b/README.md index fe89007..e1d76aa 100644 --- a/README.md +++ b/README.md @@ -119,3 +119,4 @@ The following table shows which version of JasperReports is used for compilation | Plugin Version | JasperReports Version | |----------------|-----------------------| | 3.0.0 | 6.15.0 | +| 3.1.0 | 6.16.0 | diff --git a/pom.xml b/pom.xml index 07a1d9c..9d8b5bc 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.15.0 + 6.16.0 1.7.30 2.13.0 4.0.1 From 3cc8dc80b337caa24c4673dfe2e3f21b9d8d8074 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 25 Feb 2023 07:05:06 +0100 Subject: [PATCH 14/45] [maven-release-plugin] prepare release jasperreports-plugin-3.1.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9d8b5bc..c2f6925 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.0.1-SNAPSHOT + 3.1.0 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.1.0 From f5cd76120a13e18c1b899adf67a81bc0bbd0dcf7 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 25 Feb 2023 07:05:10 +0100 Subject: [PATCH 15/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c2f6925..00915e6 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.1.0 + 3.2.0-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.1.0 + HEAD From efbb1745c7f681694d7401e9fc19e37aec5176a1 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 07:45:50 +0100 Subject: [PATCH 16/45] update jasperreports to 6.17.0 (#15) --- CHANGELOG.md | 4 ++++ README.md | 3 ++- pom.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3a7131..80266af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.2.0 + +- Update to Jasper 6.17.0 + # 3.1.0 - Integrate with m2e. This fixes the "plugin execution not covered by a lifecycle configuration" message in eclipse. diff --git a/README.md b/README.md index e1d76aa..6164769 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ You can use the plugin by adding it to the plug-in section in your pom: com.pro-crafting.tools jasperreports-plugin - 3.0.0 + 3.2.0 process-sources @@ -120,3 +120,4 @@ The following table shows which version of JasperReports is used for compilation |----------------|-----------------------| | 3.0.0 | 6.15.0 | | 3.1.0 | 6.16.0 | +| 3.2.0 | 6.17.0 | diff --git a/pom.xml b/pom.xml index 00915e6..e31396c 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.16.0 + 6.17.0 1.7.30 2.13.0 4.0.1 From df293bc9b641c573a2d3fa25d3b10924f6def74a Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 07:46:49 +0100 Subject: [PATCH 17/45] [maven-release-plugin] prepare release jasperreports-plugin-3.2.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e31396c..667c9d5 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.2.0-SNAPSHOT + 3.2.0 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.2.0 From 23749440d031466beed2af43ae57851750300881 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 07:46:53 +0100 Subject: [PATCH 18/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 667c9d5..9fb847f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.2.0 + 3.3.0-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.2.0 + HEAD From be3c7146cfbca888cf9bc3e573c13fa8d1acc96c Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 21:07:24 +0100 Subject: [PATCH 19/45] update jasperreports to 6.18.0 --- CHANGELOG.md | 4 ++++ README.md | 1 + pom.xml | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80266af..fde3e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.3.0 + +- Update to Jasper 6.18.0 + # 3.2.0 - Update to Jasper 6.17.0 diff --git a/README.md b/README.md index 6164769..e9b0022 100644 --- a/README.md +++ b/README.md @@ -121,3 +121,4 @@ The following table shows which version of JasperReports is used for compilation | 3.0.0 | 6.15.0 | | 3.1.0 | 6.16.0 | | 3.2.0 | 6.17.0 | +| 3.3.0 | 6.18.0 | diff --git a/pom.xml b/pom.xml index 9fb847f..4fdab18 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.17.0 + 6.18.0 1.7.30 2.13.0 4.0.1 From 4c0378b2b016eb0d5f94c42685d7cda514c39937 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 21:18:40 +0100 Subject: [PATCH 20/45] [maven-release-plugin] prepare release jasperreports-plugin-3.3.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4fdab18..322d934 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.3.0-SNAPSHOT + 3.3.0 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.3.0 From fa971bc6a8e155a4d8a9a26708a40e3e87b26b13 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 21:18:43 +0100 Subject: [PATCH 21/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 322d934..d89cab8 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.3.0 + 3.3.1-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.3.0 + HEAD From ebd3c5134b99bf99b89eab0e52e2649b8331aa5d Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 21:22:02 +0100 Subject: [PATCH 22/45] update jasperreports to 6.18.1 --- CHANGELOG.md | 4 ++++ README.md | 1 + pom.xml | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fde3e85..5c1a93c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.3.1 + +- Update to Jasper 6.18.1 + # 3.3.0 - Update to Jasper 6.18.0 diff --git a/README.md b/README.md index e9b0022..c80a931 100644 --- a/README.md +++ b/README.md @@ -122,3 +122,4 @@ The following table shows which version of JasperReports is used for compilation | 3.1.0 | 6.16.0 | | 3.2.0 | 6.17.0 | | 3.3.0 | 6.18.0 | +| 3.3.1 | 6.18.1 | diff --git a/pom.xml b/pom.xml index d89cab8..fc2db4d 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.18.0 + 6.18.1 1.7.30 2.13.0 4.0.1 From 20957d3b397dc5512be9650529b5ea51e8207325 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 21:23:50 +0100 Subject: [PATCH 23/45] [maven-release-plugin] prepare release jasperreports-plugin-3.3.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fc2db4d..73aeabb 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.3.1-SNAPSHOT + 3.3.1 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.3.1 From 6dc10f18d539fdfb4e4fb2979ccf63b62f053927 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sun, 26 Feb 2023 21:23:54 +0100 Subject: [PATCH 24/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 73aeabb..2356768 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.3.1 + 3.4.0-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.3.1 + HEAD From 172cf7eb0b4782abc2b064e21b67616a37bd69e6 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 20:55:05 +0100 Subject: [PATCH 25/45] update jasperreports to 6.19.0 --- CHANGELOG.md | 4 ++++ README.md | 3 ++- pom.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c1a93c..7b3a608 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.4.0 + +- Update to Jasper 6.19.0 + # 3.3.1 - Update to Jasper 6.18.1 diff --git a/README.md b/README.md index c80a931..ca9da4b 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ You can use the plugin by adding it to the plug-in section in your pom: com.pro-crafting.tools jasperreports-plugin - 3.2.0 + 3.4.0 process-sources @@ -123,3 +123,4 @@ The following table shows which version of JasperReports is used for compilation | 3.2.0 | 6.17.0 | | 3.3.0 | 6.18.0 | | 3.3.1 | 6.18.1 | +| 3.4.0 | 6.19.0 | diff --git a/pom.xml b/pom.xml index 2356768..7ed1219 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.18.1 + 6.19.0 1.7.30 2.13.0 4.0.1 From d6a19a7232ab4f9fd46dd65d7aed30003d494823 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 20:55:45 +0100 Subject: [PATCH 26/45] [maven-release-plugin] prepare release jasperreports-plugin-3.4.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 7ed1219..8637e41 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.4.0-SNAPSHOT + 3.4.0 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.4.0 From 61b3f11efe3ad033721a8c086092902fcc28b4e0 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 20:55:49 +0100 Subject: [PATCH 27/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8637e41..2c64030 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.4.0 + 3.4.1-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.4.0 + HEAD From f93740ba125acda1534f0ef5971458cb14d57e27 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 21:05:25 +0100 Subject: [PATCH 28/45] update jasperreports to 6.19.1 --- CHANGELOG.md | 4 ++++ README.md | 3 ++- pom.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b3a608..129e92f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.4.1 + +- Update to Jasper 6.19.1 + # 3.4.0 - Update to Jasper 6.19.0 diff --git a/README.md b/README.md index ca9da4b..843dd12 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ You can use the plugin by adding it to the plug-in section in your pom: com.pro-crafting.tools jasperreports-plugin - 3.4.0 + 3.4.1 process-sources @@ -124,3 +124,4 @@ The following table shows which version of JasperReports is used for compilation | 3.3.0 | 6.18.0 | | 3.3.1 | 6.18.1 | | 3.4.0 | 6.19.0 | +| 3.4.1 | 6.19.1 | diff --git a/pom.xml b/pom.xml index 2c64030..8c85354 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.19.0 + 6.19.1 1.7.30 2.13.0 4.0.1 From 5dbe9aea8232de563227ebe2af5fbe3239a17a95 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 21:06:35 +0100 Subject: [PATCH 29/45] [maven-release-plugin] prepare release jasperreports-plugin-3.4.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8c85354..482e95e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.4.1-SNAPSHOT + 3.4.1 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.4.1 From a353d51d4829e382cd9423a2249f1d87fc941698 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 21:06:39 +0100 Subject: [PATCH 30/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 482e95e..4c6f04e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.4.1 + 3.5.0-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.4.1 + HEAD From 969d6c73828be7298d67630fc3fbd17eb7fa2320 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 21:18:29 +0100 Subject: [PATCH 31/45] update jasperreports to 6.20.0 --- CHANGELOG.md | 4 ++++ README.md | 3 ++- pom.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 129e92f..ae6a130 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.5.0 + +- Update to Jasper 6.20.0 + # 3.4.1 - Update to Jasper 6.19.1 diff --git a/README.md b/README.md index 843dd12..ca8d07d 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ You can use the plugin by adding it to the plug-in section in your pom: com.pro-crafting.tools jasperreports-plugin - 3.4.1 + 3.5.0 process-sources @@ -125,3 +125,4 @@ The following table shows which version of JasperReports is used for compilation | 3.3.1 | 6.18.1 | | 3.4.0 | 6.19.0 | | 3.4.1 | 6.19.1 | +| 3.5.0 | 6.20.0 | diff --git a/pom.xml b/pom.xml index 4c6f04e..f9d58b5 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.19.1 + 6.20.0 1.7.30 2.13.0 4.0.1 From 34df4e2808f452dde9ff2aa210782f368075c91f Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 21:19:16 +0100 Subject: [PATCH 32/45] [maven-release-plugin] prepare release jasperreports-plugin-3.5.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f9d58b5..69ee100 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.5.0-SNAPSHOT + 3.5.0 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.5.0 From 0252c3f2f873d93a266d1c91c908a42a51fd0ae1 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 2 Mar 2023 21:19:19 +0100 Subject: [PATCH 33/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 69ee100..b2c59bf 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.5.0 + 3.6.0-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.5.0 + HEAD From f32b6eb809fac7b9304719f5cea35cc4c9e1f75c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 Mar 2023 01:24:22 +0000 Subject: [PATCH 34/45] Bump plexus-utils from 3.5.0 to 3.5.1 Bumps [plexus-utils](https://github.com/codehaus-plexus/plexus-utils) from 3.5.0 to 3.5.1. - [Release notes](https://github.com/codehaus-plexus/plexus-utils/releases) - [Commits](https://github.com/codehaus-plexus/plexus-utils/compare/plexus-utils-3.5.0...plexus-utils-3.5.1) --- updated-dependencies: - dependency-name: org.codehaus.plexus:plexus-utils dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b2c59bf..ff51c2f 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ 3.5.2 4.13.2 1.1 - 3.5.0 + 3.5.1 3.5.2 From 9d26a2a5dc6e2c4c77d74c31272cc673f944bc6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 02:01:35 +0000 Subject: [PATCH 35/45] Bump pc-parent from 11 to 12 Bumps [pc-parent](https://github.com/Postremus/swagger-maven-plugin) from 11 to 12. - [Release notes](https://github.com/Postremus/swagger-maven-plugin/releases) - [Changelog](https://github.com/Postremus/swagger-maven-plugin/blob/master/CHANGES.md) - [Commits](https://github.com/Postremus/swagger-maven-plugin/commits) --- updated-dependencies: - dependency-name: com.pro-crafting:pc-parent dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ff51c2f..eace37d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.pro-crafting pc-parent - 11 + 12 com.pro-crafting.tools From d518f54c39e81b54eb4f546f88b1d30e16c6bb59 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 18 Mar 2023 07:02:17 +0100 Subject: [PATCH 36/45] update jasperreports to 6.20.1 --- CHANGELOG.md | 4 ++++ README.md | 17 +++++++++-------- pom.xml | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae6a130..44c25e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.5.1 + +- Update to Jasper 6.20.1 + # 3.5.0 - Update to Jasper 6.20.0 diff --git a/README.md b/README.md index ca8d07d..3988350 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ You can use the plugin by adding it to the plug-in section in your pom: com.pro-crafting.tools jasperreports-plugin - 3.5.0 + 3.5.1 process-sources @@ -118,11 +118,12 @@ The following table shows which version of JasperReports is used for compilation | Plugin Version | JasperReports Version | |----------------|-----------------------| -| 3.0.0 | 6.15.0 | -| 3.1.0 | 6.16.0 | -| 3.2.0 | 6.17.0 | -| 3.3.0 | 6.18.0 | -| 3.3.1 | 6.18.1 | -| 3.4.0 | 6.19.0 | -| 3.4.1 | 6.19.1 | +| 3.5.1 | 6.20.1 | | 3.5.0 | 6.20.0 | +| 3.4.1 | 6.19.1 | +| 3.4.0 | 6.19.0 | +| 3.3.1 | 6.18.1 | +| 3.3.0 | 6.18.0 | +| 3.2.0 | 6.17.0 | +| 3.1.0 | 6.16.0 | +| 3.0.0 | 6.15.0 | diff --git a/pom.xml b/pom.xml index eace37d..8cbfe61 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.20.0 + 6.20.1 1.7.30 2.13.0 4.0.1 From 9e590aeae14e685ddc55cefd6ab700fd5c5a44e9 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 18 Mar 2023 07:02:53 +0100 Subject: [PATCH 37/45] [maven-release-plugin] prepare release jasperreports-plugin-3.5.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8cbfe61..f8b2cbc 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.6.0-SNAPSHOT + 3.5.1 jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - HEAD + jasperreports-plugin-3.5.1 From 77c0d71b13955b9890da11e9732a2deb59f242e4 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 18 Mar 2023 07:02:57 +0100 Subject: [PATCH 38/45] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f8b2cbc..8cbfe61 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ jasperreports-plugin maven-plugin - 3.5.1 + 3.6.0-SNAPSHOT jasperreport-plugin A Jasper compiler plugin @@ -47,7 +47,7 @@ scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git - jasperreports-plugin-3.5.1 + HEAD From fa9d2aae38e3e2c1a39cd2e9d2b1d62d5c549e52 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 18 Mar 2023 09:24:45 +0100 Subject: [PATCH 39/45] Update dependencies (#22) --- CHANGELOG.md | 4 ++++ pom.xml | 14 +------------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44c25e1..66ac413 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.6.0 + +- Dependency updates + # 3.5.1 - Update to Jasper 6.20.1 diff --git a/pom.xml b/pom.xml index 8cbfe61..80ba152 100644 --- a/pom.xml +++ b/pom.xml @@ -25,10 +25,8 @@ 6.20.1 - 1.7.30 + 1.7.36 2.13.0 - 4.0.1 - 2.6 3.5.2 3.5.2 4.13.2 @@ -126,11 +124,6 @@ jasperreports-fonts ${version.jasperreports} - - commons-lang - commons-lang - ${version.commons-lang} - org.apache.maven maven-plugin-api @@ -153,11 +146,6 @@ plexus-compiler-api ${version.plexus-compiler-api} - - javax.servlet - javax.servlet-api - ${version.javax.servlet-api} - From 805a4c3f62a694d588053693168570d89ff81cc2 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 27 Apr 2023 07:28:41 +0200 Subject: [PATCH 40/45] update jasperreports to 6.20.1 --- CHANGELOG.md | 6 +++++- README.md | 23 +++++++++++++++++++++-- pom.xml | 16 +++++++++++++++- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66ac413..bcfe376 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ -# 3.6.0 +# 3.6.0 (not released yet) - Dependency updates +# 3.5.2 + +- Update to Jasper 6.20.2 + # 3.5.1 - Update to Jasper 6.20.1 diff --git a/README.md b/README.md index 3988350..594e46c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Motivation ---------- The original jasperreports-maven-plugin from org.codehaus.mojo was a bit slow. This plugin is 10x faster. I tested it with 52 reports which took 48 seconds with the original plugin and only 4.7 seconds with this plugin. -Usage +Installation ----- You can use the plugin by adding it to the plug-in section in your pom: @@ -68,6 +68,24 @@ You might also need to add the following repositories section to your pom in ord ``` +If you are exporting pdfs, you need to prive the dependency on openpdf yourself starting with JasperReports 6.20.2. +See also issue [#351](https://github.com/TIBCOSoftware/jasperreports/issues/351) in the JasperReports repository. + +This plugin already provides the openpdf library - you won't have to add it for compilation of your reports. +However, the library needs to be present during report execution/filling time, e.g. it needs to be added to your deployed application. + +```xml + + + com.github.librepdf + openpdf + 1.3.30.jaspersoft.2 + + +``` + +Usage +----- If you want to pass any Jasper options to the compiler you can do so by adding them to the configuration like so: ```xml @@ -114,10 +132,11 @@ You can also use this alternative approach for JARs: JasperReports Compatibility ----- -The following table shows which version of JasperReports is used for compilation for each plugin version +The following table shows which JasperReports version is included during compilation of each plugin version | Plugin Version | JasperReports Version | |----------------|-----------------------| +| 3.5.2 | 6.20.2 | | 3.5.1 | 6.20.1 | | 3.5.0 | 6.20.0 | | 3.4.1 | 6.19.1 | diff --git a/pom.xml b/pom.xml index 80ba152..d32b1e1 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,9 @@ UTF-8 - 6.20.1 + 6.20.2 + 1.3.30.jaspersoft.2 + 1.7.36 2.13.0 3.5.2 @@ -124,6 +126,18 @@ jasperreports-fonts ${version.jasperreports} + + net.sf.jasperreports + jasperreports-functions + ${version.jasperreports} + + + + com.github.librepdf + openpdf + ${version.openpdf} + + org.apache.maven maven-plugin-api From 3118c841c97c9cf3c86eda4a50118da7ad5c6894 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 27 Apr 2023 07:42:18 +0200 Subject: [PATCH 41/45] use git over http for releases --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d32b1e1..23b074d 100644 --- a/pom.xml +++ b/pom.xml @@ -44,9 +44,9 @@ - scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git + scm:git:https://github.com/pro-crafting/Jasper-report-maven-plugin.git https://github.com/pro-crafting/Jasper-report-maven-plugin - scm:git:git@github.com:pro-crafting/Jasper-report-maven-plugin.git + scm:git:https://github.com/pro-crafting/Jasper-report-maven-plugin.git HEAD From 2e3fee3f5309ded99f4762ff864a5d7309d1efc6 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 27 Apr 2023 07:44:54 +0200 Subject: [PATCH 42/45] release branches can also do releases --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1bc767..8390f04 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,6 +4,7 @@ on: push: branches: - 'main' + - 'release/**' jobs: build: From c58bea3cda839dd06ae2baf7430e155e90e141d9 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 27 Apr 2023 07:48:57 +0200 Subject: [PATCH 43/45] prepare next release attempt, since 3.5.2 failed --- CHANGELOG.md | 6 +++++- README.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcfe376..df1bdbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,14 @@ - Dependency updates -# 3.5.2 +# 3.5.3 - Update to Jasper 6.20.2 +# 3.5.2 + +(release failed due to wrong ci config, use 3.5.3) + # 3.5.1 - Update to Jasper 6.20.1 diff --git a/README.md b/README.md index 594e46c..278ce52 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,7 @@ The following table shows which JasperReports version is included during compila | Plugin Version | JasperReports Version | |----------------|-----------------------| -| 3.5.2 | 6.20.2 | +| 3.5.3 | 6.20.2 | | 3.5.1 | 6.20.1 | | 3.5.0 | 6.20.0 | | 3.4.1 | 6.19.1 | From 1d48ca8fbea522ce745e02b5c00630a1b3304e73 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Thu, 27 Apr 2023 07:56:56 +0200 Subject: [PATCH 44/45] update jasperreports to 6.20.3 --- CHANGELOG.md | 4 ++++ README.md | 3 ++- pom.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df1bdbf..948de19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ - Dependency updates +# 3.5.4 + +- Update to Jasper 6.20.3 + # 3.5.3 - Update to Jasper 6.20.2 diff --git a/README.md b/README.md index 278ce52..ec8e4ec 100644 --- a/README.md +++ b/README.md @@ -132,10 +132,11 @@ You can also use this alternative approach for JARs: JasperReports Compatibility ----- -The following table shows which JasperReports version is included during compilation of each plugin version +The following table shows which JasperReports version is included during compilation of each plugin version: | Plugin Version | JasperReports Version | |----------------|-----------------------| +| 3.5.4 | 6.20.3 | | 3.5.3 | 6.20.2 | | 3.5.1 | 6.20.1 | | 3.5.0 | 6.20.0 | diff --git a/pom.xml b/pom.xml index 23b074d..820bcfd 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ UTF-8 - 6.20.2 + 6.20.3 1.3.30.jaspersoft.2 1.7.36 From 32278d2353421f54182d14f599a4d5c8436e8f5f Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Sun, 25 Jul 2021 13:04:49 +0200 Subject: [PATCH 45/45] Migrate from maven-plugin-testing-harness to Takari testing --- pom.xml | 31 +- .../tools/jasperreport/JasperReportTest.java | 268 ++--- .../brokenReports/pom.xml} | 16 +- .../jasperreports}/AlterDesignReport.jrxml | 0 .../emptyFolder/pom.xml} | 16 +- .../src/main/jasperreports/.gitkeep} | 0 .../folderStructure/pom.xml} | 16 +- .../main/jasperreports}/LandscapeReport.jrxml | 0 .../level.1/level.2.1/LateOrdersReport.jrxml | 0 .../level.2.2/Level.3/LineChartReport.jrxml | 0 .../level.1/level.2.2/MasterReport.jrxml | 0 .../nonExistentFolder/pom.xml} | 13 +- .../nonExistentFolderAllowed/pom.xml} | 15 +- .../sampleReports/pom.xml} | 16 +- .../main/jasperreports}/AddressReport.jrxml | 0 .../main/jasperreports}/AddressesReport.jrxml | 0 .../main/jasperreports}/AllChartsReport.jrxml | 0 .../jasperreports}/AlterDesignReport.jrxml | 0 .../main/jasperreports}/AreaChartReport.jrxml | 0 .../jasperreports}/Bar3DChartReport.jrxml | 0 .../main/jasperreports}/BarChartReport.jrxml | 0 .../main/jasperreports}/BarbecueReport.jrxml | 0 .../jasperreports}/BubbleChartReport.jrxml | 0 .../CandlestickChartReport.jrxml | 0 .../jasperreports}/CsvDataSourceReport.jrxml | 0 .../CsvQueryExecuterReport.jrxml | 0 .../main/jasperreports}/CustomersReport.jrxml | 0 .../jasperreports}/DataSourceReport.jrxml | 0 .../main/jasperreports}/DocumentsReport.jrxml | 0 .../src/main/jasperreports}/FirstJasper.jrxml | 0 .../src/main/jasperreports}/FontsReport.jrxml | 0 .../jasperreports}/GanttChartReport.jrxml | 0 .../jasperreports}/GenericElementReport.jrxml | 0 .../main/jasperreports}/HeadingsReport.jrxml | 0 .../jasperreports}/HibernateQueryReport.jrxml | 0 .../jasperreports}/HighLowChartReport.jrxml | 0 .../jasperreports}/HorizontalListReport.jrxml | 0 .../jasperreports}/HorizontalReport.jrxml | 0 .../main/jasperreports}/HyperlinkReport.jrxml | 0 .../src/main/jasperreports}/I18nReport.jrxml | 0 .../main/jasperreports}/ImagesReport.jrxml | 0 .../main/jasperreports}/JChartsReport.jrxml | 0 .../jasperreports}/JFreeChartReport.jrxml | 0 .../jasperreports}/JsonCustomersReport.jrxml | 0 .../jasperreports}/JsonOrdersReport.jrxml | 0 .../main/jasperreports}/LandscapeReport.jrxml | 0 .../jasperreports}/LateOrdersReport.jrxml | 0 .../main/jasperreports}/LineChartReport.jrxml | 0 .../src/main/jasperreports}/ListReport.jrxml | 0 .../src/main/jasperreports}/MacroReport.jrxml | 0 .../src/main/jasperreports}/MapReport.jrxml | 0 .../main/jasperreports}/MarkupReport.jrxml | 0 .../main/jasperreports}/MasterReport.jrxml | 0 .../jasperreports}/MeterChartReport.jrxml | 0 .../MultipleAxisChartReport.jrxml | 0 .../jasperreports}/NoPageBreakReport.jrxml | 0 .../main/jasperreports}/OrdersReport.jrxml | 0 .../jasperreports}/ParagraphsReport.jrxml | 0 .../jasperreports}/PdfEncryptReport.jrxml | 0 .../jasperreports}/Pie3DChartReport.jrxml | 0 .../main/jasperreports}/PieChartReport.jrxml | 0 ...PlainTextReportWithDefaultFontReport.jrxml | 0 .../main/jasperreports}/ProductReport.jrxml | 0 .../main/jasperreports}/ProductsReport.jrxml | 0 .../src/main/jasperreports}/QueryReport.jrxml | 0 .../src/main/jasperreports}/Report1.jrxml | 0 .../src/main/jasperreports}/Report2.jrxml | 0 .../src/main/jasperreports}/Report3.jrxml | 0 .../main/jasperreports}/RotationReport.jrxml | 0 .../jasperreports}/ScatterChartReport.jrxml | 0 .../main/jasperreports}/ShapesReport.jrxml | 0 .../src/main/jasperreports}/SpiderChart.jrxml | 0 .../StackedAreaChartReport.jrxml | 0 .../StackedBar3DChartReport.jrxml | 0 .../StackedBarChartReport.jrxml | 0 .../main/jasperreports}/StretchReport.jrxml | 0 .../jasperreports}/StyledTextReport.jrxml | 0 .../main/jasperreports}/StylesReport.jrxml | 0 .../src/main/jasperreports}/TableReport.jrxml | 0 .../main/jasperreports}/TabularReport.jrxml | 0 .../src/main/jasperreports}/TextReport.jrxml | 0 .../ThermometerChartReport.jrxml | 0 .../TimeSeriesChartReport.jrxml | 0 .../main/jasperreports}/UnicodeReport.jrxml | 0 .../jasperreports}/VirtualizerReport.jrxml | 0 .../jasperreports}/XYAreaChartReport.jrxml | 0 .../jasperreports}/XYBarChartReport.jrxml | 0 .../XYBarChartTimePeriodReport.jrxml | 0 .../XYBarChartTimeSeriesReport.jrxml | 0 .../jasperreports}/XYLineChartReport.jrxml | 0 .../jasperreports}/XlsDataSourceReport.jrxml | 0 .../jasperreports}/XlsFeaturesReport.jrxml | 0 .../jasperreports}/XlsFormulaReport.jrxml | 0 .../jasperreports}/XlsxDataSourceReport.jrxml | 0 .../pom.xml} | 15 +- .../main/jasperreports/AddressReport.jrxml | 144 +++ .../main/jasperreports/AddressesReport.jrxml | 138 +++ .../main/jasperreports/AllChartsReport.jrxml | 1041 +++++++++++++++++ .../jasperreports/AlterDesignReport.jrxml | 32 + .../main/jasperreports/AreaChartReport.jrxml | 372 ++++++ .../main/jasperreports/Bar3DChartReport.jrxml | 376 ++++++ .../main/jasperreports/BarChartReport.jrxml | 374 ++++++ .../main/jasperreports/BarbecueReport.jrxml | 59 + .../jasperreports/BubbleChartReport.jrxml | 351 ++++++ .../CandlestickChartReport.jrxml | 340 ++++++ .../jasperreports/CsvDataSourceReport.jrxml | 176 +++ .../CsvQueryExecuterReport.jrxml | 182 +++ .../main/jasperreports/CustomersReport.jrxml | 102 ++ .../main/jasperreports/DataSourceReport.jrxml | 163 +++ .../main/jasperreports/DocumentsReport.jrxml | 61 + .../src/main/jasperreports/FirstJasper.jrxml | 435 +++++++ .../src/main/jasperreports/FontsReport.jrxml | 149 +++ .../main/jasperreports/GanttChartReport.jrxml | 150 +++ .../jasperreports/GenericElementReport.jrxml | 32 + .../main/jasperreports/HeadingsReport.jrxml | 115 ++ .../jasperreports/HibernateQueryReport.jrxml | 130 ++ .../jasperreports/HighLowChartReport.jrxml | 340 ++++++ .../jasperreports/HorizontalListReport.jrxml | 120 ++ .../main/jasperreports/HorizontalReport.jrxml | 403 +++++++ .../main/jasperreports/HyperlinkReport.jrxml | 176 +++ .../src/main/jasperreports/I18nReport.jrxml | 61 + .../src/main/jasperreports/ImagesReport.jrxml | 251 ++++ .../main/jasperreports/JChartsReport.jrxml | 49 + .../main/jasperreports/JFreeChartReport.jrxml | 39 + .../jasperreports/JsonCustomersReport.jrxml | 100 ++ .../main/jasperreports/JsonOrdersReport.jrxml | 101 ++ .../main/jasperreports/LandscapeReport.jrxml | 48 + .../main/jasperreports/LateOrdersReport.jrxml | 285 +++++ .../main/jasperreports/LineChartReport.jrxml | 385 ++++++ .../src/main/jasperreports/ListReport.jrxml | 118 ++ .../src/main/jasperreports/MacroReport.jrxml | 209 ++++ .../src/main/jasperreports/MapReport.jrxml | 76 ++ .../src/main/jasperreports/MarkupReport.jrxml | 37 + .../src/main/jasperreports/MasterReport.jrxml | 105 ++ .../main/jasperreports/MeterChartReport.jrxml | 348 ++++++ .../MultipleAxisChartReport.jrxml | 447 +++++++ .../jasperreports/NoPageBreakReport.jrxml | 188 +++ .../src/main/jasperreports/OrdersReport.jrxml | 101 ++ .../main/jasperreports/ParagraphsReport.jrxml | 385 ++++++ .../main/jasperreports/PdfEncryptReport.jrxml | 22 + .../main/jasperreports/Pie3DChartReport.jrxml | 348 ++++++ .../main/jasperreports/PieChartReport.jrxml | 352 ++++++ ...PlainTextReportWithDefaultFontReport.jrxml | 40 + .../main/jasperreports/ProductReport.jrxml | 211 ++++ .../main/jasperreports/ProductsReport.jrxml | 169 +++ .../src/main/jasperreports/QueryReport.jrxml | 175 +++ .../src/main/jasperreports/Report1.jrxml | 39 + .../src/main/jasperreports/Report2.jrxml | 39 + .../src/main/jasperreports/Report3.jrxml | 39 + .../main/jasperreports/RotationReport.jrxml | 85 ++ .../jasperreports/ScatterChartReport.jrxml | 353 ++++++ .../src/main/jasperreports/ShapesReport.jrxml | 163 +++ .../src/main/jasperreports/SpiderChart.jrxml | 95 ++ .../StackedAreaChartReport.jrxml | 383 ++++++ .../StackedBar3DChartReport.jrxml | 376 ++++++ .../jasperreports/StackedBarChartReport.jrxml | 376 ++++++ .../main/jasperreports/StretchReport.jrxml | 328 ++++++ .../main/jasperreports/StyledTextReport.jrxml | 82 ++ .../src/main/jasperreports/StylesReport.jrxml | 79 ++ .../src/main/jasperreports/TableReport.jrxml | 293 +++++ .../main/jasperreports/TabularReport.jrxml | 273 +++++ .../src/main/jasperreports/TextReport.jrxml | 133 +++ .../ThermometerChartReport.jrxml | 347 ++++++ .../jasperreports/TimeSeriesChartReport.jrxml | 357 ++++++ .../main/jasperreports/UnicodeReport.jrxml | 108 ++ .../jasperreports/VirtualizerReport.jrxml | 52 + .../jasperreports/XYAreaChartReport.jrxml | 352 ++++++ .../main/jasperreports/XYBarChartReport.jrxml | 358 ++++++ .../XYBarChartTimePeriodReport.jrxml | 352 ++++++ .../XYBarChartTimeSeriesReport.jrxml | 355 ++++++ .../jasperreports/XYLineChartReport.jrxml | 348 ++++++ .../jasperreports/XlsDataSourceReport.jrxml | 184 +++ .../jasperreports/XlsFeaturesReport.jrxml | 226 ++++ .../main/jasperreports/XlsFormulaReport.jrxml | 105 ++ .../jasperreports/XlsxDataSourceReport.jrxml | 184 +++ .../skipSampleReports/pom.xml} | 14 +- .../main/jasperreports/AddressesReport.jrxml | 138 +++ src/test/projects/wrongExtensions/pom.xml | 34 + .../src/main/jasperreports/.hiddenTestFile} | 0 .../src/main/jasperreports/ImNotAJasperFile} | 0 .../src/main/jasperreports/no.jasper.file | 0 src/test/resources/testWrongExtensionsPom.xml | 36 - 182 files changed, 17467 insertions(+), 236 deletions(-) rename src/test/{resources/testEmptyFolderPom.xml => projects/brokenReports/pom.xml} (71%) rename src/test/{resources/exampleFolders/brokenReports => projects/brokenReports/src/main/jasperreports}/AlterDesignReport.jrxml (100%) rename src/test/{resources/testBrokenReportsPom.xml => projects/emptyFolder/pom.xml} (71%) rename src/test/{resources/exampleFolders/wrongExtensions/.hiddenTestFile => projects/emptyFolder/src/main/jasperreports/.gitkeep} (100%) rename src/test/{resources/testSampleReportsPom.xml => projects/folderStructure/pom.xml} (71%) rename src/test/{resources/exampleFolders/folderStructure => projects/folderStructure/src/main/jasperreports}/LandscapeReport.jrxml (100%) rename src/test/{resources/exampleFolders/folderStructure => projects/folderStructure/src/main/jasperreports}/level.1/level.2.1/LateOrdersReport.jrxml (100%) rename src/test/{resources/exampleFolders/folderStructure => projects/folderStructure/src/main/jasperreports}/level.1/level.2.2/Level.3/LineChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/folderStructure => projects/folderStructure/src/main/jasperreports}/level.1/level.2.2/MasterReport.jrxml (100%) rename src/test/{resources/testNonExistentFolderPom.xml => projects/nonExistentFolder/pom.xml} (74%) rename src/test/{resources/testNonExistentFolderAllowedPom.xml => projects/nonExistentFolderAllowed/pom.xml} (75%) rename src/test/{resources/testFolderStructurePom.xml => projects/sampleReports/pom.xml} (71%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/AddressReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/AddressesReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/AllChartsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/AlterDesignReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/AreaChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/Bar3DChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/BarChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/BarbecueReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/BubbleChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/CandlestickChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/CsvDataSourceReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/CsvQueryExecuterReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/CustomersReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/DataSourceReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/DocumentsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/FirstJasper.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/FontsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/GanttChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/GenericElementReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/HeadingsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/HibernateQueryReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/HighLowChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/HorizontalListReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/HorizontalReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/HyperlinkReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/I18nReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ImagesReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/JChartsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/JFreeChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/JsonCustomersReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/JsonOrdersReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/LandscapeReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/LateOrdersReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/LineChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ListReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/MacroReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/MapReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/MarkupReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/MasterReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/MeterChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/MultipleAxisChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/NoPageBreakReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/OrdersReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ParagraphsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/PdfEncryptReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/Pie3DChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/PieChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/PlainTextReportWithDefaultFontReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ProductReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ProductsReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/QueryReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/Report1.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/Report2.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/Report3.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/RotationReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ScatterChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ShapesReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/SpiderChart.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/StackedAreaChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/StackedBar3DChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/StackedBarChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/StretchReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/StyledTextReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/StylesReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/TableReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/TabularReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/TextReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/ThermometerChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/TimeSeriesChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/UnicodeReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/VirtualizerReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XYAreaChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XYBarChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XYBarChartTimePeriodReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XYBarChartTimeSeriesReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XYLineChartReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XlsDataSourceReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XlsFeaturesReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XlsFormulaReport.jrxml (100%) rename src/test/{resources/exampleFolders/sampleReports => projects/sampleReports/src/main/jasperreports}/XlsxDataSourceReport.jrxml (100%) rename src/test/{resources/testSampleReportsWithAdditionalPropertiesPom.xml => projects/sampleReportsWithAdditionalProperties/pom.xml} (79%) create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AddressReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AddressesReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AllChartsReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AlterDesignReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AreaChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Bar3DChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/BarChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/BarbecueReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/BubbleChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/CandlestickChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/CsvDataSourceReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/CsvQueryExecuterReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/CustomersReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/DataSourceReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/DocumentsReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/FirstJasper.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/FontsReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/GanttChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/GenericElementReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/HeadingsReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/HibernateQueryReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/HighLowChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/HorizontalListReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/HorizontalReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/HyperlinkReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/I18nReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ImagesReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JChartsReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JFreeChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JsonCustomersReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JsonOrdersReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/LandscapeReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/LateOrdersReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/LineChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ListReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MacroReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MapReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MarkupReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MasterReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MeterChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MultipleAxisChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/NoPageBreakReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/OrdersReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ParagraphsReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/PdfEncryptReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Pie3DChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/PieChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/PlainTextReportWithDefaultFontReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ProductReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ProductsReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/QueryReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Report1.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Report2.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Report3.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/RotationReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ScatterChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ShapesReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/SpiderChart.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StackedAreaChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StackedBar3DChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StackedBarChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StretchReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StyledTextReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StylesReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TableReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TabularReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TextReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/ThermometerChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TimeSeriesChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/UnicodeReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/VirtualizerReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XYAreaChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XYBarChartReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XYBarChartTimePeriodReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XYBarChartTimeSeriesReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XYLineChartReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XlsDataSourceReport.jrxml create mode 100644 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XlsFeaturesReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XlsFormulaReport.jrxml create mode 100755 src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/XlsxDataSourceReport.jrxml rename src/test/{resources/testSkipSampleReportsPom.xml => projects/skipSampleReports/pom.xml} (75%) create mode 100644 src/test/projects/skipSampleReports/src/main/jasperreports/AddressesReport.jrxml create mode 100644 src/test/projects/wrongExtensions/pom.xml rename src/test/{resources/exampleFolders/wrongExtensions/ImNotAJasperFile => projects/wrongExtensions/src/main/jasperreports/.hiddenTestFile} (100%) rename src/test/{resources/exampleFolders/wrongExtensions/no.jasper.file => projects/wrongExtensions/src/main/jasperreports/ImNotAJasperFile} (100%) create mode 100644 src/test/projects/wrongExtensions/src/main/jasperreports/no.jasper.file delete mode 100644 src/test/resources/testWrongExtensionsPom.xml diff --git a/pom.xml b/pom.xml index 820bcfd..45ae4b8 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,8 @@ 8 + 3.0.1 + UTF-8 UTF-8 @@ -103,9 +105,17 @@ - org.apache.maven.shared - maven-plugin-testing-harness - ${version.maven-plugin-testing-harness} + io.takari.maven.plugins + takari-plugin-integration-testing + ${tikari.version} + pom + test + + + + io.takari.maven.plugins + takari-plugin-testing + ${tikari.version} test @@ -176,6 +186,21 @@ + + io.takari.maven.plugins + takari-lifecycle-plugin + 2.1.1 + true + + + testProperties + process-test-resources + + testProperties + + + + org.apache.maven.plugins maven-javadoc-plugin diff --git a/src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java b/src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java index 3ee69b9..3998aaf 100644 --- a/src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java +++ b/src/test/java/com/pro_crafting/tools/jasperreport/JasperReportTest.java @@ -11,43 +11,51 @@ * for the specific language governing permissions and limitations under the License. */ +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.io.File; -import java.io.FileFilter; import java.io.FileInputStream; -import java.io.IOException; +import java.io.InputStream; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; -import net.sf.jasperreports.engine.DefaultJasperReportsContext; -import net.sf.jasperreports.engine.JRException; +import org.apache.maven.plugin.MojoExecutionException; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import io.takari.maven.testing.TestResources; +import io.takari.maven.testing.executor.MavenExecution; +import io.takari.maven.testing.executor.MavenExecutionResult; +import io.takari.maven.testing.executor.MavenRuntime; +import io.takari.maven.testing.executor.MavenRuntime.MavenRuntimeBuilder; +import io.takari.maven.testing.executor.MavenVersions; +import io.takari.maven.testing.executor.junit.MavenJUnitTestRunner; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.util.NullOutputStream; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.testing.AbstractMojoTestCase; -import org.codehaus.plexus.util.FileUtils; /** * Test the report generation. */ -public class JasperReportTest extends AbstractMojoTestCase { - - private static final String TARGET_EXAMPLE_FOLDER = "target/test-classes/exampleFolders"; - private static final String TARGET_EXAMPLE_OUT_FOLDER = "target/unitTestReports"; - private File examplesFolder; - private File sourceFolder; - private File destinationFolder; - - @Override - protected void setUp() throws Exception { - super.setUp(); - examplesFolder = new File(getBasedir(), TARGET_EXAMPLE_FOLDER); - assertTrue("The folder to copy the examples from doesn't exist", examplesFolder.exists()); +@RunWith(MavenJUnitTestRunner.class) +@MavenVersions("3.6.3") +public class JasperReportTest { + + @Rule + public final TestResources resources = new TestResources(); + + private final MavenRuntime mavenRuntime; + + public JasperReportTest(MavenRuntimeBuilder builder) throws Exception { + this.mavenRuntime = builder.build(); } @@ -58,17 +66,19 @@ protected void setUp() throws Exception { * @throws Exception * When an unexpexted error occures. */ + @Test public void testValidReportGeneration() throws Exception { - String pluginPom = getBasedir() + "/src/test/resources/testSampleReportsPom.xml"; + File basedir = this.resources.getBasedir("sampleReports"); - setupSourceAndDestinationFolder("/sampleReports", "/sampleReports_out"); + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); - getAndExecuteMojo(pluginPom); + File sourceFolder = new File(basedir, "src/main/jasperreports"); + File destinationFolder = new File(basedir, "target/classes/jasper"); assertEquals("Files from sourcefolder do not correspond to files in the destinationFolder", sourceFolder.listFiles().length, destinationFolder.listFiles().length); assertAllFilesAreCompiled(sourceFolder, destinationFolder); - } /** @@ -78,87 +88,63 @@ public void testValidReportGeneration() throws Exception { * @throws Exception * When an unexpexted error occures. */ + @Test public void testGivenAdditionalPropertiesAreSetWhenTestingValidReportGenerationExpectNoErrorOnCompilation() throws Exception { - String pluginPom = getBasedir() + "/src/test/resources/testSampleReportsWithAdditionalPropertiesPom.xml"; - setupSourceAndDestinationFolder("/sampleReports", "/sampleReports_out"); + File basedir = this.resources.getBasedir("sampleReportsWithAdditionalProperties"); - getAndExecuteMojo(pluginPom); - String defaultPdfFontName = DefaultJasperReportsContext.getInstance() - .getProperty("net.sf.jasperreports.default.pdf.font.name"); - String pdfEmbeddedValue = DefaultJasperReportsContext.getInstance() - .getProperty("net.sf.jasperreports.default.pdf.embedded"); + runSampleReportsWithAdditionalProperties(basedir); + } + + + private void runSampleReportsWithAdditionalProperties(File basedir) throws Exception, MojoExecutionException { + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); + + File sourceFolder = new File(basedir, "src/main/jasperreports"); + File destinationFolder = new File(basedir, "target/classes/jasper"); assertEquals("Files from sourcefolder do not correspond to files in the destinationFolder", sourceFolder.listFiles().length, destinationFolder.listFiles().length); assertAllFilesAreCompiled(sourceFolder, destinationFolder); - assertTrue(defaultPdfFontName != null); - assertTrue("default pdf font name has not been set properly", defaultPdfFontName.compareTo("Courier") == 0); - assertTrue("net.sf.jasperreports.default.pdf.embedded has not been set properly", - pdfEmbeddedValue.compareTo("true") == 0); + result.assertLogText("net.sf.jasperreports.default.pdf.font.name=Courier"); + result.assertLogText("net.sf.jasperreports.default.pdf.embedded=true"); } + @Test public void testGivenAdditionalPropertiesAreSetWhenTestingValidReportGenerationAndExportToPdfExpectNoErrors() throws Exception { // compile reports with modified default font property first - testGivenAdditionalPropertiesAreSetWhenTestingValidReportGenerationExpectNoErrorOnCompilation(); + File basedir = this.resources.getBasedir("sampleReportsWithAdditionalProperties"); + + runSampleReportsWithAdditionalProperties(basedir); // now based on the templates, create PDF's + File destinationFolder = new File(basedir, "target/classes/jasper"); assertTrue("Destination is not a directory", destinationFolder.isDirectory()); - List testFiles = Arrays.asList(destinationFolder.listFiles(new FileFilter() { - @Override - public boolean accept(File pathname) { - return pathname.toString() - .contains("PlainTextReportWithDefaultFontReport"); - } - })); + List testFiles = Arrays.asList(destinationFolder.listFiles( + pathname -> pathname.toString().contains("PlainTextReportWithDefaultFontReport"))); - if (testFiles.size() != 1) { - fail("Expected exactly one testfile to be found in directory"); - } + assertEquals("Expected exactly one testfile to be found in directory", 1, testFiles.size()); - createPdf("PlainTextReportWithDefaultFontReport.jasper"); + createPdf(destinationFolder, "PlainTextReportWithDefaultFontReport.jasper"); } - private void createPdf(String filename) { - File file = new File(destinationFolder.getPath() + "/" + filename); - try { - JasperPrint print = JasperFillManager.fillReport(new FileInputStream(file), new HashMap()); - JasperExportManager.exportReportToPdfStream(print, new NullOutputStream()); + private void createPdf(File destinationFolder, String filename) throws Exception { + File file = new File(destinationFolder, filename); + JasperPrint print; + try (InputStream inputStream = new FileInputStream(file)) { + print = JasperFillManager.fillReport(new FileInputStream(file), new HashMap<>()); } - catch (IOException e) { - fail("Unable to create exportfile: Errormessage:" + e.getMessage()); - } - catch (JRException e) { - fail("Unable to create pdf: Errormessage:" + e.getMessage()); - } - catch (IllegalArgumentException e) { - fail("Unable to create pdf: IllegalArgumentException:" + e.getMessage()); - } - + JasperExportManager.exportReportToPdfStream(print, new NullOutputStream()); } - private void getAndExecuteMojo(String pluginPom) throws Exception, MojoExecutionException { - JasperReporter mojo = (JasperReporter) lookupMojo("jasper", pluginPom); - assertNotNull(mojo); - mojo.execute(); - } + private MavenExecutionResult getAndExecuteMojo(File basedir) throws Exception, MojoExecutionException { + MavenExecution execution = this.mavenRuntime.forProject(basedir); - /** - * Create the source and destination folder. If the destination folder already exsist is shall - * be deleted. Otherwise the tests can't run properly. - */ - private void setupSourceAndDestinationFolder(String sourceFolderName, String destinationFolderName) - throws IOException { - sourceFolder = new File(getBasedir(), TARGET_EXAMPLE_FOLDER + sourceFolderName); - destinationFolder = new File(getBasedir(), TARGET_EXAMPLE_OUT_FOLDER + destinationFolderName); - if (destinationFolder.exists()) { - FileUtils.deleteDirectory(destinationFolder); - } - assertTrue("Source folder doesn't exist: " + sourceFolder.getAbsolutePath(), sourceFolder.exists()); - assertFalse("Destination folder shouldn't exist", destinationFolder.exists()); + return execution.execute("process-sources"); } /** @@ -168,7 +154,7 @@ private void setupSourceAndDestinationFolder(String sourceFolderName, String des private void assertAllFilesAreCompiled(File sourceFolder, File destinationFolder) { assertTrue("Source folder is not a directory", sourceFolder.isDirectory()); assertTrue("Destination is not a directory", destinationFolder.isDirectory()); - Set filenames = new HashSet(); + Set filenames = new HashSet<>(); for (File file : sourceFolder.listFiles()) { if (file.isFile()) { filenames.add(getNameWithoutSuffix(file, ".jrxml")); @@ -184,38 +170,46 @@ private void assertAllFilesAreCompiled(File sourceFolder, File destinationFolder private String getNameWithoutSuffix(File file, String suffix) { return file.getName() - .substring(0, file.getName() - .indexOf(suffix)); + .substring(0, file.getName() + .indexOf(suffix)); } - /** - * Test that an invalid Jasper file should stop the build completely by throwing an - * {@link MojoExecutionException}. - * - * @throws Exception - * When an unexpected error occurs. - */ - public void testInvalidFilesStopBuild() throws Exception { - setupSourceAndDestinationFolder("/brokenReports", "/brokenReports_out"); - try { - getAndExecuteMojo(getBasedir() + "/src/test/resources/testBrokenReportsPom.xml"); - fail("An exception should have been thrown"); - } - catch (MojoExecutionException e) { - assertEquals(JasperReporter.ERROR_JRE_COMPILE_ERROR, e.getMessage()); - } - } + /** + * Test that an invalid Jasper file should stop the build completely by throwing an + * {@link MojoExecutionException}. + * + * @throws Exception + * When an unexpected error occurs. + */ + @Test + public void testInvalidFilesStopBuild() throws Exception { + + File basedir = this.resources.getBasedir("brokenReports"); + + MavenExecutionResult result = getAndExecuteMojo(basedir); + + result.assertLogText("BUILD FAILURE"); + result.assertLogText(JasperReporter.ERROR_JRE_COMPILE_ERROR); + + File destinationFolder = new File(basedir, "target/classes/jasper"); + assertTrue("Output folder should be empty", destinationFolder.list().length == 0); + } /** * Test that skipping the plugin does not compile any Jasper file. * - * @throws Exception - * When an unexpected error occurs. + * @throws Exception + * When an unexpected error occurs. */ + @Test public void testSkipDoesntCompile() throws Exception { - setupSourceAndDestinationFolder("/sampleReports", "/skipReports_out"); - getAndExecuteMojo(getBasedir() + "/src/test/resources/testSkipSampleReportsPom.xml"); - assertFalse("Output folder should not exist", destinationFolder.exists()); + File basedir = this.resources.getBasedir("skipSampleReports"); + + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); + + File destinationFolder = new File(basedir, "target/classes/jasper"); + assertFalse("Output folder should not exist", destinationFolder.exists()); } /** @@ -224,9 +218,14 @@ public void testSkipDoesntCompile() throws Exception { * @throws Exception * When an unexpected error occurs. */ + @Test public void testWrongSuffixDoesntCompile() throws Exception { - setupSourceAndDestinationFolder("/wrongExtensions", "/wrongExtensions_out"); - getAndExecuteMojo(getBasedir() + "/src/test/resources/testWrongExtensionsPom.xml"); + File basedir = this.resources.getBasedir("wrongExtensions"); + + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); + + File destinationFolder = new File(basedir, "target/classes/jasper"); assertTrue("Output folder should be empty", destinationFolder.list().length == 0); } @@ -236,10 +235,14 @@ public void testWrongSuffixDoesntCompile() throws Exception { * @throws Exception * When an unexpected error occurs. */ + @Test public void testEmptyDoesNothing() throws Exception { - createTheEmptyFolderIfItDoesntExist(); - setupSourceAndDestinationFolder("/emptyFolder", "/emptyFolder_out"); - getAndExecuteMojo(getBasedir() + "/src/test/resources/testEmptyFolderPom.xml"); + File basedir = this.resources.getBasedir("emptyFolder"); + + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); + + File destinationFolder = new File(basedir, "target/classes/jasper"); assertTrue("Output folder should be empty", destinationFolder.list().length == 0); } @@ -249,14 +252,14 @@ public void testEmptyDoesNothing() throws Exception { * @throws Exception * When an unexpected error occurs. */ + @Test public void testNonExistentFolderStopBuild() throws Exception { - try { - getAndExecuteMojo(getBasedir() + "/src/test/resources/testNonExistentFolderPom.xml"); - fail("An exception should have been thrown"); - } - catch (IllegalArgumentException e) { - assertTrue(e.getMessage().contains("nonExistentFolder")); - } + File basedir = this.resources.getBasedir("nonExistentFolder"); + + MavenExecutionResult result = getAndExecuteMojo(basedir); + + result.assertLogText("BUILD FAILURE"); + result.assertLogText("nonExistentFolder"); } /** @@ -265,21 +268,15 @@ public void testNonExistentFolderStopBuild() throws Exception { * @throws Exception * When an unexpected error occurs. */ + @Test public void testNonExistentFolderAllowed() throws Exception { - setupSourceAndDestinationFolder("/emptyFolder", "/emptyFolder_out"); - getAndExecuteMojo(getBasedir() + "/src/test/resources/testNonExistentFolderAllowedPom.xml"); - assertTrue("Output folder should be empty", destinationFolder.list().length == 0); - } + File basedir = this.resources.getBasedir("nonExistentFolderAllowed"); - /** - * The empty folder we test on is not transported by Git. We therefor have to create it manually - * to do the test. - */ - private void createTheEmptyFolderIfItDoesntExist() { - sourceFolder = new File(getBasedir(), TARGET_EXAMPLE_FOLDER + "/emptyFolder"); - if (!sourceFolder.exists()) { - sourceFolder.mkdir(); - } + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); + + File destinationFolder = new File(basedir, "target/classes/jasper"); + assertTrue("Output folder should be empty", destinationFolder.list().length == 0); } /** @@ -289,9 +286,14 @@ private void createTheEmptyFolderIfItDoesntExist() { * @throws Exception * When an unexpected error occurs. */ + @Test public void testFolderStructure() throws Exception { - setupSourceAndDestinationFolder("/folderStructure", "/folderStructure_out"); - getAndExecuteMojo(getBasedir() + "/src/test/resources/testFolderStructurePom.xml"); + File basedir = this.resources.getBasedir("folderStructure"); + + MavenExecutionResult result = getAndExecuteMojo(basedir); + result.assertErrorFreeLog(); + + File destinationFolder = new File(basedir, "target/classes/jasper"); Set filenames = detectFolderStructure(destinationFolder); String relativePath = destinationFolder.getAbsolutePath() + '/'; String fileMissing = "A file in the folderstructure is missing"; @@ -308,7 +310,7 @@ public void testFolderStructure() throws Exception { } private Set detectFolderStructure(File folderToSearch) { - Set set = new HashSet(); + Set set = new HashSet<>(); for (File f : folderToSearch.listFiles()) { if (f.isDirectory()) { set.addAll(detectFolderStructure(f)); diff --git a/src/test/resources/testEmptyFolderPom.xml b/src/test/projects/brokenReports/pom.xml similarity index 71% rename from src/test/resources/testEmptyFolderPom.xml rename to src/test/projects/brokenReports/pom.xml index c63584c..072e194 100644 --- a/src/test/resources/testEmptyFolderPom.xml +++ b/src/test/projects/brokenReports/pom.xml @@ -10,26 +10,24 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT + com.pro-crafting.tools jasperreports-plugin + ${it-plugin.version} process-sources - compile + jasper - - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/emptyFolder - target/unitTestReports/emptyFolder_out - diff --git a/src/test/resources/exampleFolders/brokenReports/AlterDesignReport.jrxml b/src/test/projects/brokenReports/src/main/jasperreports/AlterDesignReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/brokenReports/AlterDesignReport.jrxml rename to src/test/projects/brokenReports/src/main/jasperreports/AlterDesignReport.jrxml diff --git a/src/test/resources/testBrokenReportsPom.xml b/src/test/projects/emptyFolder/pom.xml similarity index 71% rename from src/test/resources/testBrokenReportsPom.xml rename to src/test/projects/emptyFolder/pom.xml index 958bf0e..072e194 100644 --- a/src/test/resources/testBrokenReportsPom.xml +++ b/src/test/projects/emptyFolder/pom.xml @@ -10,26 +10,24 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT + com.pro-crafting.tools jasperreports-plugin + ${it-plugin.version} process-sources - compile + jasper - - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/brokenReports - target/unitTestReports/brokenReports_out - diff --git a/src/test/resources/exampleFolders/wrongExtensions/.hiddenTestFile b/src/test/projects/emptyFolder/src/main/jasperreports/.gitkeep similarity index 100% rename from src/test/resources/exampleFolders/wrongExtensions/.hiddenTestFile rename to src/test/projects/emptyFolder/src/main/jasperreports/.gitkeep diff --git a/src/test/resources/testSampleReportsPom.xml b/src/test/projects/folderStructure/pom.xml similarity index 71% rename from src/test/resources/testSampleReportsPom.xml rename to src/test/projects/folderStructure/pom.xml index 58b567d..072e194 100644 --- a/src/test/resources/testSampleReportsPom.xml +++ b/src/test/projects/folderStructure/pom.xml @@ -10,26 +10,24 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT + com.pro-crafting.tools jasperreports-plugin + ${it-plugin.version} process-sources - compile + jasper - - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/sampleReports - target/unitTestReports/sampleReports_out - diff --git a/src/test/resources/exampleFolders/folderStructure/LandscapeReport.jrxml b/src/test/projects/folderStructure/src/main/jasperreports/LandscapeReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/folderStructure/LandscapeReport.jrxml rename to src/test/projects/folderStructure/src/main/jasperreports/LandscapeReport.jrxml diff --git a/src/test/resources/exampleFolders/folderStructure/level.1/level.2.1/LateOrdersReport.jrxml b/src/test/projects/folderStructure/src/main/jasperreports/level.1/level.2.1/LateOrdersReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/folderStructure/level.1/level.2.1/LateOrdersReport.jrxml rename to src/test/projects/folderStructure/src/main/jasperreports/level.1/level.2.1/LateOrdersReport.jrxml diff --git a/src/test/resources/exampleFolders/folderStructure/level.1/level.2.2/Level.3/LineChartReport.jrxml b/src/test/projects/folderStructure/src/main/jasperreports/level.1/level.2.2/Level.3/LineChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/folderStructure/level.1/level.2.2/Level.3/LineChartReport.jrxml rename to src/test/projects/folderStructure/src/main/jasperreports/level.1/level.2.2/Level.3/LineChartReport.jrxml diff --git a/src/test/resources/exampleFolders/folderStructure/level.1/level.2.2/MasterReport.jrxml b/src/test/projects/folderStructure/src/main/jasperreports/level.1/level.2.2/MasterReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/folderStructure/level.1/level.2.2/MasterReport.jrxml rename to src/test/projects/folderStructure/src/main/jasperreports/level.1/level.2.2/MasterReport.jrxml diff --git a/src/test/resources/testNonExistentFolderPom.xml b/src/test/projects/nonExistentFolder/pom.xml similarity index 74% rename from src/test/resources/testNonExistentFolderPom.xml rename to src/test/projects/nonExistentFolder/pom.xml index 4781e84..1806791 100644 --- a/src/test/resources/testNonExistentFolderPom.xml +++ b/src/test/projects/nonExistentFolder/pom.xml @@ -10,6 +10,10 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT @@ -18,17 +22,12 @@ process-sources - compile + jasper - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/nonExistentFolder - target/unitTestReports/emptyFolder_out + nonExistentFolder diff --git a/src/test/resources/testNonExistentFolderAllowedPom.xml b/src/test/projects/nonExistentFolderAllowed/pom.xml similarity index 75% rename from src/test/resources/testNonExistentFolderAllowedPom.xml rename to src/test/projects/nonExistentFolderAllowed/pom.xml index 365144c..ff41628 100644 --- a/src/test/resources/testNonExistentFolderAllowedPom.xml +++ b/src/test/projects/nonExistentFolderAllowed/pom.xml @@ -10,25 +10,26 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT + com.pro-crafting.tools jasperreports-plugin + ${it-plugin.version} process-sources - compile + jasper - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/nonExistentFolder - target/unitTestReports/emptyFolder_out + nonExistentFolder false diff --git a/src/test/resources/testFolderStructurePom.xml b/src/test/projects/sampleReports/pom.xml similarity index 71% rename from src/test/resources/testFolderStructurePom.xml rename to src/test/projects/sampleReports/pom.xml index 5a35a36..072e194 100644 --- a/src/test/resources/testFolderStructurePom.xml +++ b/src/test/projects/sampleReports/pom.xml @@ -10,26 +10,24 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT + com.pro-crafting.tools jasperreports-plugin + ${it-plugin.version} process-sources - compile + jasper - - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/folderStructure - target/unitTestReports/folderStructure_out - diff --git a/src/test/resources/exampleFolders/sampleReports/AddressReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/AddressReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/AddressReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/AddressReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/AddressesReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/AddressesReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/AddressesReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/AddressesReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/AllChartsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/AllChartsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/AllChartsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/AllChartsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/AlterDesignReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/AlterDesignReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/AlterDesignReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/AlterDesignReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/AreaChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/AreaChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/AreaChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/AreaChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/Bar3DChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/Bar3DChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/Bar3DChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/Bar3DChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/BarChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/BarChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/BarChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/BarChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/BarbecueReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/BarbecueReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/BarbecueReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/BarbecueReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/BubbleChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/BubbleChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/BubbleChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/BubbleChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/CandlestickChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/CandlestickChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/CandlestickChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/CandlestickChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/CsvDataSourceReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/CsvDataSourceReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/CsvDataSourceReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/CsvDataSourceReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/CsvQueryExecuterReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/CsvQueryExecuterReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/CsvQueryExecuterReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/CsvQueryExecuterReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/CustomersReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/CustomersReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/CustomersReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/CustomersReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/DataSourceReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/DataSourceReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/DataSourceReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/DataSourceReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/DocumentsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/DocumentsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/DocumentsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/DocumentsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/FirstJasper.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/FirstJasper.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/FirstJasper.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/FirstJasper.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/FontsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/FontsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/FontsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/FontsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/GanttChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/GanttChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/GanttChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/GanttChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/GenericElementReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/GenericElementReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/GenericElementReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/GenericElementReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/HeadingsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/HeadingsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/HeadingsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/HeadingsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/HibernateQueryReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/HibernateQueryReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/HibernateQueryReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/HibernateQueryReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/HighLowChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/HighLowChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/HighLowChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/HighLowChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/HorizontalListReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/HorizontalListReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/HorizontalListReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/HorizontalListReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/HorizontalReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/HorizontalReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/HorizontalReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/HorizontalReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/HyperlinkReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/HyperlinkReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/HyperlinkReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/HyperlinkReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/I18nReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/I18nReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/I18nReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/I18nReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ImagesReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ImagesReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ImagesReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ImagesReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/JChartsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/JChartsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/JChartsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/JChartsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/JFreeChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/JFreeChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/JFreeChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/JFreeChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/JsonCustomersReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/JsonCustomersReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/JsonCustomersReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/JsonCustomersReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/JsonOrdersReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/JsonOrdersReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/JsonOrdersReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/JsonOrdersReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/LandscapeReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/LandscapeReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/LandscapeReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/LandscapeReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/LateOrdersReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/LateOrdersReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/LateOrdersReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/LateOrdersReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/LineChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/LineChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/LineChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/LineChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ListReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ListReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ListReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ListReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/MacroReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/MacroReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/MacroReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/MacroReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/MapReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/MapReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/MapReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/MapReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/MarkupReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/MarkupReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/MarkupReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/MarkupReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/MasterReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/MasterReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/MasterReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/MasterReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/MeterChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/MeterChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/MeterChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/MeterChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/MultipleAxisChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/MultipleAxisChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/MultipleAxisChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/MultipleAxisChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/NoPageBreakReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/NoPageBreakReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/NoPageBreakReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/NoPageBreakReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/OrdersReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/OrdersReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/OrdersReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/OrdersReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ParagraphsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ParagraphsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ParagraphsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ParagraphsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/PdfEncryptReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/PdfEncryptReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/PdfEncryptReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/PdfEncryptReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/Pie3DChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/Pie3DChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/Pie3DChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/Pie3DChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/PieChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/PieChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/PieChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/PieChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/PlainTextReportWithDefaultFontReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/PlainTextReportWithDefaultFontReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/PlainTextReportWithDefaultFontReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/PlainTextReportWithDefaultFontReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ProductReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ProductReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ProductReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ProductReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ProductsReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ProductsReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ProductsReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ProductsReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/QueryReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/QueryReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/QueryReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/QueryReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/Report1.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/Report1.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/Report1.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/Report1.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/Report2.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/Report2.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/Report2.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/Report2.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/Report3.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/Report3.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/Report3.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/Report3.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/RotationReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/RotationReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/RotationReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/RotationReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ScatterChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ScatterChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ScatterChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ScatterChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ShapesReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ShapesReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ShapesReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ShapesReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/SpiderChart.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/SpiderChart.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/SpiderChart.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/SpiderChart.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/StackedAreaChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/StackedAreaChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/StackedAreaChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/StackedAreaChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/StackedBar3DChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/StackedBar3DChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/StackedBar3DChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/StackedBar3DChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/StackedBarChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/StackedBarChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/StackedBarChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/StackedBarChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/StretchReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/StretchReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/StretchReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/StretchReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/StyledTextReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/StyledTextReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/StyledTextReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/StyledTextReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/StylesReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/StylesReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/StylesReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/StylesReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/TableReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/TableReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/TableReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/TableReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/TabularReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/TabularReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/TabularReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/TabularReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/TextReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/TextReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/TextReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/TextReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/ThermometerChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/ThermometerChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/ThermometerChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/ThermometerChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/TimeSeriesChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/TimeSeriesChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/TimeSeriesChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/TimeSeriesChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/UnicodeReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/UnicodeReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/UnicodeReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/UnicodeReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/VirtualizerReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/VirtualizerReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/VirtualizerReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/VirtualizerReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XYAreaChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XYAreaChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XYAreaChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XYAreaChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XYBarChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XYBarChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XYBarChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XYBarChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XYBarChartTimePeriodReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XYBarChartTimePeriodReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XYBarChartTimePeriodReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XYBarChartTimePeriodReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XYBarChartTimeSeriesReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XYBarChartTimeSeriesReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XYBarChartTimeSeriesReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XYBarChartTimeSeriesReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XYLineChartReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XYLineChartReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XYLineChartReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XYLineChartReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XlsDataSourceReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XlsDataSourceReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XlsDataSourceReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XlsDataSourceReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XlsFeaturesReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XlsFeaturesReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XlsFeaturesReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XlsFeaturesReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XlsFormulaReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XlsFormulaReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XlsFormulaReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XlsFormulaReport.jrxml diff --git a/src/test/resources/exampleFolders/sampleReports/XlsxDataSourceReport.jrxml b/src/test/projects/sampleReports/src/main/jasperreports/XlsxDataSourceReport.jrxml similarity index 100% rename from src/test/resources/exampleFolders/sampleReports/XlsxDataSourceReport.jrxml rename to src/test/projects/sampleReports/src/main/jasperreports/XlsxDataSourceReport.jrxml diff --git a/src/test/resources/testSampleReportsWithAdditionalPropertiesPom.xml b/src/test/projects/sampleReportsWithAdditionalProperties/pom.xml similarity index 79% rename from src/test/resources/testSampleReportsWithAdditionalPropertiesPom.xml rename to src/test/projects/sampleReportsWithAdditionalProperties/pom.xml index a391a83..8678db4 100644 --- a/src/test/resources/testSampleReportsWithAdditionalPropertiesPom.xml +++ b/src/test/projects/sampleReportsWithAdditionalProperties/pom.xml @@ -10,25 +10,26 @@ language governing permissions and limitations under the License. --> + 4.0.0 + com.pro-crafting.tools + project-to-test + 1.0-SNAPSHOT + com.pro-crafting.tools jasperreports-plugin + ${it-plugin.version} process-sources - compile + jasper - true - 4 - .jasper - .jrxml - target/test-classes/exampleFolders/sampleReports - target/unitTestReports/sampleReports_out + true true diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AddressReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AddressReport.jrxml new file mode 100755 index 0000000..7ec9842 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/AddressReport.jrxml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "EEE, MMM d, yyyy" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5)]]> + + + + + + + + + <band height="100"> + <elementGroup> + <line> + <reportElement x="0" y="0" width="555" height="1"/> + </line> + <image scaleImage="Clip"> + <reportElement x="0" y="5" width="165" height="40" key="TransparentImage"/> + <imageExpression class="java.lang.String"><![CDATA["jasperreports.png"]]></imageExpression> + <hyperlinkTooltipExpression><![CDATA["The JasperReports Logo"]]></hyperlinkTooltipExpression> + </image> + </elementGroup> + <textField isBlankWhenNull="true"> + <reportElement style="Serif_Bold" x="180" y="5" width="375" height="35"/> + <textElement textAlignment="Right"> + <font size="22"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{ReportTitle}]]></textFieldExpression> + </textField> + <staticText> + <reportElement style="Sans_Italic" x="180" y="40" width="375" height="15"/> + <textElement textAlignment="Right"> + <font size="12"/> + </textElement> + <text><![CDATA[(c)2001-2009 by teodord]]></text> + </staticText> + <textField evaluationTime="Report"> + <reportElement x="255" y="55" width="100" height="40"/> + <textElement textAlignment="Justified"/> + <textFieldExpression class="java.lang.String"><![CDATA["There are " + String.valueOf($V{REPORT_COUNT}) + " orders on this report, with a total freight of " + new DecimalFormat("0.00").format($V{FreightSumReport}.doubleValue())]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/FontsReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/FontsReport.jrxml new file mode 100644 index 0000000..1ef5491 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/FontsReport.jrxml @@ -0,0 +1,149 @@ + + + + <band height="782"> + <staticText> + <reportElement x="0" y="50" width="150" height="40"/> + <textElement/> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="50" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="50" width="150" height="40"/><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="100" width="150" height="40"/> + <textElement> + <font size="12"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="100" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="100" width="150" height="40"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="150" width="150" height="40"/> + <textElement> + <font fontName="Gentium" size="12"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="150" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="150" width="150" height="40"/><textElement><font fontName="Gentium" size="12"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="200" width="150" height="40"/> + <textElement> + <font fontName="Gentium" size="12" isBold="true" isItalic="true"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="200" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="200" width="150" height="40"/><textElement><font fontName="Gentium" size="12" isBold="true" isItalic="true"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="250" width="150" height="40"/> + <textElement> + <font fontName="DejaVu Serif" size="12" isBold="false"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="250" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="250" width="150" height="40"/><textElement><font fontName="DejaVu Serif" size="12" isBold="false"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="300" width="150" height="40"/> + <textElement> + <font fontName="DejaVu Serif" size="12" isBold="true"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="300" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="300" width="150" height="40"/><textElement><font fontName="DejaVu Serif" size="12" isBold="true"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="350" width="150" height="40"/> + <textElement> + <font fontName="Monospaced" size="12" isItalic="true" isUnderline="true" pdfFontName="Courier-Oblique"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="350" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="350" width="150" height="40"/><textElement><font fontName="Monospaced" size="12" isItalic="true" isUnderline="true" pdfFontName="Courier-Oblique"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="400" width="150" height="40"/> + <textElement> + <font fontName="Monospaced" size="12" isBold="true" isStrikeThrough="true" pdfFontName="Courier-Bold"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="400" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="400" width="150" height="40"/><textElement><font fontName="Monospaced" size="12" isBold="true" isStrikeThrough="true" pdfFontName="Courier-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement x="0" y="450" width="150" height="40" forecolor="#FF0000"/> + <textElement> + <font size="14"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="450" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="450" width="150" height="40" forecolor="red"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement mode="Opaque" x="0" y="500" width="150" height="40" forecolor="#00FF00" backcolor="#FFFF00"/> + <textElement> + <font fontName="Serif" size="12" isBold="true" pdfFontName="Times-Bold"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="500" width="390" height="40"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="500" width="150" height="40" forecolor="green" backcolor="#FFFF00" mode="Opaque"/><textElement><font fontName="Serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement mode="Opaque" x="0" y="550" width="150" height="90" forecolor="#0000FF" backcolor="#FFDD99"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font fontName="SansSerif" size="12" isBold="false" isItalic="true" pdfFontName="Sans.Slanted" isPdfEmbedded="true"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="550" width="390" height="90"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="550" width="150" height="90" forecolor="blue" backcolor="#FFDD99" mode="Opaque"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="SansSerif" size="12" isBold="false" pdfFontName="Sans.Slanted" isPdfEmbedded="true"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + <staticText> + <reportElement mode="Opaque" x="0" y="650" width="150" height="90" forecolor="#FF0000" backcolor="#99DDFF"/> + <textElement textAlignment="Right" verticalAlignment="Bottom"> + <font fontName="SansSerif" size="12" isBold="true" pdfFontName="DejaVu Sans Bold" isPdfEmbedded="true"/> + </textElement> + <text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text> + </staticText> + <staticText> + <reportElement x="160" y="650" width="390" height="90"/> + <textElement/> + <text><![CDATA[<staticText><reportElement x="0" y="650" width="150" height="90" forecolor="red" backcolor="#99DDFF" mode="Opaque"/><textElement textAlignment="Right" verticalAlignment="Bottom"><font fontName="SansSerif" size="12" isBold="true" pdfFontName="DejaVu Sans Bold" isPdfEmbedded="true"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text> + </staticText> + </band> + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/GanttChartReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/GanttChartReport.jrxml new file mode 100644 index 0000000..7108653 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/GanttChartReport.jrxml @@ -0,0 +1,150 @@ + + + + + <band height="782"> + <image scaleImage="Clip" onErrorType="Icon" isLazy="true"> + <reportElement x="0" y="0" width="150" height="40"/> + <imageExpression class="java.lang.String"><![CDATA["http://jasperreports.sourceforge.net/jasperreports.png"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="0" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip" onErrorType="Icon" isLazy="true"><reportElement x="0" y="0" width="150" height="40"/><imageExpression class="java.lang.String">"http://jasperreports.sourceforge.net/jasperreports.png"</imageExpression></image>]]></text> + </staticText> + <image> + <reportElement x="0" y="50" width="150" height="40"/> + <box> + <pen lineWidth="0.5"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["dukesign.jpg"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="50" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="RetainShape"><reportElement x="0" y="50" width="150" height="40"/><box><pen lineWidth="0.5"/></box><imageExpression>"dukesign.jpg"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="Clip"> + <reportElement x="0" y="100" width="150" height="40" mode="Opaque" backcolor="yellow"/> + <box padding="5"> + <pen lineWidth="0.5"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["dukesign.jpg"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="100" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip"><reportElement x="0" y="100" width="150" height="40" mode="Opaque" backcolor="yellow"/><box padding="5"/><pen lineWidth="0.5"/></box><imageExpression>"dukesign.jpg"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="FillFrame"> + <reportElement x="0" y="150" width="150" height="40"/> + <box> + <pen lineWidth="0.5"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["dukesign.jpg"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="150" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="FillFrame" isUsingCache="true"><reportElement x="0" y="150" width="150" height="40"/><box><pen lineWidth="0.5"/></box><imageExpression>"dukesign.jpg"</imageExpression></image>]]></text> + </staticText> + <image hAlign="Center" isUsingCache="false"> + <reportElement x="0" y="200" width="150" height="40"/> + <box> + <pen lineWidth="0.5"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["dukesign.jpg"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="200" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="RetainShape" hAlign="Center" isUsingCache="false"><reportElement x="0" y="200" width="150" height="40"/><box><pen lineWidth="0.5"/></box><imageExpression>"dukesign.jpg"</imageExpression></image>]]></text> + </staticText> + <rectangle> + <reportElement x="0" y="250" width="150" height="40" backcolor="#ffdddd"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <image> + <reportElement x="5" y="255" width="70" height="30"/> + <graphicElement/> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="250" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="RetainShape"><reportElement x="5" y="255" width="70" height="30"/><graphicElement/><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <rectangle> + <reportElement x="0" y="300" width="150" height="40" backcolor="#ffdddd"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <image scaleImage="Clip"> + <reportElement x="5" y="305" width="70" height="30" backcolor="#ffdddd"/> + <graphicElement/> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="300" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip"><reportElement x="5" y="305" width="70" height="30"/><graphicElement/><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <rectangle> + <reportElement x="0" y="350" width="150" height="40" backcolor="#ffdddd"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <image> + <reportElement mode="Opaque" x="5" y="355" width="30" height="30" backcolor="#ddffdd"/> + <graphicElement/> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="350" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="RetainShape"><reportElement x="5" y="355" width="30" height="30" mode="Opaque" backcolor="#DDFFDD"/><graphicElement/><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <rectangle> + <reportElement x="0" y="400" width="150" height="40" backcolor="#ffdddd"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <image scaleImage="Clip" hAlign="Center" vAlign="Middle"> + <reportElement mode="Opaque" x="5" y="405" width="120" height="30" backcolor="#ddffdd"/> + <graphicElement/> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="400" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip" hAlign="Center" vAlign="Middle"><reportElement x="5" y="405" width="120" height="30" mode="Opaque" backcolor="#DDFFDD"/><graphicElement/><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="Clip"> + <reportElement x="50" y="455" width="50" height="30" forecolor="#ff0000"/> + <box> + <pen lineWidth="0.5"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="450" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip"><reportElement x="50" y="455" width="50" height="30" forecolor="red"/><box><pen lineWidth="0.5"/></box><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="Clip"> + <reportElement x="50" y="505" width="50" height="30" forecolor="#ff0000"/> + <box> + <pen lineWidth="1" lineStyle="Dashed"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="500" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip"><reportElement x="50" y="505" width="50" height="30" forecolor="red"/><box><pen lineWidth="1" lineStyle="Dashed"/></box><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="Clip"> + <reportElement x="50" y="555" width="50" height="30" forecolor="#ff0000"/> + <box> + <pen lineWidth="1"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="550" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip"><reportElement x="50" y="555" width="50" height="30" forecolor="red"/><box><pen lineWidth="1"/></box><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="Clip"> + <reportElement x="50" y="605" width="50" height="30" forecolor="#ff0000"/> + <box> + <pen lineWidth="2"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="600" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip"><reportElement x="50" y="605" width="50" height="30" forecolor="red"/><box><pen lineWidth="2"/></box><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <image scaleImage="Clip" hAlign="Right"> + <reportElement x="50" y="655" width="50" height="30" forecolor="#ff0000"/> + <box> + <pen lineWidth="4"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["transparent.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="650" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image scaleImage="Clip" hAlign="Right" vAlign="Top"><reportElement x="50" y="655" width="50" height="30" forecolor="red"/><box><pen lineWidth="4"/></box><imageExpression>"transparent.gif"</imageExpression></image>]]></text> + </staticText> + <image> + <reportElement x="50" y="705" width="6" height="6" forecolor="#ff00"/> + <box> + <pen lineWidth="4"/> + </box> + <imageExpression class="java.lang.String"><![CDATA["1redpixel.gif"]]></imageExpression> + </image> + <staticText> + <reportElement x="160" y="700" width="390" height="40"/> + <textElement/> + <text><![CDATA[<image><reportElement x="50" y="705" width="6" height="6" forecolor="green"/><box><pen lineWidth="4"/></box><imageExpression>"1redpixel.gif"</imageExpression></image>]]></text> + </staticText> + </band> + + + + + + + + + + + + + "dukesign.jpg"]]> + + + + + + + + + + + + "dukesign.jpg"]]> + + + + + + + + + + + + "dukesign.jpg"]]> + + + + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JChartsReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JChartsReport.jrxml new file mode 100644 index 0000000..e9959dd --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JChartsReport.jrxml @@ -0,0 +1,49 @@ + + + + + + + + <band height="742"> + <line> + <reportElement x="0" y="0" width="515" height="1"/> + <graphicElement/> + </line> + <line> + <reportElement x="0" y="3" width="515" height="1"/> + <graphicElement/> + </line> + <staticText> + <reportElement x="0" y="10" width="515" height="30"/> + <textElement> + <font size="22"/> + </textElement> + <text><![CDATA[jCharts 0.6.0 - Sample Chart Report]]></text> + </staticText> + <textField hyperlinkType="Reference"> + <reportElement x="0" y="40" width="515" height="20"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA["http://jcharts.sourceforge.net"]]></textFieldExpression> + <hyperlinkReferenceExpression><![CDATA["http://jcharts.sourceforge.net"]]></hyperlinkReferenceExpression> + </textField> + <line> + <reportElement x="0" y="60" width="515" height="1"/> + <graphicElement/> + </line> + <line> + <reportElement x="0" y="63" width="515" height="1"/> + <graphicElement/> + </line> + <image scaleImage="Clip" hAlign="Center"> + <reportElement x="0" y="70" width="515" height="350"/> + <graphicElement/> + <imageExpression class="java.awt.Image"><![CDATA[$V{ChartImage}]]></imageExpression> + </image> + </band> + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JFreeChartReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JFreeChartReport.jrxml new file mode 100644 index 0000000..2231b5b --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JFreeChartReport.jrxml @@ -0,0 +1,39 @@ + + + + + + + + <band height="742"> + <line> + <reportElement x="0" y="0" width="515" height="1"/> + <graphicElement/> + </line> + <staticText> + <reportElement x="0" y="10" width="515" height="30"/> + <textElement textAlignment="Center"> + <font size="22"/> + </textElement> + <text><![CDATA[JFreeChart Sample]]></text> + </staticText> + <textField> + <reportElement x="0" y="50" width="515" height="50"/> + <textElement textAlignment="Center"> + <font size="12"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["This sample uses JFreeChart Version 1.0.0-pre2\n" + "Written by David Gilbert (david.gilbert@object-refinery.com) and others.\n" + "(C)opyright 2000-2004, by Object Refinery Limited and Contributors."]]></textFieldExpression> + </textField> + <image scaleImage="Clip" hAlign="Center" hyperlinkType="Reference"> + <reportElement x="0" y="110" width="515" height="300"/> + <graphicElement/> + <imageExpression class="net.sf.jasperreports.engine.JRRenderable"><![CDATA[$V{Chart}]]></imageExpression> + <hyperlinkReferenceExpression><![CDATA["http://www.jfree.org/jfreechart"]]></hyperlinkReferenceExpression> + </image> + </band> + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JsonCustomersReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JsonCustomersReport.jrxml new file mode 100755 index 0000000..8055494 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/JsonCustomersReport.jrxml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + <band height="40"> + <staticText> + <reportElement style="Title" x="0" y="0" width="555" height="20"/> + <textElement textAlignment="Center" verticalAlignment="Middle"/> + <text><![CDATA[Shipped Orders]]></text> + </staticText> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/LineChartReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/LineChartReport.jrxml new file mode 100644 index 0000000..241232f --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/LineChartReport.jrxml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + <band height="40"> + <line> + <reportElement x="0" y="0" width="515" height="1"/> + <graphicElement/> + </line> + <staticText> + <reportElement x="0" y="10" width="515" height="30" style="Sans_Normal"/> + <textElement textAlignment="Center"> + <font size="22"/> + </textElement> + <text><![CDATA[Addresses Report]]></text> + </staticText> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MacroReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MacroReport.jrxml new file mode 100644 index 0000000..d93ce67 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MacroReport.jrxml @@ -0,0 +1,209 @@ + + + + + + + + element containing styled text. elements are introduced by setting the attribute available for the tag to and by formatting the text content using nested tags and simple HTML tags, including .]]> + + + + + + + $P{RtfText} + + + + + + + $P{HtmlText} + + + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MasterReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MasterReport.jrxml new file mode 100755 index 0000000..01ab586 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/MasterReport.jrxml @@ -0,0 +1,105 @@ + + + + + + + <band height="250"> + <rectangle> + <reportElement mode="Opaque" x="0" y="0" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="40" y="0" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="80" y="0" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="120" y="0" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="160" y="0" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="200" y="0" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="0" y="5" width="255" height="40" backcolor="#FFFF88" positionType="Float"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA["Text field element using default tab stop width of 40 pixels. The following names are tab stop aligned to the left, while the overall text alignment is also left:\n\tpig\tchicken\tsheep\thorse\tgoat\n\tlion\tgiraffe\thippopotamus\tleopard\telephant\thyena\n\tparis\tlondon\trome\tamsterdam\toslo"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="300" y="0" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="340" y="0" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="380" y="0" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="420" y="0" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="460" y="0" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="500" y="0" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="300" y="5" width="255" height="40" backcolor="#FFFF88" positionType="Float"/> + <textElement textAlignment="Right"/> + <textFieldExpression class="java.lang.String"><![CDATA["Text field element using default tab stop width of 40 pixels. The following names are tab stop aligned to the left, while the overall text alignment is right:\n\tpig\tchicken\tsheep\thorse\tgoat\n\tlion\tgiraffe\thippopotamus\tleopard\telephant\thyena\n\tparis\tlondon\trome\tamsterdam\toslo"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="0" y="50" width="33" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="33" y="50" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="40" y="50" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="80" y="50" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="120" y="50" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="160" y="50" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="200" y="50" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="0" y="55" width="255" height="40" backcolor="#88FFFF" positionType="Float"/> + <textElement textAlignment="Left"> + <paragraph lineSpacing="Proportional" lineSpacingSize="2"> + <tabStop position="33" alignment="Center"/> + </paragraph> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["Text field element using a custom tab stop centered at position 33. The rest of the names are tab stop aligned to the left, while the overall text alignment is also left:\n\tpig\tchicken\tsheep\thorse\tgoat\n\tlion\tgiraffe\thippopotamus\tleopard\telephant\thyena\n\tparis\tlondon\trome\tamsterdam\toslo"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="300" y="50" width="33" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="333" y="50" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="340" y="50" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="380" y="50" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="420" y="50" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="460" y="50" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="500" y="50" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="300" y="55" width="255" height="40" backcolor="#88FFFF" positionType="Float"/> + <textElement textAlignment="Right"> + <paragraph lineSpacing="Fixed" lineSpacingSize="20"> + <tabStop position="33" alignment="Center"/> + </paragraph> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["Text field element using a custom tab stop centered at position 33. The rest of the names are tab stop aligned to the left, while the overall text alignment is right:\n\tpig\tchicken\tsheep\thorse\tgoat\n\tlion\tgiraffe\thippopotamus\tleopard\telephant\thyena\n\tparis\tlondon\trome\tamsterdam\toslo"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="0" y="100" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="40" y="100" width="40" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="80" y="100" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="120" y="100" width="40" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="160" y="100" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="200" y="100" width="40" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="0" y="105" width="255" height="40" backcolor="#88FF88" positionType="Float"/> + <textElement> + <paragraph> + <tabStop alignment="Right" position="40"/> + <tabStop alignment="Right" position="80"/> + <tabStop alignment="Right" position="120"/> + <tabStop alignment="Right" position="160"/> + <tabStop alignment="Right" position="200"/> + </paragraph> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["Text field element using custom tab stops right aligned and 40 pixels apart. The overall text alignment is left:\n\tpig\tchicken\tsheep\thorse\tgoat\n\tlion\tgiraffe\thippopotamus\tleopard\telephant\thyena\n\tparis\tlondon\trome\tamsterdam\toslo"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="300" y="100" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="340" y="100" width="40" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="380" y="100" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="420" y="100" width="40" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="460" y="100" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="500" y="100" width="40" height="5" backcolor="#FFAAAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="300" y="105" width="255" height="40" backcolor="#88FF88" positionType="Float"/> + <textElement textAlignment="Right"> + <paragraph> + <tabStop alignment="Right" position="40"/> + <tabStop alignment="Right" position="80"/> + <tabStop alignment="Right" position="120"/> + <tabStop alignment="Right" position="160"/> + <tabStop alignment="Right" position="200"/> + </paragraph> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["Text field element using custom tab stops right aligned and 40 pixels apart. The overall text alignment is also right:\n\tpig\tchicken\tsheep\thorse\tgoat\n\tlion\tgiraffe\thippopotamus\tleopard\telephant\thyena\n\tparis\tlondon\trome\tamsterdam\toslo"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="0" y="150" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="40" y="150" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="80" y="150" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="0" y="155" width="150" height="40" backcolor="#FF88FF" positionType="Float"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA["A\n\tB\t\tB2\tB3 thisisalongwordnotfittinginoneline\n\t\tC\tC2\nD\tD2\tD3"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="405" y="150" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="445" y="150" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="485" y="150" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="405" y="155" width="150" height="40" backcolor="#FF88FF" positionType="Float"/> + <textElement textAlignment="Right"/> + <textFieldExpression class="java.lang.String"><![CDATA["A\n\tB\t\tB2\tB3 thisisalongwordnotfittinginoneline\n\t\tC\tC2\nD\tD2\tD3"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="0" y="200" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="40" y="200" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="80" y="200" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="0" y="205" width="150" height="40" backcolor="#FF88FF" positionType="Float"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA["A\n\tB\t\tB2\tB3_thisisalongwordnotfittinginoneline\n\t\tC\tC2\nD\tD2\tD3"]]></textFieldExpression> + </textField> + <rectangle> + <reportElement mode="Opaque" x="405" y="200" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="445" y="200" width="40" height="5" backcolor="#AAFFAA" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <rectangle> + <reportElement mode="Opaque" x="485" y="200" width="40" height="5" backcolor="#AAAAFF" positionType="Float"/> + <graphicElement> + <pen lineWidth="0"/> + </graphicElement> + </rectangle> + <textField textAdjust="StretchHeight"> + <reportElement mode="Opaque" x="405" y="205" width="150" height="40" backcolor="#FF88FF" positionType="Float"/> + <textElement textAlignment="Right"/> + <textFieldExpression class="java.lang.String"><![CDATA["A\n\tB\t\tB2\tB3_thisisalongwordnotfittinginoneline\n\t\tC\tC2\nD\tD2\tD3"]]></textFieldExpression> + </textField> + </band> + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/PdfEncryptReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/PdfEncryptReport.jrxml new file mode 100755 index 0000000..8688584 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/PdfEncryptReport.jrxml @@ -0,0 +1,22 @@ + + + + + + <band height="782"> + <staticText> + <reportElement positionType="Float" x="0" y="0" width="555" height="100"/> + <textElement textAlignment="Center"> + <font size="14"/> + </textElement> + <text><![CDATA[The generated PDF document is encrypted using a 128 bit key. +User password: jasper +Owner password: reports]]></text> + </staticText> + </band> + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Pie3DChartReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Pie3DChartReport.jrxml new file mode 100644 index 0000000..1bc83e0 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/Pie3DChartReport.jrxml @@ -0,0 +1,348 @@ + + + element containing styled text. elements are introduced by setting the attribute available for the tag to and by formatting the text content using nested tags and simple HTML tags, including .]]> + + + + + + + ^ logo and some superscript text and subscript text."]]> + + + + + + + style tag used to format the text content inside a styled text element: + +fontName + + + + + +pdfFontName +pdfEncoding +isPdfEmbedded + +]]> + + + + + + + <font size="12"> +<font color="red"> +<font face="DejaVu Serif"> +bold <b> italic <i> underlined <u> +an empty line follows (<br/>): +
+<sup> and <sub> +
+A bulleted list: +
  • item 1 <li>
  • +
    +<a href="http://www.google.com"> +]]> +
    + + + + + + + + + + + + + + + + + + 1\n\n\n\n\n"]]> + + + +
    diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StylesReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StylesReport.jrxml new file mode 100755 index 0000000..5cc7ab6 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/StylesReport.jrxml @@ -0,0 +1,79 @@ + + + + + + + , centered, border"]]> + + + + "Serif Note: font face = DejaVu Serif, font size = 10, orange on dark gray, centered, border" + + + + + diff --git a/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TableReport.jrxml b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TableReport.jrxml new file mode 100755 index 0000000..4911d31 --- /dev/null +++ b/src/test/projects/sampleReportsWithAdditionalProperties/src/main/jasperreports/TableReport.jrxml @@ -0,0 +1,293 @@ + + + + + +