Skip to content

Info export#7319

Merged
mertonmonk merged 10 commits into
masterfrom
info-export
Apr 26, 2025
Merged

Info export#7319
mertonmonk merged 10 commits into
masterfrom
info-export

Conversation

@mertonmonk

Copy link
Copy Markdown
Contributor

support INFO:DESC on spells and other objects subclassed from PObject and move getInfoToken from Token to PlayerCharacter to make it universally available in GUI as well as export functionality.

@mertonmonk mertonmonk merged commit 9d0493c into master Apr 26, 2025
@Vest

Vest commented May 9, 2025

Copy link
Copy Markdown
Contributor

@mertonmonk you did a great job, but in case if you want to contribute more, please execute gradle checkstyleMain. I am correcting all warnings, so no offense, just keep this in mind.
thanks

@Vest Vest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please answer to my question, because I have to correct your code.

{
String mString = aPC.parseSpellString(selectedCSpell, aPC.getDescription(aSpell));
String mString = aPC.getInfoToken(".INFO.DESC", aSpell);
if (mString.equals(".INFO.DESC"))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mertonmonk
CheckstyleMain doesn't allow IFs without curly brackets, because the code might be misleading. Should append be within IF, or not?
What variant you meant?
image
or
image
thanks

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The append should be outside of the if statement so it appends mString whether it was re-defined within the if statement or not.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing out the gradlew target. It's been quite a while since I did much coding for PCGen, so there is a lot of new code and I'm not particularly familiar with gradle. I wish I had the time and energy to pull out all the interfaces - I think code should be simple so it's easier for newer developers to understand.

Vest added a commit to Vest/pcgen that referenced this pull request May 9, 2025
…n```

Few recent pull requests broke the styling: PCGen#7319

Signed-off-by: Vest <Vest@users.noreply.github.com>
Vest added a commit to Vest/pcgen that referenced this pull request May 9, 2025
…n```

Few recent pull requests broke the styling: PCGen#7319

Signed-off-by: Vest <Vest@users.noreply.github.com>
karianna pushed a commit to karianna/pcgen that referenced this pull request Dec 2, 2025
…n```

Few recent pull requests broke the styling: PCGen#7319

Signed-off-by: Vest <Vest@users.noreply.github.com>
karianna pushed a commit to karianna/pcgen that referenced this pull request Dec 2, 2025
…n```

Few recent pull requests broke the styling: PCGen#7319

Signed-off-by: Vest <Vest@users.noreply.github.com>
karianna added a commit that referenced this pull request Feb 26, 2026
* Fix Choose for Wind Dance Martial Arts Style

* Minor fix for Variant Tiefling Ability

* Allow 1-hander slashing weapons to qualify for Slashing Grace (Falcata, Khopesh, and Temple Sword)

* Remove illegal ’ and convert to proper ' from PRECAMPAIGN tag.

* Fixed integration tests related to Startfinder (#6890)

* pcGenGUISFmechanicTest: updated sf_mechanic.xml to fix the integration test.
The change is related to the commit 765bb11

* Partially reverted the commit ba9759c, because WeakReference lost values for CSKILL object. This is a regression.
It is possible, that either SoftReference should be used, or a strong reference.
Fixed: pcGenGUISFmechanicTest - after the bug with CSKILL is fixed
Fixed: pcGenGUISFsoldierTest - after the bug with CSKILL is fixed

* Fix Data Size issues

* Fix Orphaned File error

* Create stub for Blood of the Ancient - removes an orphan issue and can't find campaign via PRECAMPAIGN issue

* DATA-4325 Typo in Inner Sea Races

* Fixed a bug, when the OutputPanel couldn't show the file chooser dialog, because the underlying code works in Swing threads only. Now the entire content of the panel is running in JavaFX thread. (#6896)

Removed few empty lines.

* Bump org.springframework:spring-beans from 6.0.10 to 6.0.11 (#6899)

Bumps [org.springframework:spring-beans](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-beans
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.springframework:spring-web from 6.0.10 to 6.0.11 (#6898)

Bumps [org.springframework:spring-web](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.springframework:spring-core from 6.0.10 to 6.0.11 (#6897)

Bumps [org.springframework:spring-core](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* gradle investigation

* Newsource 424 (#6901)

* Goldielocks has incorrect value displayed for darkvision in the ability.

* NEWSOURCE-424
Starfinder Near Space request

* Newsource 435 (#6900)

* Goldielocks has incorrect value displayed for darkvision in the ability.

* NEWSOURCE-435
Request for Vanguard (Path of Iron - Ascension Games)

* Bump org.junit.jupiter:junit-jupiter-params from 5.9.3 to 5.10.0 (#6902)

Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.platform:junit-platform-runner from 1.9.3 to 1.10.0 (#6906)

Bumps [org.junit.platform:junit-platform-runner](https://github.com/junit-team/junit5) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.jupiter:junit-jupiter-api from 5.9.3 to 5.10.0 (#6905)

Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.jupiter:junit-jupiter-engine from 5.9.3 to 5.10.0 (#6903)

Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.platform:junit-platform-launcher from 1.9.3 to 1.10.0 (#6904)

Bumps [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit5) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-launcher
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed #6901: fixed the Piazo - Near Space cover. (#6907)

* Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 (#6908)

Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump edu.sc.seis.launch4j from 3.0.3 to 3.0.4 (#6909)

Bumps edu.sc.seis.launch4j from 3.0.3 to 3.0.4.

---
updated-dependencies:
- dependency-name: edu.sc.seis.launch4j
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.github.spotbugs from 5.0.14 to 5.1.0 (#6910)

Bumps com.github.spotbugs from 5.0.14 to 5.1.0.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.github.spotbugs from 5.1.0 to 5.1.1

Bumps com.github.spotbugs from 5.1.0 to 5.1.1.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump com.github.spotbugs from 5.1.1 to 5.1.2 (#6912)

Bumps com.github.spotbugs from 5.1.1 to 5.1.2.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Spaces before tags; symbols we avoid; and outputsheet improvements

* Bump com.github.spotbugs from 5.1.2 to 5.1.3 (#6913)

Bumps com.github.spotbugs from 5.1.2 to 5.1.3.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.apache.xmlgraphics:fop from 2.8 to 2.9 (#6915)

Bumps org.apache.xmlgraphics:fop from 2.8 to 2.9.

---
updated-dependencies:
- dependency-name: org.apache.xmlgraphics:fop
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix checkstyle warning

* Added initial GH action support

* Upgraded gradle wrapper to 8.11.1.

* Added testing to gh-action.

* First attempt to log data in test. It failed in GH actions.

* Added the logging to all tests.

* Added gradle cache to a github action setup-java.

* Disabled logging, but added the test results upload.

* Enabled "write" permissions for test results

* Refactored TestHelper.java
Added some logging.

* Updated cache-dependency-path.

* First attempt to cache build/classes and build/jre

* Corrected a typo in gradle.yml

* Try to clear the cache and fill it with values.

* First step to remove NSIS from the distro;
Removed explicit System.exit(0) in Main. It allows to enable "slowtest" that generates and compares XMLs.
Marked SystemExitInterceptor as deprecated and removal=true. Since Java does not offer any alternative, we have to find a better solution.
P.S. NSIS is planned to be removed to use jpackage only.

* Performance optimization: the debugPrint (when called frequently) uses StackTrace to determine the logger name. This is expensive and replaced with an explicit logger creation.

* Refactored Logging.java.

* Upgraded gradle-wrapper from 8.11.1 to 8.12

* Remove .run/ from git repository, because it tracked by mistake in #7056

* Refactored several classes. The main goal was adding the Optional to methods that return null. In some cases, the null reference/result was not checked, but the code never failed, because it was not executed.
There were no tests, that is why it was difficult to check, whether the refactoring was right :(

* Corrected pf_Cleric test;
1. Corrected the typo in special properties (light crossbow);
2. Corrected maxdex for MAXDEX bonus;

* Remove "public" and "abstract" for several interfaces (redundant)

* Added more logging to PcgenFtlTestCase.java (it will help to determine the difference between "golden" and generated files).
Trimmed lines in base.xml and base-xml.ftl template.

* Trimmed different *.xml inputs.
Corrected pf_Rogue.xml result: +1 reflex comes from Halfling Luch and +3 from his Cloak.

* Updated build.gradle - disable security manager for all Test Gradle "actions"
Created a "graceful exit" object + interceptor. It is supposed to replace System.Exit calls in different parts of the project;
Updated reporting.gradle by increasing versions of some dependencies;
Removed a DM_EXIT rule from spotbugs -> the calls of System.Exit must be replaced with GracefulExit.
The decision to create a custom interceptor was taken based on the discussion from Reddit: https://www.reddit.com/r/java/comments/1fpxmfp/jep_486_permanently_disable_the_security_manager/

* Added JavaDoc to Exit* and GracefulExit classes.

* Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy DSL has been deprecated."

* Moved GracefulExit from test to main (util).
Replaced few System.exit with GracefulExit.exit calls.
Refactored few methods to satisfy SonarQube warnings.

* Refactored CommandLineArguments.java to avoid hidden System.exit calls.

* Corrected failed int (slow) tests

* Corrected a wrong assertion message

* Removed SystemExitInterceptor.java, because it was deprecated;
Refactored CommandLineArguments and its test.
Increased the code coverage.

* Added a checkstyle rule that prevents the project from System.exit usage outside GracefulExit.

* Use the latest version of Freemarker template engine.

* Resolved warnings from Gradle.

* Resolved comments from Github PR.
Moved a GUI-error message to the localization file.
Formatted error messages

* JaCoCo was added to github actions - now it shows the high-level code coverage my tests

* Create a jpackage build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* First attempt to build releases for all OSes.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Changed the event to build a release conditionally.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update gradle-release.yml

* Corrected the artifact name

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases (v2)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected the artifact creation.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create one more release

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated JDK from 21.0.5 to 21.0.6

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected a build for Windows (at least).
gradle jpackageImage

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added ubuntu-24-arm

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added a hotfix to repair linux-arm build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.13 and fix output formatting in gradlew

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.14

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Removed jar-export-plugins from pluginbuild.xml
Added the same task to plugins.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Appveyor config to adjust Gradle commands and formatting

Removed the `buildNsis` task from the Gradle `test_script`, streamlining the build process. Additionally, fixed unnecessary trailing spaces in multiple sections for better formatting consistency. These changes simplify the CI process and improve readability.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Remove Ant-based build files for Gradle-only build system

This commit deletes `build-gradle.xml` and `pluginbuild.xml` as they are no longer required. The transition to a Gradle-based build system eliminates dependency on Ant, simplifying the build process.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update properties and refine Gradle plugin Jar tasks

Added a new warning message for remote list preferences in properties. Improved Gradle tasks to include all nested class files for export and bonus plugins, ensuring more comprehensive builds.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor code style by removing unnecessary whitespace and updating method signatures in PCGenTaskExecutor and PluginLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor PluginClassLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add plugins.gradle to Gradle configuration for release and test workflows

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 9.0.0 and fix classpath configuration in wrapper scripts

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update JavaFX version to 21.0.8 and improve URIFactory error handling with new tests

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Improve README formatting and grammar for clarity and consistency

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor test task configurations to use correct directory paths for test classes

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Set name and description for code review agent

Updated agent metadata with name and description.

* Create Security Review Agent documentation

Adds a new agent for security review of code.

* Rename my-agent.md to my-code-review-agent.md

* Changed PluginBuildTest, because the new plugins are built from corresponding .java files.
The slow test has been reverted, because it was broken in old commits (DATA-4372)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated Java to 21.0.8 (mac aarch64)
Gradle wrapper to 9.1.0

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 9.2.0 and refactor dependency declarations to avoid Gradle's warnings. Such constructions will be deprecated in Gradle 10.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add native access flags for JavaFX modules in distribution.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor JavaFX resource loading by introducing PanelFromResource utility class

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Reverted a part of #7462, that broke DescriptionTest.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update FXML files to use JavaFX 25.0.1 namespace

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected checkstyle findings

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added initial GH action support

* Upgraded gradle wrapper to 8.11.1.

* Added testing to gh-action.

* First attempt to log data in test. It failed in GH actions.

* Added the logging to all tests.

* Added gradle cache to a github action setup-java.

* Disabled logging, but added the test results upload.

* Enabled "write" permissions for test results

* Refactored TestHelper.java
Added some logging.

* Updated cache-dependency-path.

* First attempt to cache build/classes and build/jre

* Corrected a typo in gradle.yml

* Try to clear the cache and fill it with values.

* First step to remove NSIS from the distro;
Removed explicit System.exit(0) in Main. It allows to enable "slowtest" that generates and compares XMLs.
Marked SystemExitInterceptor as deprecated and removal=true. Since Java does not offer any alternative, we have to find a better solution.
P.S. NSIS is planned to be removed to use jpackage only.

* Performance optimization: the debugPrint (when called frequently) uses StackTrace to determine the logger name. This is expensive and replaced with an explicit logger creation.

* Refactored Logging.java.

* Upgraded gradle-wrapper from 8.11.1 to 8.12

* Remove .run/ from git repository, because it tracked by mistake in #7056

* Refactored several classes. The main goal was adding the Optional to methods that return null. In some cases, the null reference/result was not checked, but the code never failed, because it was not executed.
There were no tests, that is why it was difficult to check, whether the refactoring was right :(

* Updated PMD to 7.17
Added many rules to ruleset.xml
Fixed few warnings
Enabled config-cache for testing purposes.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected pf_Cleric test;
1. Corrected the typo in special properties (light crossbow);
2. Corrected maxdex for MAXDEX bonus;

* Remove "public" and "abstract" for several interfaces (redundant)

* Added more logging to PcgenFtlTestCase.java (it will help to determine the difference between "golden" and generated files).
Trimmed lines in base.xml and base-xml.ftl template.

* Trimmed different *.xml inputs.
Corrected pf_Rogue.xml result: +1 reflex comes from Halfling Luch and +3 from his Cloak.

* Updated build.gradle - disable security manager for all Test Gradle "actions"
Created a "graceful exit" object + interceptor. It is supposed to replace System.Exit calls in different parts of the project;
Updated reporting.gradle by increasing versions of some dependencies;
Removed a DM_EXIT rule from spotbugs -> the calls of System.Exit must be replaced with GracefulExit.
The decision to create a custom interceptor was taken based on the discussion from Reddit: https://www.reddit.com/r/java/comments/1fpxmfp/jep_486_permanently_disable_the_security_manager/

* Added JavaDoc to Exit* and GracefulExit classes.

* Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy DSL has been deprecated."

* Moved GracefulExit from test to main (util).
Replaced few System.exit with GracefulExit.exit calls.
Refactored few methods to satisfy SonarQube warnings.

* Refactored CommandLineArguments.java to avoid hidden System.exit calls.

* Corrected failed int (slow) tests

* Corrected a wrong assertion message

* Removed SystemExitInterceptor.java, because it was deprecated;
Refactored CommandLineArguments and its test.
Increased the code coverage.

* Added a checkstyle rule that prevents the project from System.exit usage outside GracefulExit.

* Use the latest version of Freemarker template engine.

* Resolved warnings from Gradle.

* Resolved comments from Github PR.
Moved a GUI-error message to the localization file.
Formatted error messages

* JaCoCo was added to github actions - now it shows the high-level code coverage my tests

* Create a jpackage build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* First attempt to build releases for all OSes.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Changed the event to build a release conditionally.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update gradle-release.yml

* Corrected the artifact name

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases (v2)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected the artifact creation.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create one more release

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated JDK from 21.0.5 to 21.0.6

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected a build for Windows (at least).
gradle jpackageImage

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added ubuntu-24-arm

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added a hotfix to repair linux-arm build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.13 and fix output formatting in gradlew

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.14

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Removed jar-export-plugins from pluginbuild.xml
Added the same task to plugins.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Appveyor config to adjust Gradle commands and formatting

Removed the `buildNsis` task from the Gradle `test_script`, streamlining the build process. Additionally, fixed unnecessary trailing spaces in multiple sections for better formatting consistency. These changes simplify the CI process and improve readability.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Remove Ant-based build files for Gradle-only build system

This commit deletes `build-gradle.xml` and `pluginbuild.xml` as they are no longer required. The transition to a Gradle-based build system eliminates dependency on Ant, simplifying the build process.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update properties and refine Gradle plugin Jar tasks

Added a new warning message for remote list preferences in properties. Improved Gradle tasks to include all nested class files for export and bonus plugins, ensuring more comprehensive builds.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor code style by removing unnecessary whitespace and updating method signatures in PCGenTaskExecutor and PluginLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor PluginClassLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add plugins.gradle to Gradle configuration for release and test workflows

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 9.0.0 and fix classpath configuration in wrapper scripts

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update JavaFX version to 21.0.8 and improve URIFactory error handling with new tests

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Improve README formatting and grammar for clarity and consistency

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor test task configurations to use correct directory paths for test classes

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Changed PluginBuildTest, because the new plugins are built from corresponding .java files.
The slow test has been reverted, because it was broken in old commits (DATA-4372)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated Java to 21.0.8 (mac aarch64)
Gradle wrapper to 9.1.0

Signed-off-by: Vest <Vest@users.noreply.github.com>

* DATA-4380 - 3.5e - Enable Jack Of All Trades to display 'Untrained' class skills

* DATA-4379 - d20 modern, taking magical heritage, the 3 cantrips aren't selectable 6.08.00 rc10

* DATA-4381 - PF1e - Racial Heritage in Mythic not implemented

* DATA-4381 - PF1e - Racial Heritage in Mythic not implemented

* DATA-4383

PF1e Human Racial Heritage feat should only allow Humanoids; it currently allows any playable race

* DATA-4384

Pf1e - Racial Heritage does not set RACESUBTYPE therefore all feats looking for a specific race do not qualify.

Phase 1: Switch from "Racial Heritage ~ xxx" as a global to "Race ~ xxx" leaving Racial Heritage to correctly reference those qualifying for the Racial Heritage feat.

* DATA-4384

Pf1e - Racial Heritage does not set RACESUBTYPE therefore all feats looking for a specific race do not qualify.

Phase 2: Change PRERACE to PREFACT to simplify qualification as a Race and also clean up the RaceName%,SUBRACETYPE= vs RaceName,SUBRACETYPE= vs. RaceName% vs. RaceName entries.

* Bump com.github.spotbugs from 6.4.2 to 6.4.4 (#7453)

Bumps com.github.spotbugs from 6.4.2 to 6.4.4.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-version: 6.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.springframework:spring-beans from 6.2.11 to 6.2.12 (#7446)

Bumps [org.springframework:spring-beans](https://github.com/spring-projects/spring-framework) from 6.2.11 to 6.2.12.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.2.11...v6.2.12)

---
updated-dependencies:
- dependency-name: org.springframework:spring-beans
  dependency-version: 6.2.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.github.spotbugs:spotbugs-annotations from 4.9.6 to 4.9.8 (#7452)

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.6 to 4.9.8.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](spotbugs/spotbugs@4.9.6...4.9.8)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-version: 4.9.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* DATA-4385

Pf1e - Improve descriptions for some equipment modifiers to indicate they are conditional

* 6.09.info (#7459)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* 6.09.info (#7462)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* 6.09.info (#7463)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* return an empty string if the INFO tag does not exist

* 6.09.info (#7464)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* return an empty string if the INFO tag does not exist

* do not try INFO string for DESC tags unless specified

* 6.09.info (#7465)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* return an empty string if the INFO tag does not exist

* do not try INFO string for DESC tags unless specified

* checking for equality with a String

* Update Gradle wrapper to version 9.2.0 and refactor dependency declarations to avoid Gradle's warnings. Such constructions will be deprecated in Gradle 10.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add native access flags for JavaFX modules in distribution.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor JavaFX resource loading by introducing PanelFromResource utility class

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Reverted a part of #7462, that broke DescriptionTest.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update FXML files to use JavaFX 25.0.1 namespace

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Fix remnant issues from PREFACT conversion with multiples lingering from PRERACE

* Clean up

* Fix Non-Monk getting Wisdom bonus.

* Fix a bunch of minor formatting errors in pcc files

* Some textual improvements and typo fixes.

* Corrected checkstyle findings

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Upgrade to Java 25 and fix lots of typos

* Revert failing MULT:YES and fix var name in build script

* Fix merge conflicts in GH actions

* Disable configuration cache for now

* Update dependencies

* Now correctly creates images, also allows build to continue on finding PMD violations

* Add LLM AGENT guidance

* Update pcgen version to match what we are releasing next

* Use previous way to release and apply to GH Actions

* Fix {

* Linter fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Vest <Vest@users.noreply.github.com>
Co-authored-by: LegacyKing <drew0500@yahoo.com>
Co-authored-by: Vest <Vest@users.noreply.github.com>
Co-authored-by: pokemonpasta <pokemonpasta1000@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mertonmonk <33469335+mertonmonk@users.noreply.github.com>
Co-authored-by: Cullen Walsh <ckwalsh@cullenwalsh.com>
Co-authored-by: AtlasHackert <danielpharos@hotmail.com>
karianna added a commit that referenced this pull request May 18, 2026
…ng to speedup builds (#7556)

* Bump org.springframework:spring-core from 6.0.10 to 6.0.11 (#6897)

Bumps [org.springframework:spring-core](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* gradle investigation

* Newsource 424 (#6901)

* Goldielocks has incorrect value displayed for darkvision in the ability.

* NEWSOURCE-424
Starfinder Near Space request

* Newsource 435 (#6900)

* Goldielocks has incorrect value displayed for darkvision in the ability.

* NEWSOURCE-435
Request for Vanguard (Path of Iron - Ascension Games)

* Bump org.junit.jupiter:junit-jupiter-params from 5.9.3 to 5.10.0 (#6902)

Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.platform:junit-platform-runner from 1.9.3 to 1.10.0 (#6906)

Bumps [org.junit.platform:junit-platform-runner](https://github.com/junit-team/junit5) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.jupiter:junit-jupiter-api from 5.9.3 to 5.10.0 (#6905)

Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.jupiter:junit-jupiter-engine from 5.9.3 to 5.10.0 (#6903)

Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit.platform:junit-platform-launcher from 1.9.3 to 1.10.0 (#6904)

Bumps [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit5) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-launcher
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed #6901: fixed the Piazo - Near Space cover. (#6907)

* Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 (#6908)

Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump edu.sc.seis.launch4j from 3.0.3 to 3.0.4 (#6909)

Bumps edu.sc.seis.launch4j from 3.0.3 to 3.0.4.

---
updated-dependencies:
- dependency-name: edu.sc.seis.launch4j
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.github.spotbugs from 5.0.14 to 5.1.0 (#6910)

Bumps com.github.spotbugs from 5.0.14 to 5.1.0.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.github.spotbugs from 5.1.0 to 5.1.1

Bumps com.github.spotbugs from 5.1.0 to 5.1.1.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump com.github.spotbugs from 5.1.1 to 5.1.2 (#6912)

Bumps com.github.spotbugs from 5.1.1 to 5.1.2.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Spaces before tags; symbols we avoid; and outputsheet improvements

* Bump com.github.spotbugs from 5.1.2 to 5.1.3 (#6913)

Bumps com.github.spotbugs from 5.1.2 to 5.1.3.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.apache.xmlgraphics:fop from 2.8 to 2.9 (#6915)

Bumps org.apache.xmlgraphics:fop from 2.8 to 2.9.

---
updated-dependencies:
- dependency-name: org.apache.xmlgraphics:fop
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix checkstyle warning

* Added initial GH action support

* Upgraded gradle wrapper to 8.11.1.

* Added testing to gh-action.

* First attempt to log data in test. It failed in GH actions.

* Added the logging to all tests.

* Added gradle cache to a github action setup-java.

* Disabled logging, but added the test results upload.

* Enabled "write" permissions for test results

* Refactored TestHelper.java
Added some logging.

* Updated cache-dependency-path.

* First attempt to cache build/classes and build/jre

* Corrected a typo in gradle.yml

* Try to clear the cache and fill it with values.

* First step to remove NSIS from the distro;
Removed explicit System.exit(0) in Main. It allows to enable "slowtest" that generates and compares XMLs.
Marked SystemExitInterceptor as deprecated and removal=true. Since Java does not offer any alternative, we have to find a better solution.
P.S. NSIS is planned to be removed to use jpackage only.

* Performance optimization: the debugPrint (when called frequently) uses StackTrace to determine the logger name. This is expensive and replaced with an explicit logger creation.

* Refactored Logging.java.

* Upgraded gradle-wrapper from 8.11.1 to 8.12

* Remove .run/ from git repository, because it tracked by mistake in #7056

* Refactored several classes. The main goal was adding the Optional to methods that return null. In some cases, the null reference/result was not checked, but the code never failed, because it was not executed.
There were no tests, that is why it was difficult to check, whether the refactoring was right :(

* Corrected pf_Cleric test;
1. Corrected the typo in special properties (light crossbow);
2. Corrected maxdex for MAXDEX bonus;

* Remove "public" and "abstract" for several interfaces (redundant)

* Added more logging to PcgenFtlTestCase.java (it will help to determine the difference between "golden" and generated files).
Trimmed lines in base.xml and base-xml.ftl template.

* Trimmed different *.xml inputs.
Corrected pf_Rogue.xml result: +1 reflex comes from Halfling Luch and +3 from his Cloak.

* Updated build.gradle - disable security manager for all Test Gradle "actions"
Created a "graceful exit" object + interceptor. It is supposed to replace System.Exit calls in different parts of the project;
Updated reporting.gradle by increasing versions of some dependencies;
Removed a DM_EXIT rule from spotbugs -> the calls of System.Exit must be replaced with GracefulExit.
The decision to create a custom interceptor was taken based on the discussion from Reddit: https://www.reddit.com/r/java/comments/1fpxmfp/jep_486_permanently_disable_the_security_manager/

* Added JavaDoc to Exit* and GracefulExit classes.

* Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy DSL has been deprecated."

* Moved GracefulExit from test to main (util).
Replaced few System.exit with GracefulExit.exit calls.
Refactored few methods to satisfy SonarQube warnings.

* Refactored CommandLineArguments.java to avoid hidden System.exit calls.

* Corrected failed int (slow) tests

* Corrected a wrong assertion message

* Removed SystemExitInterceptor.java, because it was deprecated;
Refactored CommandLineArguments and its test.
Increased the code coverage.

* Added a checkstyle rule that prevents the project from System.exit usage outside GracefulExit.

* Use the latest version of Freemarker template engine.

* Resolved warnings from Gradle.

* Resolved comments from Github PR.
Moved a GUI-error message to the localization file.
Formatted error messages

* JaCoCo was added to github actions - now it shows the high-level code coverage my tests

* Create a jpackage build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* First attempt to build releases for all OSes.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Changed the event to build a release conditionally.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update gradle-release.yml

* Corrected the artifact name

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases (v2)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected the artifact creation.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create one more release

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated JDK from 21.0.5 to 21.0.6

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected a build for Windows (at least).
gradle jpackageImage

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added ubuntu-24-arm

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added a hotfix to repair linux-arm build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.13 and fix output formatting in gradlew

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.14

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Removed jar-export-plugins from pluginbuild.xml
Added the same task to plugins.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Appveyor config to adjust Gradle commands and formatting

Removed the `buildNsis` task from the Gradle `test_script`, streamlining the build process. Additionally, fixed unnecessary trailing spaces in multiple sections for better formatting consistency. These changes simplify the CI process and improve readability.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Remove Ant-based build files for Gradle-only build system

This commit deletes `build-gradle.xml` and `pluginbuild.xml` as they are no longer required. The transition to a Gradle-based build system eliminates dependency on Ant, simplifying the build process.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update properties and refine Gradle plugin Jar tasks

Added a new warning message for remote list preferences in properties. Improved Gradle tasks to include all nested class files for export and bonus plugins, ensuring more comprehensive builds.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor code style by removing unnecessary whitespace and updating method signatures in PCGenTaskExecutor and PluginLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor PluginClassLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add plugins.gradle to Gradle configuration for release and test workflows

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 9.0.0 and fix classpath configuration in wrapper scripts

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update JavaFX version to 21.0.8 and improve URIFactory error handling with new tests

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Improve README formatting and grammar for clarity and consistency

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor test task configurations to use correct directory paths for test classes

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Set name and description for code review agent

Updated agent metadata with name and description.

* Create Security Review Agent documentation

Adds a new agent for security review of code.

* Rename my-agent.md to my-code-review-agent.md

* Changed PluginBuildTest, because the new plugins are built from corresponding .java files.
The slow test has been reverted, because it was broken in old commits (DATA-4372)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated Java to 21.0.8 (mac aarch64)
Gradle wrapper to 9.1.0

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 9.2.0 and refactor dependency declarations to avoid Gradle's warnings. Such constructions will be deprecated in Gradle 10.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add native access flags for JavaFX modules in distribution.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor JavaFX resource loading by introducing PanelFromResource utility class

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Reverted a part of #7462, that broke DescriptionTest.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update FXML files to use JavaFX 25.0.1 namespace

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected checkstyle findings

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added initial GH action support

* Upgraded gradle wrapper to 8.11.1.

* Added testing to gh-action.

* First attempt to log data in test. It failed in GH actions.

* Added the logging to all tests.

* Added gradle cache to a github action setup-java.

* Disabled logging, but added the test results upload.

* Enabled "write" permissions for test results

* Refactored TestHelper.java
Added some logging.

* Updated cache-dependency-path.

* First attempt to cache build/classes and build/jre

* Corrected a typo in gradle.yml

* Try to clear the cache and fill it with values.

* First step to remove NSIS from the distro;
Removed explicit System.exit(0) in Main. It allows to enable "slowtest" that generates and compares XMLs.
Marked SystemExitInterceptor as deprecated and removal=true. Since Java does not offer any alternative, we have to find a better solution.
P.S. NSIS is planned to be removed to use jpackage only.

* Performance optimization: the debugPrint (when called frequently) uses StackTrace to determine the logger name. This is expensive and replaced with an explicit logger creation.

* Refactored Logging.java.

* Upgraded gradle-wrapper from 8.11.1 to 8.12

* Remove .run/ from git repository, because it tracked by mistake in #7056

* Refactored several classes. The main goal was adding the Optional to methods that return null. In some cases, the null reference/result was not checked, but the code never failed, because it was not executed.
There were no tests, that is why it was difficult to check, whether the refactoring was right :(

* Updated PMD to 7.17
Added many rules to ruleset.xml
Fixed few warnings
Enabled config-cache for testing purposes.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected pf_Cleric test;
1. Corrected the typo in special properties (light crossbow);
2. Corrected maxdex for MAXDEX bonus;

* Remove "public" and "abstract" for several interfaces (redundant)

* Added more logging to PcgenFtlTestCase.java (it will help to determine the difference between "golden" and generated files).
Trimmed lines in base.xml and base-xml.ftl template.

* Trimmed different *.xml inputs.
Corrected pf_Rogue.xml result: +1 reflex comes from Halfling Luch and +3 from his Cloak.

* Updated build.gradle - disable security manager for all Test Gradle "actions"
Created a "graceful exit" object + interceptor. It is supposed to replace System.Exit calls in different parts of the project;
Updated reporting.gradle by increasing versions of some dependencies;
Removed a DM_EXIT rule from spotbugs -> the calls of System.Exit must be replaced with GracefulExit.
The decision to create a custom interceptor was taken based on the discussion from Reddit: https://www.reddit.com/r/java/comments/1fpxmfp/jep_486_permanently_disable_the_security_manager/

* Added JavaDoc to Exit* and GracefulExit classes.

* Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy DSL has been deprecated."

* Moved GracefulExit from test to main (util).
Replaced few System.exit with GracefulExit.exit calls.
Refactored few methods to satisfy SonarQube warnings.

* Refactored CommandLineArguments.java to avoid hidden System.exit calls.

* Corrected failed int (slow) tests

* Corrected a wrong assertion message

* Removed SystemExitInterceptor.java, because it was deprecated;
Refactored CommandLineArguments and its test.
Increased the code coverage.

* Added a checkstyle rule that prevents the project from System.exit usage outside GracefulExit.

* Use the latest version of Freemarker template engine.

* Resolved warnings from Gradle.

* Resolved comments from Github PR.
Moved a GUI-error message to the localization file.
Formatted error messages

* JaCoCo was added to github actions - now it shows the high-level code coverage my tests

* Create a jpackage build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* First attempt to build releases for all OSes.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Changed the event to build a release conditionally.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update gradle-release.yml

* Corrected the artifact name

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create releases (v2)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected the artifact creation.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Attempt to create one more release

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated JDK from 21.0.5 to 21.0.6

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Corrected a build for Windows (at least).
gradle jpackageImage

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added ubuntu-24-arm

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Added a hotfix to repair linux-arm build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.13 and fix output formatting in gradlew

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 8.14

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Removed jar-export-plugins from pluginbuild.xml
Added the same task to plugins.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Appveyor config to adjust Gradle commands and formatting

Removed the `buildNsis` task from the Gradle `test_script`, streamlining the build process. Additionally, fixed unnecessary trailing spaces in multiple sections for better formatting consistency. These changes simplify the CI process and improve readability.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Remove Ant-based build files for Gradle-only build system

This commit deletes `build-gradle.xml` and `pluginbuild.xml` as they are no longer required. The transition to a Gradle-based build system eliminates dependency on Ant, simplifying the build process.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update properties and refine Gradle plugin Jar tasks

Added a new warning message for remote list preferences in properties. Improved Gradle tasks to include all nested class files for export and bonus plugins, ensuring more comprehensive builds.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor code style by removing unnecessary whitespace and updating method signatures in PCGenTaskExecutor and PluginLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactored and changed files that didn't pass ```gradle checkstyleMain```
Few recent pull requests broke the styling: #7319

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor PluginClassLoader

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add plugins.gradle to Gradle configuration for release and test workflows

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle wrapper to version 9.0.0 and fix classpath configuration in wrapper scripts

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update JavaFX version to 21.0.8 and improve URIFactory error handling with new tests

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Improve README formatting and grammar for clarity and consistency

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor test task configurations to use correct directory paths for test classes

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Changed PluginBuildTest, because the new plugins are built from corresponding .java files.
The slow test has been reverted, because it was broken in old commits (DATA-4372)

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Updated Java to 21.0.8 (mac aarch64)
Gradle wrapper to 9.1.0

Signed-off-by: Vest <Vest@users.noreply.github.com>

* DATA-4380 - 3.5e - Enable Jack Of All Trades to display 'Untrained' class skills

* DATA-4379 - d20 modern, taking magical heritage, the 3 cantrips aren't selectable 6.08.00 rc10

* DATA-4381 - PF1e - Racial Heritage in Mythic not implemented

* DATA-4381 - PF1e - Racial Heritage in Mythic not implemented

* DATA-4383

PF1e Human Racial Heritage feat should only allow Humanoids; it currently allows any playable race

* DATA-4384

Pf1e - Racial Heritage does not set RACESUBTYPE therefore all feats looking for a specific race do not qualify.

Phase 1: Switch from "Racial Heritage ~ xxx" as a global to "Race ~ xxx" leaving Racial Heritage to correctly reference those qualifying for the Racial Heritage feat.

* DATA-4384

Pf1e - Racial Heritage does not set RACESUBTYPE therefore all feats looking for a specific race do not qualify.

Phase 2: Change PRERACE to PREFACT to simplify qualification as a Race and also clean up the RaceName%,SUBRACETYPE= vs RaceName,SUBRACETYPE= vs. RaceName% vs. RaceName entries.

* Bump com.github.spotbugs from 6.4.2 to 6.4.4 (#7453)

Bumps com.github.spotbugs from 6.4.2 to 6.4.4.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-version: 6.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.springframework:spring-beans from 6.2.11 to 6.2.12 (#7446)

Bumps [org.springframework:spring-beans](https://github.com/spring-projects/spring-framework) from 6.2.11 to 6.2.12.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.2.11...v6.2.12)

---
updated-dependencies:
- dependency-name: org.springframework:spring-beans
  dependency-version: 6.2.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.github.spotbugs:spotbugs-annotations from 4.9.6 to 4.9.8 (#7452)

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.6 to 4.9.8.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](spotbugs/spotbugs@4.9.6...4.9.8)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-version: 4.9.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* DATA-4385

Pf1e - Improve descriptions for some equipment modifiers to indicate they are conditional

* 6.09.info (#7459)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* 6.09.info (#7462)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* 6.09.info (#7463)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* return an empty string if the INFO tag does not exist

* 6.09.info (#7464)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* return an empty string if the INFO tag does not exist

* do not try INFO string for DESC tags unless specified

* 6.09.info (#7465)

* support HASINFO and INFO tags

* INFO tags are case insensitive

* INFO tag used explicitly rather than trying to override DESC tag

* return an empty string if the INFO tag does not exist

* do not try INFO string for DESC tags unless specified

* checking for equality with a String

* Update Gradle wrapper to version 9.2.0 and refactor dependency declarations to avoid Gradle's warnings. Such constructions will be deprecated in Gradle 10.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Add native access flags for JavaFX modules in distribution.gradle

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Refactor JavaFX resource loading by introducing PanelFromResource utility class

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Reverted a part of #7462, that broke DescriptionTest.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update FXML files to use JavaFX 25.0.1 namespace

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Fix remnant issues from PREFACT conversion with multiples lingering from PRERACE

* Clean up

* Fix Non-Monk getting Wisdom bonus.

* Fix a bunch of minor formatting errors in pcc files

* Some textual improvements and typo fixes.

* Corrected checkstyle findings

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Upgrade to Java 25 and fix lots of typos

* Revert failing MULT:YES and fix var name in build script

* Fix merge conflicts in GH actions

* Disable configuration cache for now

* Update dependencies

* Now correctly creates images, also allows build to continue on finding PMD violations

* Add LLM AGENT guidance

* Update pcgen version to match what we are releasing next

* Use previous way to release and apply to GH Actions

* Upgrade gradle-wrapper.jar to 9.3.1

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Update Gradle properties and wrapper for version 9.5.0;

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Rewrite JDK download/extract as per-platform tasks for parallel cross-compilation
The previous downloadJRE/downloadJavaFXModules tasks used imperative doLast logic incompatible with the configuration cache, and extractJDKs was broken (ran checks at configuration time, always reported NO-SOURCE).
Replace with declarative per-platform Download and Copy tasks that run in parallel, support proper up-to-date checks, and are configuration-cache compatible. The runtime plugin now references jdks/ instead of jre/.

Removed default task - build.

Signed-off-by: Vest <Vest@users.noreply.github.com>

* Replace Xalan with Saxon-HE as XSLT processor

Xalan 2.x is effectively unmaintained and causes module-system friction
in jlink builds. Saxon-HE 12.7 is the modern replacement and registers
the same javax.xml.transform.TransformerFactory SPI.

- Remove xalan:xalan and xalan:serializer dependencies; exclude them
  from FOP's transitive graph so they cannot re-enter
- Add net.sf.saxon:Saxon-HE:12.7
- Explicitly name Saxon's TransformerFactoryImpl in FopTask rather than
  relying on classpath SPI ordering
- Replace org.apache.xml.utils.XMLChar.isValid() in AbstractToken with
  an inline XML 1.0 §2.2 character validity check, eliminating the last
  direct reference to the Xalan serializer jar
- Update jlink forceMerge and drop the now-unnecessary
  excludeProvides for org.apache.xalan.extensions.bsf.BSFManager
- Replace xalan:nodeset() with exsl:node-set() and update namespace
  declarations across 171 output sheet XSLT files for Saxon compatibility

* Add module-info.java and update gradle scripts for jlink plugin migration

The badass-jlink-plugin (org.beryx.jlink) replaces org.beryx.runtime
which is incompatible with Gradle 9's configuration cache. These
supporting changes complete the migration:

- Add module-info.java declaring the pcgen module with its requires,
  exports, and opens directives for JPMS compliance
- Update distribution.gradle: replace runtimeZip with jlinkZip, fix
  installDist to avoid config-cache-unsafe delete{} block
- Update release.gradle: replace runtimeZip with jlinkZip, reference
  fullJpackage task for Mac/Linux artifact assembly

* Wrap substring-before() with number() in XSLT arithmetic expressions

Fixes 'Expression should be of type number' warnings by making the
string-to-number conversion explicit in all outputsheet XSL files.

* Fix jpackage app bundle: set working directory and open gui3 packages

- MacDirLauncher: cd to Contents/app so PCGen finds data/plugins/preview/
  outputsheets, invoke PcGen binary via absolute path
- module-info.java: open pcgen.gui3.* packages for JavaFX FXML reflection
- assembleJpackageImage: always re-copy since jpackageImage wipes the
  output directory on rebuild

* Add requires directives for PCGen.base and PCGen.Formula modules

IntelliJ enforces module boundaries strictly unlike the Gradle build
which uses --patch-module to merge dependencies into the pcgen module.

* Update Saxon-HE to 12.9 and enable native access for javafx.graphics

* Update AGENTS.md to reflect current build.gradle state

Fixes stale task names, plugin versions, and tool versions that drifted
as build.gradle evolved (cleanJre→cleanJdks, JUnit 5→6, Checkstyle
12→13, SpotBugs plugin 6.4→6.5, PMD version added, jpackage→fullJpackage,
download task names corrected, jlink plugin version noted).

* Remove deprecated jdk.jsobject module requirement

jdk.jsobject was deprecated for removal in Java 22 (JEP 471). JavaFX 22+
bundles its own JSObject support in javafx.web, so the explicit JDK
module dependency is no longer needed.

* Relocate split-package classes to resolve module boundary conflicts

Move classes out of packages shared with PCGen-base/PCGen-Formula jars
so that those jars can live on --module-path as proper modules instead
of being merged via --patch-module:

- pcgen.base.util.{NamedFormula,ProxyUtilities,RandomUtil,WeightedCollection} → pcgen.util
- pcgen.base.format.HandedManager → pcgen.format

This eliminates the split-package violation that prevented javac from
seeing PCGen.base and PCGen.Formula as separate modules during
compilation, allowing the requires directives in module-info.java to
work with both Gradle and IntelliJ.

* Fix jlink/jpackage by switching to proper module-path compilation

- Remove fat jar: dependencies are now separate jars handled by jlink's
  forceMerge rather than bundled into pcgen.jar
- Add xmlresolver to forceMerge to resolve package export conflict
- Replace --patch-module with --module-path for compileJava: all
  dependencies are now visible as proper modules
- Add requires directives for all runtime dependencies in module-info.java
  so the compiler can resolve them on the module-path

* Fix IntelliJ module visibility and test source set scoping

- Remove --patch-module hack from compileJava, place all dependencies on
  --module-path so IntelliJ and Gradle use the same module resolution
- Add requires directives to module-info.java for all runtime deps
  (commons-lang3, commons-io, fop-core, fop-events, xmlgraphics-commons,
  spring, freemarker, jdom2, argparse4j, controlsfx, xmlunit, Saxon, jep)
- Open additional packages to Spring for reflective bean instantiation
- Add sourceSets.test.output to itest/slowtest compile classpaths so
  IntelliJ maps the test module dependency at Compile scope, not Runtime

* Open additional gui3 sub-packages for reflection access

* Remove org.openjfx.javafxplugin — redundant with manual JavaFX setup

The plugin was causing configuration cache warnings (SourceSetContainer
serialization). JavaFX modules are already managed manually via
downloadJavaFXLocal/extractJavaFXLocal tasks and explicit --module-path
args. The jlink task now depends on downloadJavaFXMods directly to get
JavaFX jmods into the target JDK.

* Add JavaFX SDK jars as dependencies for IntelliJ module resolution

Without the javafxplugin, IntelliJ can't find javafx.controls etc.
Adding the local mods/lib jars as implementation dependencies makes
them visible to the IDE while Gradle still uses --module-path.

* Fix checkstyle violations: exclude module-info.java and correct code issues

- Exclude module-info.java from Checkstyle (it uses syntax Checkstyle can't parse)
- Remove redundant same-package import in RandomUtil.java
- Fix incorrect @param tag in AbstractToken.isValidXMLChar()

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Vest <Vest@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martijn Verburg <martijnverburg@gmail.com>
Co-authored-by: Andrew Maitland <drew0500@yahoo.com>
Co-authored-by: mertonmonk <33469335+mertonmonk@users.noreply.github.com>
Co-authored-by: Cullen Walsh <ckwalsh@cullenwalsh.com>
Co-authored-by: AtlasHackert <danielpharos@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants