diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 034648eff4b..e38727632b4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,11 +39,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -54,7 +54,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # â„šī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -68,4 +68,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/gradle-release-manual.yml b/.github/workflows/gradle-release-manual.yml index 3688e8f0553..b641f8d7a23 100644 --- a/.github/workflows/gradle-release-manual.yml +++ b/.github/workflows/gradle-release-manual.yml @@ -150,16 +150,8 @@ jobs: with: java-version: '25' distribution: 'temurin' - cache: gradle - cache-dependency-path: | - build.gradle - code/gradle/autobuild.gradle - code/gradle/distribution.gradle - code/gradle/release.gradle - code/gradle/reporting.gradle - code/gradle/plugins.gradle - - # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. + + # setup-gradle@v4 is the canonical Gradle cache for GitHub Actions. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -168,36 +160,31 @@ jobs: cache-read-only: false cache-overwrite-existing: true - - uses: actions/cache@v4 - with: - path: | - ${{ github.workspace }}/build/jre - ${{ github.workspace }}/build/libs - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - ${{ matrix.os }}-gradle - - - name: Build the image - if: success() - run: ./gradlew clean build copyToOutput test compileSlowtest datatest pfinttest allReports buildDist prepareRelease pcgenRelease - - - name: Upload zip based release assets for all platforms - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.os }}-zip - path: ${{ github.workspace }}/build/release/image-*.zip + - name: Compile and run unit tests + run: ./gradlew clean build + + - name: Run data and integration tests + run: ./gradlew compileSlowtest datatest pfinttest + + - name: Run static analysis reports + run: ./gradlew allReports - - name: Upload DMG release asset for macos + - name: Build distribution zips + run: ./gradlew buildDist + + - name: Build release artifacts + run: ./gradlew pcgenRelease + + - name: Upload release artifacts as workflow artifacts uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-latest' with: - name: ${{ matrix.os }}-dmg - path: ${{ github.workspace }}/build/release/*.dmg + name: ${{ matrix.release_suffix }}-release + path: ${{ github.workspace }}/build/release/* + if-no-files-found: error - - name: Upload PKG release asset for macos - uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-latest' + - name: Attach release artifacts to GitHub Release + uses: softprops/action-gh-release@v2 with: - name: ${{ matrix.os }}-pkg - path: ${{ github.workspace }}/build/release/*.pkg + tag_name: ${{ inputs.tag_name }} + files: ${{ github.workspace }}/build/release/* + fail_on_unmatched_files: true diff --git a/.github/workflows/gradle-release.yml b/.github/workflows/gradle-release.yml index dd9c6081f9b..af86f675508 100644 --- a/.github/workflows/gradle-release.yml +++ b/.github/workflows/gradle-release.yml @@ -1,4 +1,4 @@ -name: Create Release with Manual Tag +name: Create Release on Tag Push on: push: @@ -120,16 +120,8 @@ jobs: with: java-version: '25' distribution: 'temurin' - cache: gradle - cache-dependency-path: | - build.gradle - code/gradle/autobuild.gradle - code/gradle/distribution.gradle - code/gradle/release.gradle - code/gradle/reporting.gradle - code/gradle/plugins.gradle - - # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. + + # setup-gradle@v4 is the canonical Gradle cache for GitHub Actions. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -138,57 +130,31 @@ jobs: cache-read-only: false cache-overwrite-existing: true - - uses: actions/cache@v4 - with: - path: | - ${{ github.workspace }}/build/jre - ${{ github.workspace }}/build/libs - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - ${{ matrix.os }}-gradle - - - name: Build the image - if: success() - run: ./gradlew clean build copyToOutput test compileSlowtest datatest pfinttest allReports buildDist prepareRelease pcgenRelease - - - name: Upload zip based release assets for all platforms - uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-latest' - with: - name: ${{ matrix.os }}-zip - path: ${{ github.workspace }}/build/release/image-*.zip + - name: Compile and run unit tests + run: ./gradlew clean build + + - name: Run data and integration tests + run: ./gradlew compileSlowtest datatest pfinttest + + - name: Run static analysis reports + run: ./gradlew allReports - - name: Upload DMG release asset for macos + - name: Build distribution zips + run: ./gradlew buildDist + + - name: Build release artifacts + run: ./gradlew pcgenRelease + + - name: Upload release artifacts as workflow artifacts uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-latest' with: - name: ${{ matrix.os }}-dmg - path: ${{ github.workspace }}/build/release/*.dmg + name: ${{ matrix.release_suffix }}-release + path: ${{ github.workspace }}/build/release/* + if-no-files-found: error - - name: Upload PKG release asset for macos - uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-latest' + - name: Attach release artifacts to GitHub Release + uses: softprops/action-gh-release@v2 with: - name: ${{ matrix.os }}-pkg - path: ${{ github.workspace }}/build/release/*.pkg - -# - name: Upload release assets for ubuntu -# uses: actions/upload-artifact@v4 -# if: matrix.os == 'ubuntu-latest' -# with: -# name: ${{ matrix.os }} -# path: ${{ github.workspace }}/build/jpackage/*.deb -# -# - name: Upload release assets for windows -# uses: actions/upload-artifact@v4 -# if: matrix.os == 'windows-latest' -# with: -# name: ${{ matrix.os }} -# path: ${{ github.workspace }}/build/jpackage/*.msi -# -# - name: Release - ${{ matrix.os }} -# uses: softprops/action-gh-release@v2 -# with: -# tag_name: ${{ needs.create_release.outputs.tag-name }} -# files: ${{ github.workspace }}/build/release/pcgen-*.* + tag_name: ${{ inputs.tag_name || github.ref_name }} + files: ${{ github.workspace }}/build/release/* + fail_on_unmatched_files: true diff --git a/.github/workflows/gradle-test.yml b/.github/workflows/gradle-test.yml index 4034f333f3b..acc144d5617 100644 --- a/.github/workflows/gradle-test.yml +++ b/.github/workflows/gradle-test.yml @@ -22,39 +22,17 @@ jobs: with: java-version: '25' distribution: 'temurin' - cache: gradle - cache-dependency-path: | - build.gradle - code/gradle/autobuild.gradle - code/gradle/distribution.gradle - code/gradle/release.gradle - code/gradle/reporting.gradle - code/gradle/plugins.gradle - # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. + # setup-gradle@v4 is the canonical Gradle cache for GitHub Actions. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - with: - cache-disabled: false - cache-read-only: false - cache-overwrite-existing: true - - - uses: actions/cache@v4 - with: - path: | - ${{ github.workspace }}/build/jre - ${{ github.workspace }}/build/libs - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - ${{ runner.os }}-gradle - name: Build with Gradle Wrapper run: ./gradlew build - - name: Run tests - run: ./gradlew test itest datatest slowtest + - name: Run integration, data, and slow tests + run: ./gradlew itest datatest slowtest - name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action@v2 diff --git a/.gitignore b/.gitignore index 0c372a0bf96..d047a0e34f4 100644 --- a/.gitignore +++ b/.gitignore @@ -115,6 +115,7 @@ pcgen.iws # Misc jre/ +jdks/ mods/ code/manifest-tests .DS_Store diff --git a/AGENTS.md b/AGENTS.md index 58083626f6b..31e14aac133 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ This document captures the concrete commands, structure, conventions, and gotcha - Build tool: Gradle (via wrapper) - Java toolchain: Java 25 (Temurin) - UI: JavaFX; headless testing uses TestFX/Monocle -- Packaging: jlink/jpackage with custom runtimes and native installers +- Packaging: jlink (org.beryx.jlink 4.0.0) / jpackage with custom runtimes and native installers Key entry point: `pcgen.system.Main` (code/src/java/pcgen/system/Main.java) @@ -39,7 +39,7 @@ Always use the wrapper (./gradlew). Java 25 is required; Gradle will fetch depen - ./gradlew tasks - Build (default) - ./gradlew build -- Run unit tests (JUnit 5; headless JavaFX) +- Run unit tests (JUnit 6; headless JavaFX) - ./gradlew test - Integration tests (defined source set) - ./gradlew itest @@ -60,12 +60,13 @@ Always use the wrapper (./gradlew). Java 25 is required; Gradle will fetch depen - Run the app (ensures JavaFX modules for host platform) - ./gradlew run - Create native app image/installer via jpackage - - ./gradlew jpackage + - ./gradlew fullJpackage - Clean outputs and auxiliary folders (extended) - - ./gradlew clean (also triggers cleanPlugins, cleanOutput, cleanJre, cleanMods, cleanMasterSheets) + - ./gradlew clean (also triggers cleanPlugins, cleanOutput, cleanJdks, cleanMods, cleanMasterSheets) Notes -- Some tasks trigger downloads of JDKs/JavaFX for all platforms (downloadJRE, downloadJavaFXModules) or host SDK (downloadJavaFXLocal/extractJavaFXLocal). CI caches build/jre and build/libs. +- Some tasks trigger downloads of JDKs/JavaFX for all platforms (downloadJDKs, extractJDKs, downloadJavaFXMods) or host SDK (downloadJavaFXLocal/extractJavaFXLocal). CI caches build/jre and build/libs. +- The `jre` task prepares all platform JDKs with JavaFX modules for runtime image creation. - Runtime bundles expect assets in data/, system/, outputsheets/, preview/, vendordata/, homebrewdata/. ## Running From Source @@ -90,7 +91,7 @@ Batch export path exists in Main.startupWithoutGUI(). Tests demonstrate usage in ## Testing Approach -- JUnit 5 with Jupiter, xmlunit for XML comparisons, TestFX for JavaFX UI components. +- JUnit 6 with Jupiter, xmlunit for XML comparisons, TestFX for JavaFX UI components. - Source sets: - test: code/src/utest + testcommon - itest: code/src/itest + testcommon @@ -103,9 +104,9 @@ Batch export path exists in Main.startupWithoutGUI(). Tests demonstrate usage in ## Code Quality and Style -- Checkstyle config: code/standards/checkstyle.xml (enforced via reporting.gradle; toolVersion 12.1.2). Newline at EOF; 201 char line length; prohibits `System.exit` (use pcgen.util.GracefulExit.exit). -- PMD: ruleset at code/standards/ruleset.xml (referenced from reporting.gradle). -- SpotBugs: plugin 6.4.7; toolVersion 4.9.8; exclude filter code/standards/spotbugs_ignore.xml; ignoreFailures true; extra findsecbugs plugin. +- Checkstyle config: code/standards/checkstyle.xml (enforced via reporting.gradle; toolVersion 13.2.0). Newline at EOF; 201 char line length; prohibits `System.exit` (use pcgen.util.GracefulExit.exit). +- PMD: ruleset at code/standards/ruleset.xml (referenced from reporting.gradle); toolVersion 7.21.0; dependencies pmd-java 7.24.0 and pmd-ant 7.24.0. +- SpotBugs: plugin 6.5.4; toolVersion 4.9.8; exclude filter code/standards/spotbugs_ignore.xml; ignoreFailures true; extra findsecbugs plugin. - Aggregate quality task: ./gradlew allReports Conventions/gotchas observed @@ -177,10 +178,11 @@ Conventions/gotchas observed - Java version and JavaFX module handling are intertwined across build.gradle and distribution tasks — changing one often requires adjusting tasks (run, test, JavaCompile, runtime/jpackage) and CI. - The distribution relies on file layout in data/, outputsheets/, system/, preview/ — deletions or renames will break runtime validation in Main.validateEnvironment(). - GracefulExit should be used for controlled termination (tests hook the exit function). +- Module compilation: PCGen-base and PCGen-Formula jars are placed on `--module-path` while all other dependencies are merged into the pcgen module via `--patch-module`. This means **no source file in the pcgen module may share a package with classes in PCGen-base or PCGen-Formula jars** (Java forbids split packages across modules). Currently conflicting packages (`pcgen.base.util`, `pcgen.base.format`) have been relocated to `pcgen.util` and `pcgen.format` respectively. If adding new classes whose package exists in either jar, place them in a non-overlapping package. ## Maintainer/Issue Tracking Context - Primary docs: README.md (development setup, essential Gradle tasks) - Issue tracker: Jira at https://pcgenorg.atlassian.net (CODE/DATA/etc.) as referenced in README and docs/faqpages/faqsubmittingabugreport.md -This file documents only observed behavior and commands present in this repository as of the current state. \ No newline at end of file +This file documents only observed behavior and commands present in this repository as of the current state. diff --git a/README.md b/README.md index 86677ddba73..668778cdcc9 100644 --- a/README.md +++ b/README.md @@ -193,9 +193,12 @@ substitute `./gradlew` for `gradle` on the command line. ### Run Full Test Suite Do this primarily __before__ pull requests. -This is almost exactly the command Travis runs to verify, if it fails locally you will fail the build, and your PR will not be merged. +This mirrors what GitHub Actions runs to verify a PR; if it fails locally your CI build will also fail and your PR will not be merged. - ./gradlew clean build copyToOutput test compileSlowtest datatest pfinttest allReports buildDist + ./gradlew build + ./gradlew itest datatest slowtest + +`build` already runs the unit `test` task via the standard Java lifecycle, so it is not repeated. The second command runs the integration, data, and slow test suites. ### Clean All Build Files ./gradlew clean diff --git a/build.gradle b/build.gradle index bee5eb7eb90..cc397503894 100644 --- a/build.gradle +++ b/build.gradle @@ -13,11 +13,12 @@ import groovy.json.JsonSlurper -import org.apache.commons.lang3.StringUtils import org.apache.tools.ant.filters.FixCrLfFilter import org.apache.tools.ant.taskdefs.condition.Os import org.gradle.plugins.ide.idea.model.ProjectLibrary +import de.undercouch.gradle.tasks.download.Download + /** * Plugins without versions are ones that are bundled with Gradle at the version * being used (should be through gradlew). @@ -33,8 +34,7 @@ plugins { id 'de.undercouch.download' version '5.7.0' // Shows download percentage id 'com.github.ben-manes.versions' version '0.54.0' // Checks versions for plugins and dependencies id 'com.dorongold.task-tree' version '4.0.1' // Prints the task dependency tree - id 'org.openjfx.javafxplugin' version '0.1.0' // JavaFX support - id 'org.beryx.runtime' version '2.0.1' // Creates custom runtimes + id 'org.beryx.jlink' version '4.0.0' // Creates custom runtimes with jlink id 'jacoco' // Code coverage } @@ -48,9 +48,6 @@ group = 'net.sourceforge.pcgen' // Description of this project description = """PCGen""" -// Default task if you just run ./gradlew -defaultTasks 'build' - // Define properties for the build (directories) ext { // Where code gets compiled to @@ -59,8 +56,8 @@ ext { // Folder where exe / jar files are placed. outputDir = layout.projectDirectory.dir("output") - // Folder where the JREs are downloaded for building releases - jresDir = layout.projectDirectory.dir("jre") + // Folder where the JDKs are downloaded for building releases + jdksDir = layout.projectDirectory.dir("jdks") // Folder where the JavaFX mods are downloaded for building releases modsDir = layout.projectDirectory.dir("mods") @@ -88,14 +85,6 @@ java { } } -/** - * Set the version and the modules we want from JavaFX (not everything) - */ -javafx { - version = latestJavaVersion - modules = [ 'javafx.controls', 'javafx.swing', 'javafx.fxml', 'javafx.graphics', 'javafx.web' ] -} - application { mainClass.set('pcgen.system.Main') } @@ -107,31 +96,12 @@ repositories { // Maven Central as a default mavenCentral() - // Use Ant Ivy Plugin to reference our own hosted repos - // for PCGen Base and PCGen Formula JARs - //ivy { - // TODO Enable HTTPS (e.g., add letsencrypt) for that location - //url "http://pcgen.sourceforge.net/mvnrepo" - //allowInsecureProtocol = true - //patternLayout { - //artifact "[organisation]/jars/[artifact]-[revision].[ext]" - //} - //} ivy { // TODO Enable HTTPS (e.g., add letsencrypt) for that location name = 'fileRepo' url = 'http://pc-gen.org/librepo/' allowInsecureProtocol = true } - // Use Maven plugin to reference freehep (https://java.freehep.org/) artifact repository - // TODO Which libs do we pull from here? - /* - maven { - name = 'free' - url = 'https://java.freehep.org/maven2' - } - - */ maven { name = 'local' url = 'installers' @@ -157,13 +127,21 @@ sourceSets { srcDirs = ['code/src/resources'] } } - // Running regular tests - test { + // Shared test utilities — compiled once, consumed by test/itest/slowtest. + testcommon { java { - srcDirs = ['code/src/utest', 'code/src/testcommon'] + srcDirs = ['code/src/testcommon'] } compileClasspath += sourceSets.main.output runtimeClasspath += sourceSets.main.output + } + // Running regular tests + test { + java { + srcDirs = ['code/src/utest'] + } + compileClasspath += sourceSets.main.output + sourceSets.testcommon.output + runtimeClasspath += sourceSets.main.output + sourceSets.testcommon.output resources { srcDirs = ['code/src/testResources'] } @@ -171,27 +149,34 @@ sourceSets { // Integration Tests itest { java { - srcDirs = ['code/src/itest', 'code/src/testcommon'] + srcDirs = ['code/src/itest'] } resources { srcDirs = ['code/src/testResources'] } - compileClasspath += sourceSets.test.compileClasspath - runtimeClasspath += sourceSets.test.runtimeClasspath + compileClasspath += sourceSets.test.output + sourceSets.test.compileClasspath + runtimeClasspath += sourceSets.test.output + sourceSets.test.runtimeClasspath } // Running Slow Tests slowtest { java { - srcDirs = ['code/src/test', 'code/src/testcommon'] + srcDirs = ['code/src/test'] } resources { srcDirs = ['code/src/testResources'] } - compileClasspath += sourceSets.test.compileClasspath - runtimeClasspath += sourceSets.test.runtimeClasspath + compileClasspath += sourceSets.test.output + sourceSets.test.compileClasspath + runtimeClasspath += sourceSets.test.output + sourceSets.test.runtimeClasspath } } +// Make the testcommon source set use the same dependency configurations as test. +configurations { + testcommonImplementation.extendsFrom testImplementation + testcommonRuntimeOnly.extendsFrom testRuntimeOnly + testcommonCompileOnly.extendsFrom testCompileOnly +} + /* Copy 'master' outputsheets into different genre folders */ tasks.register("copyMasterSheets", Copy) { def filesToCopy = copySpec { @@ -233,22 +218,23 @@ tasks.register("cleanMasterSheets", Delete) { */ dependencies { + implementation fileTree(dir: 'mods/lib', include: ['javafx.*.jar']) + implementation 'commons-io:commons-io:2.22.0' implementation 'org.springframework:spring-web:7.0.7' implementation 'org.springframework:spring-beans:7.0.7' implementation 'org.springframework:spring-core:7.0.7' implementation 'org.apache.commons:commons-lang3:3.20.0' - implementation 'xalan:serializer:2.7.3' implementation('org.apache.xmlgraphics:fop:2.11') { exclude group: 'xml-apis', module: 'xml-apis' + exclude group: 'xalan', module: 'xalan' + exclude group: 'xalan', module: 'serializer' } + implementation 'net.sf.saxon:Saxon-HE:12.9' implementation 'org.apache.commons:commons-collections4:4.5.0' implementation 'org.scijava:jep:2.4.2' implementation 'org.freemarker:freemarker:2.3.34' implementation 'org.jdom:jdom2:2.0.6.1' - implementation('xalan:xalan:2.7.3') { - exclude group: 'xml-apis', module: 'xml-apis' - } implementation 'net.sourceforge.argparse4j:argparse4j:0.9.0' implementation 'org.xmlunit:xmlunit-core:2.11.0' implementation 'org.controlsfx:controlsfx:11.2.3' @@ -268,11 +254,14 @@ dependencies { compileOnly 'com.yuvimasory:orange-extensions:1.3.0' compileOnly 'com.github.spotbugs:spotbugs-annotations:4.9.8' - testImplementation 'org.junit.platform:junit-platform-runner:1.14.4' - testImplementation 'org.junit.platform:junit-platform-launcher:6.0.3' - testImplementation 'org.junit.jupiter:junit-jupiter-api:6.0.3' - testImplementation 'org.junit.jupiter:junit-jupiter-params:6.0.3' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:6.0.3' + testImplementation platform('org.junit:junit-bom:6.0.3') + testImplementation 'org.junit.platform:junit-platform-launcher' + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testImplementation 'org.junit.jupiter:junit-jupiter-params' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + // JUnit 4 is still used by ~870 legacy tests; pulled in via vintage engine + junit jar. + testImplementation 'junit:junit:4.13.2' + testRuntimeOnly 'org.junit.vintage:junit-vintage-engine' testImplementation 'org.hamcrest:hamcrest:3.0' testImplementation 'org.testfx:testfx-junit5:4.0.18' @@ -307,53 +296,74 @@ jar { 'Class-Path': classpath } - from { - configurations.runtimeClasspath.collect { - it.directory ? it : zipTree(it) - } - } + exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.EC' } /** - * Create a Java runtime built from Java modules + * Create a Java runtime built from Java modules using jlink */ -runtime { - options = [] - modules = [ - 'jdk.httpserver', - 'java.management', - 'java.rmi', - 'java.desktop', - 'java.xml', - 'java.sql', - 'jdk.unsupported', - 'java.prefs', - 'java.logging', - 'java.naming', - 'jdk.xml.dom', - 'jdk.unsupported.desktop', - 'java.scripting', - 'jdk.jfr', - 'jdk.jsobject', - 'javafx.controls', - 'javafx.web', - 'javafx.swing', - 'javafx.fxml', - 'javafx.graphics' +jlink { + options = ['--strip-debug', '--no-header-files', '--no-man-pages'] + forceMerge('PCGen-base', 'PCGen-Formula', 'jep', 'fop', 'Saxon-HE', + 'commons-lang3', 'commons-io', 'commons-collections4', 'spring', + 'freemarker', 'jdom2', 'argparse4j', 'xmlunit', 'controlsfx', + 'annotations', 'spotbugs', 'xmlresolver') + + mergedModule { + additive = true + requires 'java.desktop' + requires 'java.logging' + requires 'java.naming' + requires 'java.prefs' + requires 'java.scripting' + requires 'java.sql' + requires 'java.xml' + requires 'java.management' + requires 'java.rmi' + requires 'jdk.httpserver' + requires 'jdk.unsupported' + requires 'jdk.xml.dom' + requires 'jdk.unsupported.desktop' + requires 'jdk.jfr' + + // Exclude service providers that reference optional/missing dependencies + excludeProvides(servicePattern: 'reactor\\.blockhound\\..*') + excludeProvides(servicePattern: 'jakarta\\.servlet\\..*') + excludeProvides(servicePattern: 'io\\.micrometer\\..*') + // FOP service files list factory classes that don't directly implement the service interface + excludeProvides(service: 'org.apache.fop.render.intermediate.IFDocumentHandler') + excludeProvides(service: 'org.apache.fop.render.Renderer') + excludeProvides(service: 'org.apache.fop.fo.FOEventHandler') + } + + // Cross-platform images: only register platforms whose JDK javac can run on this host. + // CI sets PCGEN_ALL_PLATFORMS=true to build all targets (using platform-specific runners). + def hostArch = System.getProperty("os.arch") + def allPlatforms = System.getenv("PCGEN_ALL_PLATFORMS") == "true" + + def platformDefs = [ + 'linux-x64' : jdksDir.dir("jdk_linux_x64").asFile.absolutePath, + 'linux-aarch64' : jdksDir.dir("jdk_linux_aarch64").asFile.absolutePath, + 'windows-x64' : jdksDir.dir("jdk_windows_x64").asFile.absolutePath, + 'mac-x64' : jdksDir.dir("jdk_mac_x64/Contents/Home").asFile.absolutePath, + 'mac-aarch64' : jdksDir.dir("jdk_mac_aarch64/Contents/Home").asFile.absolutePath, ] - // We support Mac/Win/Linux x86-64, Mac/Linux aarch64 - targetPlatform('linux-x64', layout.projectDirectory.dir("jre/linux/jre_x64").asFile.absolutePath) - targetPlatform('linux-aarch64', layout.projectDirectory.dir("jre/linux/jre_aarch64").asFile.absolutePath) - targetPlatform('windows-x64', layout.projectDirectory.dir("jre/windows/jre_x64").asFile.absolutePath) - targetPlatform('mac-x64', layout.projectDirectory.dir("jre/mac/jre_x64/Contents/Home").asFile.absolutePath) - targetPlatform('mac-aarch64', layout.projectDirectory.dir("jre/mac/jre_aarch64/Contents/Home").asFile.absolutePath) + if (allPlatforms) { + platformDefs.each { name, jdk -> targetPlatform(name, jdk) } + } else if (Os.isFamily(Os.FAMILY_MAC)) { + def macPlatform = (hostArch == "aarch64") ? 'mac-aarch64' : 'mac-x64' + targetPlatform(macPlatform, platformDefs[macPlatform]) + } else if (Os.isFamily(Os.FAMILY_UNIX)) { + def linuxPlatform = (hostArch == "aarch64") ? 'linux-aarch64' : 'linux-x64' + targetPlatform(linuxPlatform, platformDefs[linuxPlatform]) + } else if (Os.isFamily(Os.FAMILY_WINDOWS)) { + targetPlatform('windows-x64', platformDefs['windows-x64']) + } // Use the jpackage tool that comes with Java to build native installers jpackage { def licenseFile = layout.projectDirectory.file("code/LICENSE") - installerOptions = ["--app-version", "${version.replaceAll('-SNAPSHOT', '')}", "--license-file", licenseFile.asFile.absolutePath] - def hostArchitecture = System.getProperty("os.arch") def osFamily = Os.isFamily(Os.FAMILY_MAC) ? "mac" : @@ -362,71 +372,95 @@ runtime { def targetPlatform = ["x86_64" : "x64", "amd64" : "x64", "aarch64" : "aarch64"] - // formats a string such as "mac -aarch64", or "linux-x64" targetPlatformName = "${osFamily}-${targetPlatform.get(hostArchitecture, "NOT SUPPORTED")}" + def appVersionStr = version.replaceAll('-SNAPSHOT', '').replaceAll(/[^0-9.].*/, '').replaceAll(/\.$/, '') + appVersion = appVersionStr + def opts = ["--license-file", licenseFile.asFile.absolutePath] + if (osFamily == "mac") { - installerOptions += ["--mac-package-identifier", "PcGen", "--mac-package-name", "PcGen"] + opts += ["--mac-package-identifier", "PcGen", "--mac-package-name", "PcGen"] resourceDir = layout.projectDirectory.dir("installers/mac-installer").asFile } - // This may seem weird but there's no LINUX family detection in the OS lib else if (osFamily == "linux") { - installerOptions += ['--linux-shortcut'] + opts += ['--linux-shortcut'] } + + installerOptions = opts imageName = "PcGen" } } -// Package up other files with the main program +// Package up other files with the main program after jpackage creates the image tasks.named("jpackageImage") { - dependsOn tasks.named("runtime") - doLast { - copy { - includeEmptyDirs = false - from layout.buildDirectory.dir("install/pcgen") - exclude "**/*.exe" - exclude "**/*.bat" - exclude "pcgen" - exclude "**/lib/**" - if (Os.isFamily(Os.FAMILY_MAC)) { - into layout.buildDirectory.dir("jpackage/PcGen.app/Contents/app") - } else { - into layout.buildDirectory.dir("jpackage/PcGen") - } - } + dependsOn tasks.named("jlink") +} - // Mac OS X specific config for jpackage - if (Os.isFamily(Os.FAMILY_MAC)) { - copy { - from layout.projectDirectory.dir("installers/mac-installer") - include "MacDirLauncher" - filePermissions { - unix(0755) - } - into layout.buildDirectory.dir("jpackage/PcGen.app/Contents/MacOS") - } - ant.replace(file: layout.buildDirectory.file("jpackage/PcGen.app/Contents/Info.plist").get(), - token: "CFBundleExecutable\n PcGen", - value: "CFBundleExecutable\n MacDirLauncher") +tasks.named("jlink") { + dependsOn "downloadJavaFXMods" +} + +tasks.register("assembleJpackageImage", Copy) { + dependsOn tasks.named("jpackageImage"), tasks.named("installDist") + includeEmptyDirs = false + from layout.buildDirectory.dir("install/pcgen") + exclude "**/*.exe" + exclude "**/*.bat" + exclude "pcgen" + exclude "**/lib/**" + if (Os.isFamily(Os.FAMILY_MAC)) { + into layout.buildDirectory.dir("jpackage/PcGen.app/Contents/app") + } else { + into layout.buildDirectory.dir("jpackage/PcGen") + } + // jpackageImage wipes the output dir on rebuild; always re-copy + outputs.upToDateWhen { false } +} + +if (Os.isFamily(Os.FAMILY_MAC)) { + tasks.register("patchMacJpackage", Copy) { + dependsOn tasks.named("assembleJpackageImage") + from layout.projectDirectory.dir("installers/mac-installer") + include "MacDirLauncher" + filePermissions { + unix(0755) } + into layout.buildDirectory.dir("jpackage/PcGen.app/Contents/MacOS") + def plistFile = layout.buildDirectory.file("jpackage/PcGen.app/Contents/Info.plist") + doLast { + def plist = plistFile.get().asFile + def content = plist.text + content = content.replace( + "CFBundleExecutable\n PcGen", + "CFBundleExecutable\n MacDirLauncher") + plist.text = content + } + } + + tasks.register("fullJpackage") { + dependsOn tasks.named("patchMacJpackage") + description = "Build the native application bundle with jpackage" + } +} else { + tasks.register("fullJpackage") { + dependsOn tasks.named("assembleJpackageImage") + description = "Build the native application bundle with jpackage" } } -// Create the Data Convertor JAR +// Create the Data Convertor JAR. +// This is a thin jar containing only a manifest that points at pcgen.jar +// (and the rest of the runtime classpath) via Class-Path. tasks.register("converterJar", Jar) { dependsOn jar manifest { - attributes 'Implementation-Title': 'PCGen Data Converter', 'Implementation-Version': archiveVersion, - 'Main-Class': 'pcgen.gui2.converter.PCGenDataConvert', 'Class-Path': 'pcgen.jar' + classpath + attributes 'Implementation-Title': 'PCGen Data Converter', + 'Implementation-Version': archiveVersion, + 'Main-Class': 'pcgen.gui2.converter.PCGenDataConvert', + 'Class-Path': 'pcgen.jar' + classpath } archiveClassifier.set('batch-convert') - from { - configurations.runtimeClasspath.collect { it.directory ? it : zipTree(it) } - } - - from sourceSets.main.output - include 'none' } tasks.named("assemble") { @@ -485,13 +519,11 @@ tasks.register("cleanOutput", Delete) { delete outputDir } -// TODO - Hook this into a clean phase properly -tasks.register("cleanJre", Delete) { - description = "Clean up things copied to the jre folder by the build" - delete jresDir +tasks.register("cleanJdks", Delete) { + description = "Clean up things copied to the jdks folder by the build" + delete jdksDir } -// TODO - Hook this into a clean phase properly tasks.register("cleanMods", Delete) { description="Clean up things copied to the mods folder by the build" delete modsDir @@ -518,168 +550,101 @@ tasks.named("build") { mustRunAfter clean } -tasks.register("downloadJRE") { - notCompatibleWithConfigurationCache("Gradle download extension not compatible") - - def major = project.ext.javaVersion - def architectures = ['x64', 'aarch64'] - def osList = ['windows', 'mac', 'linux'] - def baseJreDir = project.ext.jresDir - - doLast { - println("Downloading JDKs for use in creating the runtime bundles.") - - osList.each { - def os = "${it}" - def extension = (os == "windows" ? "zip" : "tar.gz") - - architectures.each { - def arch = "${it}" - // TODO We don't currently support Windows aarch64, but once Eclipse Adoptium does we should remove this line - if (arch == "aarch64" && os == "windows") return - - def url = "https://api.adoptium.net/v3/binary/latest/${major}/ga/${os}/${arch}/jdk/hotspot/normal/eclipse" - def jreDownloadDest = baseJreDir.file("${os}/jre_${arch}.${extension}") - def jreDir = baseJreDir.dir("${os}/jre_${arch}").asFile - def jreRelease = (os == "mac" - ? baseJreDir.dir("${os}/jre_${arch}/Contents/Home/release").asFile - : baseJreDir.dir("${os}/jre_${arch}/release").asFile) - def outputDir = baseJreDir.dir("${os}/jre_${arch}") - def shouldDownloadJDK = true - - try { - if (jreRelease.exists()) { - def props = new Properties() - jreRelease.withInputStream { props.load(it) } - def javaVersion = StringUtils.strip((String)props.get("JAVA_VERSION"), "\"") - shouldDownloadJDK = !javaVersion.startsWith(major.toString()) - println "JDK ${major} ${arch.padLeft(7)} for ${os.padLeft(7)} found with version ${javaVersion} at ${jreDir}, ${shouldDownloadJDK ? "starting" : "skipping"} downloading" - } - } catch (e) { - throw new GradleException("There was an error in :downloadJRE", e) - } +ext { + platforms = [ + [os: 'linux', arch: 'x64', ext: 'tar.gz'], + [os: 'linux', arch: 'aarch64', ext: 'tar.gz'], + [os: 'mac', arch: 'x64', ext: 'tar.gz'], + [os: 'mac', arch: 'aarch64', ext: 'tar.gz'], + [os: 'windows', arch: 'x64', ext: 'zip'], + ] +} - if (!shouldDownloadJDK) { - return - } else if (jreDir.exists()) { - println "Delete the previously downloaded JDK at ${jreDir} as outdated. JavaFX modules will be deleted from jdkDir/jmods." - delete(jreDir) - } +platforms.each { p -> + tasks.register("downloadJdk_${p.os}_${p.arch}", Download) { + description = "Downloads JDK for ${p.os} ${p.arch}" + src "https://api.adoptium.net/v3/binary/latest/${javaVersion}/ga/${p.os}/${p.arch}/jdk/hotspot/normal/eclipse" + dest jdksDir.file("jdk_${p.os}_${p.arch}.${p.ext}") + onlyIfModified true + overwrite false + useETag true + tempAndMove true + } +} - println("Downloading Java ${major} ${arch} for ${os} from ${url}") - download.run { - src url - dest jreDownloadDest.asFile.absolutePath - overwrite false - } +tasks.register("downloadJDKs") { + description = "Downloads JDKs for all supported platforms" + dependsOn platforms.collect { "downloadJdk_${it.os}_${it.arch}" } +} - baseJreDir.dir("${os}") - .asFileTree - .matching { include "*.${extension}" } - .each { simLib -> - def archFile = baseJreDir.file("${os}/${simLib.name}") - - copy { - println "* Unpack $simLib.name to ${outputDir}" - - if (extension == "zip") { - from zipTree(archFile) - } else { - from tarTree(archFile) - } - into outputDir - eachFile { FileCopyDetails fcd -> - def relPath = fcd.relativePath - def segments = relPath.segments - fcd.relativePath = new RelativePath(!fcd.isDirectory(), segments[1..-1] as String[]) - } - } - - delete(archFile) - } - - file("${projectDir}/jre/${os}/jre_${arch}").list().each { f -> - if (f.startsWith("jdk")) { - file("${projectDir}/jre/${os}/jre_${arch}/" + f).deleteDir() - } - } +platforms.each { p -> + tasks.register("extractJdk_${p.os}_${p.arch}", Copy) { + description = "Extracts JDK archive for ${p.os} ${p.arch}" + dependsOn "downloadJdk_${p.os}_${p.arch}" + + def archiveFile = jdksDir.file("jdk_${p.os}_${p.arch}.${p.ext}") + def outDir = jdksDir.dir("jdk_${p.os}_${p.arch}") + + from(p.ext == 'zip' ? zipTree(archiveFile) : tarTree(archiveFile)) + into outDir + + eachFile { FileCopyDetails fcd -> + def segments = fcd.relativePath.segments + if (segments.length > 1) { + fcd.relativePath = new RelativePath(!fcd.isDirectory(), segments[1..-1] as String[]) } } + includeEmptyDirs = false + + onlyIf { !outDir.asFile.directory } } } -tasks.register("downloadJavaFXModules") { - notCompatibleWithConfigurationCache("Gradle download extension not compatible") - - mustRunAfter downloadJRE - - // We support Windows/Mac/Linux - x64, and Mac/Linux - aarch64 - def jfxVersion = project.ext.latestJavaVersion - - def architectures = ['x64', 'aarch64'] - def osList = ["windows", "mac", "linux"] - def baseJreDir = project.ext.jresDir - def projectDirPath = projectDir.absolutePath +tasks.register("extractJDKs") { + description = "Extracts all downloaded JDK archives" + dependsOn platforms.collect { "extractJdk_${it.os}_${it.arch}" } +} - inputs.property("jfxVersion", jfxVersion) +platforms.each { p -> + def osPackage = (p.os == 'mac') ? 'osx' : p.os + def archSuffix = (p.arch == 'x64') ? '-x64' : '-aarch64' + def fileName = "openjfx-${latestJavaVersion}_${osPackage}${archSuffix}_bin-jmods.zip" + tasks.register("downloadJfxMods_${p.os}_${p.arch}", Download) { + description = "Downloads JavaFX jmods for ${p.os} ${p.arch}" + dependsOn "extractJdk_${p.os}_${p.arch}" + src "https://download2.gluonhq.com/openjfx/${latestJavaVersion}/${fileName}" + dest jdksDir.file("jfx_jmods_${p.os}_${p.arch}.zip") + overwrite false + useETag true + tempAndMove true + } - doLast { - println("Downloading JavaFX modules (.mods) for use in the runtime bundles.") - // Downloads javafx .mods for custom runtime image. All platforms downloaded - osList.each { os -> - // Build the os part of the filename string. Gluon renamed the mac package to osx - def osPackage = (os == "mac") ? "osx" : os + tasks.register("extractJfxMods_${p.os}_${p.arch}", Copy) { + description = "Extracts JavaFX jmods into JDK for ${p.os} ${p.arch}" + dependsOn "downloadJfxMods_${p.os}_${p.arch}" - architectures.each { arch -> - // build the architecture part of the download filename string - def archAppend - if (arch == "x64") { - archAppend = "-x64" - } else if (arch == "aarch64" && os != "windows") { - archAppend = "-aarch64" - } else { - return - } + def jmodsTarget = (p.os == 'mac') + ? jdksDir.dir("jdk_${p.os}_${p.arch}/Contents/Home/jmods") + : jdksDir.dir("jdk_${p.os}_${p.arch}/jmods") - // URLs look like this: https://download2.gluonhq.com/openjfx/25.0.1/openjfx-25.0.1_osx-aarch64_bin-jmods.zip - def url = "https://download2.gluonhq.com/openjfx/${jfxVersion}/openjfx-${jfxVersion}_${osPackage}${archAppend}_bin-jmods.zip" - def jmodsZip = baseJreDir.file("${os}/jmods${arch}.zip") - - // If we don't already have the jmods, download them and unzip them to the correct place. - if (!jmodsZip.asFile.exists()) { - println("Downloading JavaFX mods ${jfxVersion} ${arch} for ${os} from ${url} to ${projectDirPath}/jre/${os}/") - - download.run { - src url - dest jmodsZip - overwrite false - } - - copy { - def zipFile = jmodsZip - def outputDir = (os == "mac") - ? "${projectDirPath}/jre/${os}/jre_${arch}/Contents/Home/jmods" - : "${projectDirPath}/jre/${os}/jre_${arch}/jmods" - - println "Unzipping ${zipFile} to ${outputDir}" - from zipTree(zipFile) - into outputDir - eachFile { fcd -> - def relPath = fcd.relativePath - def segments = relPath.segments - fcd.relativePath = new RelativePath(!fcd.isDirectory(), (segments[1..-1]) as String[]) - } - includeEmptyDirs = false - } - } else { - println("* ${jmodsZip} already exists") - } - } + from zipTree(jdksDir.file("jfx_jmods_${p.os}_${p.arch}.zip")) + into jmodsTarget + eachFile { fcd -> + def segments = fcd.relativePath.segments + fcd.relativePath = new RelativePath(!fcd.isDirectory(), segments[1..-1] as String[]) } + includeEmptyDirs = false + + onlyIf { !jmodsTarget.asFile.directory || jmodsTarget.asFile.list()?.length == 0 } } } +tasks.register("downloadJavaFXMods") { + description = "Downloads and extracts JavaFX jmods into each platform JDK" + dependsOn platforms.collect { "extractJfxMods_${it.os}_${it.arch}" } +} + tasks.register("downloadJavaFXLocal", Download) { description = "Downloads the JavaFX modules for the current platform to the 'mods' directory for local testing" def supportedOS = [(Os.FAMILY_WINDOWS): "windows", @@ -739,8 +704,9 @@ tasks.named("compileJava") { dependsOn copyMasterSheets } -tasks.named("jre") { - dependsOn downloadJRE, downloadJavaFXModules +tasks.register("jre") { + description = "Prepares all platform JDKs with JavaFX modules for runtime image creation" + dependsOn downloadJavaFXMods } tasks.register("testCoverage", JacocoReport) { @@ -762,9 +728,25 @@ tasks.register("testCoverage", JacocoReport) { executionData.from = fileTree(dir: layout.buildDirectory.dir("jacoco")).include("*.exec") } +// https://docs.gradle.org/current/userguide/performance.html#a_run_tests_in_parallel +def parallelTestForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 + tasks.named("test", Test) { exclude 'test/pcgen/testsupport/**' useJUnitPlatform() + maxParallelForks = parallelTestForks + // TestFX/Monocle setup — only the unit test source set has TestFX-based tests. + jvmArgs += [ + '-Dtestfx.robot=glass', + '-Dtestfx.headless=true', + '-Dprism.order=sw', + // Workaround for TestFX modularity issue. https://github.com/TestFX/TestFX/issues/638 + '--add-exports', 'javafx.graphics/com.sun.javafx.application=ALL-UNNAMED', + // Required for Monocle. + '--add-exports', 'javafx.graphics/com.sun.javafx.util=ALL-UNNAMED', + '--add-exports', 'javafx.base/com.sun.javafx.logging=ALL-UNNAMED', + '--add-opens', 'javafx.graphics/com.sun.glass.ui=ALL-UNNAMED', + ] } tasks.register("itest", Test) { @@ -773,6 +755,7 @@ tasks.register("itest", Test) { testClassesDirs = sourceSets.itest.output.classesDirs classpath = sourceSets.itest.runtimeClasspath systemProperties['jar.path'] = jar.getArchiveFile().get().getAsFile() + maxParallelForks = parallelTestForks } tasks.register("slowtest", Test) { @@ -800,44 +783,23 @@ tasks.register("inttest", Test) { include 'slowtest/pcgen/inttest/**/*Test.class' } -tasks.register("sfinttest", Test) { - dependsOn jar - testClassesDirs = sourceSets.slowtest.output.classesDirs - classpath = sourceSets.slowtest.runtimeClasspath - forkEvery = 1 - include 'slowtest/pcgen/inttest/game_starfinder/*Test.class' -} - -tasks.register("pfinttest", Test) { - dependsOn jar - testClassesDirs = sourceSets.slowtest.output.classesDirs - classpath = sourceSets.slowtest.runtimeClasspath - forkEvery = 1 - include 'slowtest/pcgen/inttest/game_pathfinder/*Test.class' -} - -tasks.register("rsrdinttest", Test) { - dependsOn jar - testClassesDirs = sourceSets.slowtest.output.classesDirs - classpath = sourceSets.slowtest.runtimeClasspath - forkEvery = 1 - include 'slowtest/pcgen/inttest/game_35e/*Test.class' -} - -tasks.register("srdinttest", Test) { - dependsOn jar - testClassesDirs = sourceSets.slowtest.output.classesDirs - classpath = sourceSets.slowtest.runtimeClasspath - forkEvery = 1 - include 'slowtest/pcgen/inttest/game_3e/*Test.class' -} - -tasks.register("msrdinttest", Test) { - dependsOn jar - testClassesDirs = sourceSets.slowtest.output.classesDirs - classpath = sourceSets.slowtest.runtimeClasspath - forkEvery = 1 - include 'slowtest/pcgen/inttest/game_modern/*Test.class' +// Per-game-mode inttest variants. Each runs only the inttest classes for one +// game directory under code/src/test/pcgen/inttest. CI references these names +// (e.g. pfinttest) so the task names are stable. +[ + sfinttest : 'game_starfinder', + pfinttest : 'game_pathfinder', + rsrdinttest: 'game_35e', + srdinttest : 'game_3e', + msrdinttest: 'game_modern', +].each { taskName, gameDir -> + tasks.register(taskName, Test) { + dependsOn jar + testClassesDirs = sourceSets.slowtest.output.classesDirs + classpath = sourceSets.slowtest.runtimeClasspath + forkEvery = 1 + include "slowtest/pcgen/inttest/${gameDir}/*Test.class" + } } allprojects { @@ -855,22 +817,13 @@ allprojects { } jvmArgs += [ '-Djava.awt.headless=true', - '-Dtestfx.robot=glass', - '-Dtestfx.headless=true', - '-Dprism.order=sw', - '-Dprism.verbose=true', '-Djavafx.macosx.embedded=true', '-Djava.security.manager=disallow', "--module-path", layout.projectDirectory.dir("mods/lib"), "--add-modules", "javafx.controls,javafx.web,javafx.swing,javafx.fxml,javafx.graphics", - // Needed to fix issue with testfx test crashing due to issue with modularity of whole program. Slightly related issue. https://github.com/TestFX/TestFX/issues/638 - '--add-exports', 'javafx.graphics/com.sun.javafx.application=ALL-UNNAMED', - // Next two needed to support monocle testing - '--add-exports', 'javafx.graphics/com.sun.javafx.util=ALL-UNNAMED', - '--add-exports', 'javafx.base/com.sun.javafx.logging=ALL-UNNAMED', - '--add-opens', 'javafx.graphics/com.sun.glass.ui=ALL-UNNAMED', + '--enable-native-access=javafx.graphics', ] } @@ -879,11 +832,21 @@ allprojects { options.fork = true options.release = project.ext.javaVersion + def modsLibPath = layout.projectDirectory.dir("mods/lib").asFile.absolutePath + def depJars = configurations.runtimeClasspath.files.findAll { + !it.name.startsWith('javafx-') + }.collect { it.absolutePath }.join(File.pathSeparator) + def compileOnlyJars = configurations.compileClasspath.files.findAll { + it.name.contains('annotations') || it.name.contains('spotbugs') + }.collect { it.absolutePath }.join(File.pathSeparator) + doFirst { if (name.toLowerCase().contains("test")) { - options.compilerArgs << "--module-path" << layout.projectDirectory.dir("mods/lib").asFile.absolutePath - //options.compilerArgs << "--add-modules" << "javafx.controls,javafx.web,javafx.swing,javafx.fxml" // Not sure why no javafx.graphics here + options.compilerArgs << "--module-path" << modsLibPath options.compilerArgs << "--add-modules" << "javafx.controls,javafx.web,javafx.swing,javafx.fxml,javafx.graphics" + } else if (name == "compileJava") { + def modulePath = [modsLibPath, depJars, compileOnlyJars].findAll { it }.join(File.pathSeparator) + options.compilerArgs << "--module-path" << modulePath } println "Args for for $name are $options.allCompilerArgs" } @@ -976,5 +939,5 @@ tasks.register("allTasks") { // you will also need to clean out output/ bin/ // This task is in the end, because other scripts contribute to the building process tasks.named("clean") { - dependsOn cleanPlugins, cleanOutput, cleanJre, cleanMods, cleanMasterSheets + dependsOn cleanPlugins, cleanOutput, cleanJdks, cleanMods, cleanMasterSheets } diff --git a/code/gradle/distribution.gradle b/code/gradle/distribution.gradle index 42964dc8127..204706e0f4a 100644 --- a/code/gradle/distribution.gradle +++ b/code/gradle/distribution.gradle @@ -40,12 +40,6 @@ ext { } } - programDistsImage = copySpec { - from(layout.buildDirectory.dir("launch4j")) { - include 'pcgen.exe' - } - } - programScriptImage = copySpec { from('.') { include 'pcgen_low_mem.bat' @@ -75,12 +69,6 @@ ext { include 'characters/*.pcg' } } - - jreImage = copySpec { - from('.') { - include 'jre/windows/**' - } - } } application { @@ -93,7 +81,6 @@ application { applicationDistribution.with(autobuildSpec) applicationDistribution.with(charactersImage) applicationDistribution.with(programScriptImage) - applicationDistribution.with(programDistsImage) } tasks.named("run") { @@ -113,25 +100,9 @@ tasks.named("run") { } tasks.named("installDist") { - doLast{ - delete { - delete fileTree(layout.buildDirectory.dir("install/pcgen/lib")) { - include 'javafx-*' - } - } - } -} - -tasks.register("testZip", Zip) { - dependsOn converterJar, copyToLibs, copyToOutput - archiveClassifier.set('test') - into(zipRootFolder) { - with dataDistsImage - with docsDistsImage - with programDistsImage - with libsDistsImage - with autobuildSpec - with charactersImage + def installLibDir = layout.buildDirectory.dir("install/pcgen/lib") + doLast { + installLibDir.get().asFile.listFiles()?.findAll { it.name.startsWith('javafx-') }?.each { it.delete() } } } @@ -156,7 +127,6 @@ tasks.register("programZip", Zip) { dependsOn converterJar archiveClassifier.set('program') into(zipRootFolder) { - with programDistsImage with programScriptImage with autobuildSpec } @@ -172,6 +142,6 @@ tasks.register("libsZip", Zip) { } tasks.register("buildDist") { - dependsOn dataZip, docsZip, programZip, libsZip, runtimeZip + dependsOn dataZip, docsZip, programZip, libsZip, jlinkZip description = "Build the five zip files (docs, data, program, libs and full) which comprise the autobuild distribution." } diff --git a/code/gradle/release.gradle b/code/gradle/release.gradle index c7ee590cbcd..8b1079210d6 100644 --- a/code/gradle/release.gradle +++ b/code/gradle/release.gradle @@ -22,245 +22,13 @@ apply from: "code/gradle/releaseUtils.groovy" apply plugin: 'java' -import org.apache.tools.ant.filters.FixCrLfFilter import org.apache.tools.ant.taskdefs.condition.Os -import org.gradle.api.internal.file.copy.DefaultCopySpec ext { // Work out the path to the release notes for our current version. plainVerNum = version.replaceAll('-SNAPSHOT', '') shortVerNum = plainVerNum.replaceAll(/\./, '') releaseNotes = "${projectDir}/installers/release-notes/pcgen-release-notes-${shortVerNum}.html" - - nsisBaseFolder = layout.buildDirectory.dir("nsis/PCGen_${shortVerNum}_base") - nsisOptionFolder = layout.buildDirectory.dir("nsis/PCGen_${shortVerNum}_opt") - - // specifications for what to copy to the NSIS base and optional folders - baseLibs = copySpec { - from(layout.buildDirectory.dir("libs")) { - exclude 'pcgen-*.jar' - exclude 'fop*.jar' - exclude 'batik*.jar' - } - into ('/libs') - } as DefaultCopySpec - - lib32 = copySpec { - from(layout.buildDirectory.dir("image/pcgen-windows-x32/lib")) { - exclude 'fop*.jar' - exclude 'batik*.jar' - } - into('/lib32') - } as DefaultCopySpec - - lib64 = copySpec { - from(layout.buildDirectory.dir("image/pcgen-windows-x64/lib")) { - exclude 'fop*.jar' - exclude 'batik*.jar' - exclude 'javafx*.jar' - } - into('/lib64') - } as DefaultCopySpec - - pdfLibs = copySpec { - from(layout.buildDirectory.dir("libs")) { - include 'fop*.jar' - include 'batik*.jar' - } - into ('/plugin/pdf/libs') - } as DefaultCopySpec - - basePlugins = copySpec { - from(layout.projectDirectory.dir("plugins")) { - include '*plugins/**' - include 'Random Names/**' - include 'DoomsdayBook.jar' - } - into ('/plugins') - } as DefaultCopySpec - - gmgenPlugins = copySpec { - from(layout.projectDirectory.dir("plugins")) { - exclude '*plugins/**' - exclude 'Random Names/**' - exclude 'DoomsdayBook.jar' - } - into ('/plugin/gmgen/plugins') - } as DefaultCopySpec - - nonPdfOutput = copySpec { - from(layout.projectDirectory.dir("outputsheets")) { - exclude '**/pdf/**' - } - into ('/outputsheets') - } as DefaultCopySpec - - pdfOutput = copySpec { - from(layout.projectDirectory.dir("outputsheets")) { - include '**/pdf/**' - } - into ('/plugin/pdf/outputsheets') - } as DefaultCopySpec - - baseData = copySpec { - from(layout.projectDirectory.dir("data")) { - include 'customsources/**' - include 'homebrew/**' - } - into ('/data') - } as DefaultCopySpec - - optionalData = copySpec { - from(layout.projectDirectory.dir("data")) { - exclude 'customsources/**' - exclude 'homebrew/**' - } - into ('/data') - } as DefaultCopySpec - - List result = plainVerNum.replaceAll('-DEV', '').tokenize('.') - installerVerNum = result[0].toInteger() + "." + result[1].toInteger() + "." + result[2].take(2).toInteger() + ".0" -} - -// Generate the publisher/data list for the Windows installer script -tasks.register("genDataList") { - - notCompatibleWithConfigurationCache("File manipulation involved in genDataList") - - inputs.dir layout.projectDirectory.dir("data") - - def dataNsh = layout.projectDirectory.file("installers/win-installer/includes/data.nsh") - outputs.file dataNsh - - // TODO: find a way to move it to ext section. - // The list of publishers - add an entry here to correct a reported missing publisher - def publisherMap = ["12_to_midnight" : "12 to Midnight", - "4_winds_fantasy_gaming" : "4 Winds Fantasy Gaming", - "alderac_entertainment_group": "Alderac Entertainment Group", - "alderac_ent_group" : "Alderac Entertainment Group", - "alea_publishing_group" : "Alea Publishing Group", - "alluria_publishing" : "Alluria Publishing", - "ascension_games" : "Ascension Games", - "atlas_games" : "Atlas Games", - "auran_d20" : "Auran d20", - "avalanche_press" : "Avalanche Press", - "badaxe_games" : "Bad Axe Games", - "bards_and_sages" : "Bards and Sages", - "bastion_press" : "Bastion Press", - "battlefield_press" : "Battlefield Press", - "behemoth3" : "Behemoth3", - "big_finger_games" : "Big Finger Games", - "bloodstone_press" : "Bloodstone Press", - "blue_devil_games" : "Blue Devil Games", - "broken_ruler_games" : "Broken Ruler Games", - "crafty_games" : "Crafty Games", - "creativemountaingames" : "Creative Mountain Games", - "distant_horizons_games" : "Distant Horizons Games", - "doghouse_rules" : "Dog House Rules", - "dragonwing_games" : "DragonWing Games", - "dreamscarred_press" : "Dreamscarred Press", - "en_publishing" : "EN Publishing", - "everyman_gaming" : "Everyman Gaming", - "fantasy_community_council" : "Fantasy Community Council", - "fantasy_flight_games" : "Fantasy Flight Games", - "gallantry_productions" : "Gallantry Productions", - "goodman_games" : "Goodman Games", - "green_ronin" : "Green Ronin", - "kobold_press" : "Kobold Press", - "legendary_games" : "Legendary Games", - "lions_den_press" : "Lions Den Press", - "lone_wanderer_entertainment": "Lone Wanderer Entertainment", - "malhavoc_press" : "Malhavoc Press", - "minotaur_games" : "Minotaur Games", - "mongoose" : "Mongoose", - "mongoose_publishing" : "Mongoose Publishing", - "msrd" : "MSRD", - "mythic_dream_studios" : "Mythic Dreams Studios", - "necromancer_games" : "Necromancer Games", - "nitehawk_interactive" : "Nitehawk Interactive Games", - "pandahead" : "Pandahead", - "paradigm_concepts" : "Paradigm Concepts Inc", - "paizo" : "Paizo Publishing", - "parents_basement_games" : "Parents Basement Games", - "pcgen" : "PCGen OGL", - "pfsrd_publishing" : "Open Game Network (d20pfsrd,", - "pinnacle_entertainment" : "Pinnacle Entertainment", - "reality_deviant" : "Reality Deviant Publications", - "rite" : "Rite Publishing", - "rite_publishing" : "Rite Publishing", - "rpg_objects" : "RPG Objects", - "sagaborn" : "Sagaborn", - "secular_games" : "Secular Games", - "silven_publishing" : "Silven Publishing", - "silverthorne_games" : "Silverthorne Games", - "skirmisher_publishing" : "Skirmisher Publishing LLC", - "sovereign_press" : "Sovereign Press", - "srd" : "SRD", - "srd35" : "SRD35", - "st_cooley_publishing" : "S T Cooley Publishing", - "storm_bunny_studios" : "Storm Bunny Studios", - "super_genius_games" : "Super Genius Games", - "sword_and_sorcery_studios" : "Sword and Sorcery Studios", - "swords_edge_publishing" : "Swords Edge Publishing", - "the_game_mechanics" : "The Game Mechanics Inc", - "vigilance_press" : "Vigilance Press", - "wizards_of_the_coast" : "Wizards of the Coast", - "lpj_design" : "Louis Porter Jr. Design", - "tripod_machine" : "Tripod Machine", - "total_party_kill_games" : "Total Party Kill Games", - "starfinder" : "Starfinder"] - - doLast { - project.delete(dataNsh) - def out = new StringBuilder() - - // List of folder names to ignore. - def ignoreList = ["homebrew", "zen_test", "customsources", "_universal", "_images", "publisher_logos"] - - // List of sections - def sectionsIn = [msrd: "3 6", pcgen: "3 4 5", srd: "3 4", srd35: "3 5", necromancergames: "3 5", paizo: "3"] - - layout.projectDirectory.dir("data").asFile.eachDir { - if (ignoreList.contains(it.name)) - { - return - } - out.append("SubSection \"$it.name\"\n") - def dir = it.name - def subFolders = 0 - it.eachDir { - if (ignoreList.contains(it.name)) - { - return - } - def pubname = publisherMap.getOrDefault(it.name, it.name) - def sectionIn = sectionsIn.getOrDefault(it.name, "") - - out.append("""\tSection "$pubname" -\t\tSectionIn 1 2 ${sectionIn} -\t\tSetOutPath "\$INSTDIR\\\${APPDIR}\\data\\${dir}\\${it.name}" -\t\tFile /r "\${SrcDir}\\PCGen_\${SIMPVER}_opt\\data\\${dir}\\${it.name}\\*.*" -\tSectionEnd - -""") - subFolders++ - } - if (subFolders == 0){ - def pubname = publisherMap.getOrDefault(it.name, it.name) - out.append("""\tSection "$pubname" -\t\tSectionIn 1 2 -\t\tSetOutPath "\$INSTDIR\\\${APPDIR}\\data\\${dir}" -\t\tFile /r "\${SrcDir}\\PCGen_\${SIMPVER}_opt\\data\\${dir}\\*.*" -\tSectionEnd - -""") - } - out.append("SubSectionEnd\n\n") - } - - println("Writing data to: ${outputs.files.singleFile}") - outputs.files.singleFile.text = out - } } tasks.register("sourcesJar", Jar) { @@ -272,11 +40,11 @@ tasks.register("sourcesJar", Jar) { } tasks.register("assembleArtifacts", Copy) { - dependsOn build, runtimeZip, sourcesJar + dependsOn build, jlinkZip, sourcesJar if (Os.isFamily(Os.FAMILY_MAC) || Os.isFamily(Os.FAMILY_UNIX)) { - dependsOn jpackage + dependsOn fullJpackage } description = "Create the release artifacts and get them into the release folder." @@ -351,7 +119,6 @@ tasks.register("checksum") { } } -// genDataList removed as it causes release errors, 'genDataList' tasks.register("prepareRelease") { dependsOn build description = """Prepare PCGen for release. This will update and commit the version, \ @@ -364,11 +131,10 @@ tasks.register("pcgenRelease") { // Installer is placed in outputDir } -// Update the PCGen version to indicate a release, then commit the new version +// Update the PCGen version to indicate a release. Commit the change manually. tasks.register("updateVersionRelease") { doLast { unSnapshotVersion() - commitFile(file("gradle.properties"), "Update version for release ${project.version}") } } @@ -377,10 +143,9 @@ tasks.register("pcgenReleaseOfficial") { description = "Release a new official version of PCGen." } -// Update the PCGen version for development of the next release, then commit the new version +// Update the PCGen version for development of the next release. Commit the change manually. tasks.register("updateVersionToNext") { doLast { updateVersion() - commitFile(file("gradle.properties"), "Update version for dev work ${project.version}") } } diff --git a/code/gradle/reporting.gradle b/code/gradle/reporting.gradle index 5fdf70b4583..faee4ecd800 100644 --- a/code/gradle/reporting.gradle +++ b/code/gradle/reporting.gradle @@ -13,6 +13,10 @@ checkstyle { sourceSets = [] } +tasks.withType(Checkstyle).configureEach { + exclude '**/module-info.java' +} + pmd { // turn off the default rules ruleSets = [] diff --git a/code/src/java/module-info.java b/code/src/java/module-info.java new file mode 100644 index 00000000000..24f531f734b --- /dev/null +++ b/code/src/java/module-info.java @@ -0,0 +1,81 @@ +module pcgen { + requires java.desktop; + requires java.logging; + requires java.naming; + requires java.net.http; + requires java.prefs; + requires java.scripting; + requires java.sql; + requires java.xml; + requires java.management; + requires java.rmi; + requires jdk.httpserver; + requires jdk.unsupported; + requires jdk.xml.dom; + + requires javafx.controls; + requires javafx.fxml; + requires javafx.graphics; + requires javafx.swing; + requires javafx.web; + + requires PCGen.base; + requires PCGen.Formula; + + requires org.apache.commons.lang3; + requires org.apache.commons.io; + requires org.apache.commons.collections4; + requires freemarker; + requires org.jdom2; + requires net.sourceforge.argparse4j; + requires org.controlsfx.controls; + requires org.xmlunit; + requires org.apache.xmlgraphics.fop.core; + requires org.apache.xmlgraphics.fop.events; + requires org.apache.xmlgraphics.commons; + requires spring.web; + requires spring.beans; + requires spring.core; + requires Saxon.HE; + requires jep; + + requires static org.jetbrains.annotations; + requires static com.github.spotbugs.annotations; + + exports pcgen.core; + exports pcgen.gui2; + exports pcgen.gui3; + exports pcgen.io; + exports pcgen.persistence; + exports pcgen.pluginmgr; + exports pcgen.system; + exports pcgen.util; + + opens pcgen.system; + opens pcgen.pluginmgr; + opens pcgen.core.bonus; + opens pcgen.core.prereq; + opens pcgen.cdom.facet; + opens pcgen.cdom.facet.analysis; + opens pcgen.cdom.facet.fact; + opens pcgen.cdom.facet.input; + opens pcgen.cdom.facet.model; + opens pcgen.cdom.formula.scope; + opens pcgen.cdom.reference; + opens pcgen.cdom.enumeration; + opens pcgen.persistence.lst; + opens pcgen.rules.persistence; + opens pcgen.rules.context; + opens pcgen.gui2.converter; + opens pcgen.gui3; + opens pcgen.gui3.application; + opens pcgen.gui3.behavior; + opens pcgen.gui3.component; + opens pcgen.gui3.core; + opens pcgen.gui3.dialog; + opens pcgen.gui3.preferences; + opens pcgen.gui3.preloader; + opens pcgen.gui3.utilty; + opens pcgen.io; + opens pcgen.util; +} diff --git a/code/src/java/pcgen/cdom/choiceset/ReferenceChoiceSet.java b/code/src/java/pcgen/cdom/choiceset/ReferenceChoiceSet.java index 514fcdebb16..ddd1b30309e 100644 --- a/code/src/java/pcgen/cdom/choiceset/ReferenceChoiceSet.java +++ b/code/src/java/pcgen/cdom/choiceset/ReferenceChoiceSet.java @@ -24,7 +24,7 @@ import java.util.Objects; import java.util.Set; -import pcgen.base.util.WeightedCollection; +import pcgen.util.WeightedCollection; import pcgen.cdom.base.CDOMReference; import pcgen.cdom.base.Constants; import pcgen.cdom.base.PrimitiveChoiceSet; diff --git a/code/src/java/pcgen/cdom/facet/HitPointFacet.java b/code/src/java/pcgen/cdom/facet/HitPointFacet.java index f64617c2e9f..4f49b8af533 100644 --- a/code/src/java/pcgen/cdom/facet/HitPointFacet.java +++ b/code/src/java/pcgen/cdom/facet/HitPointFacet.java @@ -17,7 +17,7 @@ */ package pcgen.cdom.facet; -import pcgen.base.util.RandomUtil; +import pcgen.util.RandomUtil; import pcgen.cdom.base.CDOMObject; import pcgen.cdom.base.Constants; import pcgen.cdom.content.HitDie; diff --git a/code/src/java/pcgen/core/RollingMethods.java b/code/src/java/pcgen/core/RollingMethods.java index a79063dfaed..8f18e2c311e 100644 --- a/code/src/java/pcgen/core/RollingMethods.java +++ b/code/src/java/pcgen/core/RollingMethods.java @@ -23,7 +23,7 @@ import java.util.Vector; import java.util.stream.IntStream; -import pcgen.base.util.RandomUtil; +import pcgen.util.RandomUtil; import pcgen.util.Logging; import org.nfunk.jep.JEP; diff --git a/code/src/java/pcgen/core/kit/KitGear.java b/code/src/java/pcgen/core/kit/KitGear.java index 1d114254c7d..8a90e7cc996 100644 --- a/code/src/java/pcgen/core/kit/KitGear.java +++ b/code/src/java/pcgen/core/kit/KitGear.java @@ -25,7 +25,7 @@ import java.util.List; import pcgen.base.formula.Formula; -import pcgen.base.util.NamedFormula; +import pcgen.util.NamedFormula; import pcgen.cdom.base.CDOMReference; import pcgen.cdom.base.Constants; import pcgen.cdom.helper.EqModRef; diff --git a/code/src/java/pcgen/base/format/HandedManager.java b/code/src/java/pcgen/format/HandedManager.java similarity index 98% rename from code/src/java/pcgen/base/format/HandedManager.java rename to code/src/java/pcgen/format/HandedManager.java index b1f0099c632..698fcdf3a5c 100644 --- a/code/src/java/pcgen/base/format/HandedManager.java +++ b/code/src/java/pcgen/format/HandedManager.java @@ -13,7 +13,7 @@ * this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, * Suite 330, Boston, MA 02111-1307 USA */ -package pcgen.base.format; +package pcgen.format; import java.util.Arrays; import java.util.Optional; diff --git a/code/src/java/pcgen/output/channel/compat/HandedCompat.java b/code/src/java/pcgen/output/channel/compat/HandedCompat.java index 0915f0ff044..7c225360fa9 100644 --- a/code/src/java/pcgen/output/channel/compat/HandedCompat.java +++ b/code/src/java/pcgen/output/channel/compat/HandedCompat.java @@ -1,6 +1,6 @@ package pcgen.output.channel.compat; -import pcgen.base.format.HandedManager; +import pcgen.format.HandedManager; import pcgen.base.util.FormatManager; import pcgen.cdom.enumeration.CharID; import pcgen.cdom.enumeration.Handed; diff --git a/code/src/java/pcgen/rules/persistence/TokenSupport.java b/code/src/java/pcgen/rules/persistence/TokenSupport.java index d1d89e07e76..a46cc957648 100644 --- a/code/src/java/pcgen/rules/persistence/TokenSupport.java +++ b/code/src/java/pcgen/rules/persistence/TokenSupport.java @@ -28,9 +28,9 @@ import pcgen.base.proxy.StagingInfo; import pcgen.base.util.CaseInsensitiveMap; import pcgen.base.util.DoubleKeyMapToList; -import pcgen.base.util.ProxyUtilities; +import pcgen.util.ProxyUtilities; import pcgen.base.util.TripleKeyMapToList; -import pcgen.base.util.WeightedCollection; +import pcgen.util.WeightedCollection; import pcgen.cdom.base.GroupDefinition; import pcgen.cdom.base.Loadable; import pcgen.rules.context.LoadContext; diff --git a/code/src/java/pcgen/rules/persistence/token/AbstractToken.java b/code/src/java/pcgen/rules/persistence/token/AbstractToken.java index 9fe9d46aec9..0b627d8ad84 100644 --- a/code/src/java/pcgen/rules/persistence/token/AbstractToken.java +++ b/code/src/java/pcgen/rules/persistence/token/AbstractToken.java @@ -26,7 +26,6 @@ import pcgen.rules.context.LoadContext; import pcgen.util.Logging; -import org.apache.xml.utils.XMLChar; public abstract class AbstractToken { @@ -128,16 +127,24 @@ protected ParseResult checkNonEmpty(String value) } /** - * Checks a string to see if any characters are invalid for inclusion in + * Checks a string to see if any characters are invalid for inclusion in * XML strings. - * @param value The string to check. - * @return A parse result of success if the string uses only valid characters. + * @param c The character to check. + * @return {@code true} if the character is valid in XML. */ + // XML 1.0 §2.2: valid chars are #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] + private static boolean isValidXMLChar(char c) + { + return c == 0x9 || c == 0xA || c == 0xD + || (c >= 0x20 && c <= 0xD7FF) + || (c >= 0xE000 && c <= 0xFFFD); + } + protected ParseResult checkForInvalidXMLChars(String value) { for (char character : value.toCharArray()) { - if (!XMLChar.isValid(character)) + if (!isValidXMLChar(character)) { return new ParseResult.Fail( "Invalid XML character 0x" + Integer.toString(character, 16) + " in " + value); diff --git a/code/src/java/pcgen/base/util/NamedFormula.java b/code/src/java/pcgen/util/NamedFormula.java similarity index 98% rename from code/src/java/pcgen/base/util/NamedFormula.java rename to code/src/java/pcgen/util/NamedFormula.java index 01458681e5e..f7301da55dc 100644 --- a/code/src/java/pcgen/base/util/NamedFormula.java +++ b/code/src/java/pcgen/util/NamedFormula.java @@ -15,7 +15,7 @@ * along with this library; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -package pcgen.base.util; +package pcgen.util; import pcgen.base.formula.Formula; diff --git a/code/src/java/pcgen/base/util/ProxyUtilities.java b/code/src/java/pcgen/util/ProxyUtilities.java similarity index 98% rename from code/src/java/pcgen/base/util/ProxyUtilities.java rename to code/src/java/pcgen/util/ProxyUtilities.java index f3c6c0effab..6d5f48bb593 100644 --- a/code/src/java/pcgen/base/util/ProxyUtilities.java +++ b/code/src/java/pcgen/util/ProxyUtilities.java @@ -13,7 +13,7 @@ * this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, * Suite 330, Boston, MA 02111-1307 USA */ -package pcgen.base.util; +package pcgen.util; import pcgen.base.proxy.ItemProcessor; import pcgen.base.proxy.ListProcessor; diff --git a/code/src/java/pcgen/base/util/RandomUtil.java b/code/src/java/pcgen/util/RandomUtil.java similarity index 97% rename from code/src/java/pcgen/base/util/RandomUtil.java rename to code/src/java/pcgen/util/RandomUtil.java index 2b106e97c4f..2173f6108de 100644 --- a/code/src/java/pcgen/base/util/RandomUtil.java +++ b/code/src/java/pcgen/util/RandomUtil.java @@ -13,12 +13,10 @@ * along with this library; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -package pcgen.base.util; +package pcgen.util; import java.util.Random; -import pcgen.util.Logging; - /** * This class provides utility functions for random number generation. * diff --git a/code/src/java/pcgen/base/util/WeightedCollection.java b/code/src/java/pcgen/util/WeightedCollection.java similarity index 99% rename from code/src/java/pcgen/base/util/WeightedCollection.java rename to code/src/java/pcgen/util/WeightedCollection.java index b808a3708d3..6ec4b75e20f 100644 --- a/code/src/java/pcgen/base/util/WeightedCollection.java +++ b/code/src/java/pcgen/util/WeightedCollection.java @@ -16,7 +16,7 @@ * along with this library; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -package pcgen.base.util; +package pcgen.util; import java.util.AbstractCollection; import java.util.Collection; @@ -26,6 +26,8 @@ import java.util.TreeSet; import java.util.function.Predicate; +import pcgen.base.util.ListSet; + import org.jetbrains.annotations.NotNull; /** diff --git a/code/src/java/pcgen/util/chooser/RandomChooser.java b/code/src/java/pcgen/util/chooser/RandomChooser.java index bc4f54464cb..aa0bb7b1168 100644 --- a/code/src/java/pcgen/util/chooser/RandomChooser.java +++ b/code/src/java/pcgen/util/chooser/RandomChooser.java @@ -17,7 +17,7 @@ */ package pcgen.util.chooser; -import pcgen.base.util.RandomUtil; +import pcgen.util.RandomUtil; import pcgen.facade.core.ChooserFacade; import pcgen.facade.core.InfoFacade; import pcgen.facade.util.ListFacade; diff --git a/code/src/java/pcgen/util/fop/FopTask.java b/code/src/java/pcgen/util/fop/FopTask.java index 5a6c4c932ae..0f282a80253 100644 --- a/code/src/java/pcgen/util/fop/FopTask.java +++ b/code/src/java/pcgen/util/fop/FopTask.java @@ -64,7 +64,8 @@ public final class FopTask implements Runnable private static final FopFactory FOP_FACTORY = createFopFactory(); private static FOUserAgent userAgent; - private static final TransformerFactory TRANS_FACTORY = TransformerFactory.newInstance(); + private static final TransformerFactory TRANS_FACTORY = + TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl", null); private static FopFactory createFopFactory() { diff --git a/code/src/java/plugin/lsttokens/MovecloneLst.java b/code/src/java/plugin/lsttokens/MovecloneLst.java index c9734c63eb6..9d3af4be5d9 100644 --- a/code/src/java/plugin/lsttokens/MovecloneLst.java +++ b/code/src/java/plugin/lsttokens/MovecloneLst.java @@ -21,7 +21,7 @@ import java.util.StringTokenizer; import java.util.function.Function; -import pcgen.base.util.WeightedCollection; +import pcgen.util.WeightedCollection; import pcgen.cdom.base.CDOMObject; import pcgen.cdom.base.Constants; import pcgen.cdom.base.Ungranted; diff --git a/code/src/java/plugin/lsttokens/auto/EquipToken.java b/code/src/java/plugin/lsttokens/auto/EquipToken.java index 372cb9fe6b9..8e8a2298736 100644 --- a/code/src/java/plugin/lsttokens/auto/EquipToken.java +++ b/code/src/java/plugin/lsttokens/auto/EquipToken.java @@ -24,7 +24,7 @@ import java.util.StringTokenizer; import pcgen.base.util.HashMapToList; -import pcgen.base.util.WeightedCollection; +import pcgen.util.WeightedCollection; import pcgen.cdom.base.CDOMObject; import pcgen.cdom.base.CDOMReference; import pcgen.cdom.base.ChooseDriver; diff --git a/code/src/java/plugin/lsttokens/kit/basekit/LookupToken.java b/code/src/java/plugin/lsttokens/kit/basekit/LookupToken.java index 82c62bb8053..94aa36ef6c2 100644 --- a/code/src/java/plugin/lsttokens/kit/basekit/LookupToken.java +++ b/code/src/java/plugin/lsttokens/kit/basekit/LookupToken.java @@ -24,7 +24,7 @@ import pcgen.base.formula.Formula; import pcgen.base.text.ParsingSeparator; -import pcgen.base.util.NamedFormula; +import pcgen.util.NamedFormula; import pcgen.cdom.base.FormulaFactory; import pcgen.core.kit.KitGear; import pcgen.rules.context.LoadContext; diff --git a/code/src/java/plugin/lsttokens/race/StartfeatsToken.java b/code/src/java/plugin/lsttokens/race/StartfeatsToken.java index b1998652c37..894da8a21a7 100644 --- a/code/src/java/plugin/lsttokens/race/StartfeatsToken.java +++ b/code/src/java/plugin/lsttokens/race/StartfeatsToken.java @@ -19,7 +19,7 @@ import java.util.Collection; -import pcgen.base.util.WeightedCollection; +import pcgen.util.WeightedCollection; import pcgen.cdom.enumeration.ListKey; import pcgen.core.Race; import pcgen.core.bonus.Bonus; diff --git a/code/src/utest/pcgen/core/RollingMethodsTest.java b/code/src/utest/pcgen/core/RollingMethodsTest.java index 8e02ba20b02..c0162a3005d 100644 --- a/code/src/utest/pcgen/core/RollingMethodsTest.java +++ b/code/src/utest/pcgen/core/RollingMethodsTest.java @@ -6,7 +6,7 @@ import java.util.Random; import java.util.stream.IntStream; -import pcgen.base.util.RandomUtil; +import pcgen.util.RandomUtil; import org.junit.jupiter.api.Test; diff --git a/code/src/utest/pcgen/persistence/lst/URIFactoryTest.java b/code/src/utest/pcgen/persistence/lst/URIFactoryTest.java index a1f4a66d122..4f24fddf073 100644 --- a/code/src/utest/pcgen/persistence/lst/URIFactoryTest.java +++ b/code/src/utest/pcgen/persistence/lst/URIFactoryTest.java @@ -20,7 +20,7 @@ void testGetURI_WithValidRootAndOffset() throws URISyntaxException String offset = "data/file.txt"; URIFactory uriFactory = new URIFactory(rootURI, offset); - URI expected = new File(System.getProperty("user.dir"), "data/file.txt").toURI(); + URI expected = new URI("file:" + System.getProperty("user.dir") + "/data/file.txt"); URI result = uriFactory.getURI(); assertEquals(expected, result); diff --git a/code/src/utest/pcgen/base/util/NamedFormulaTest.java b/code/src/utest/pcgen/util/NamedFormulaTest.java similarity index 98% rename from code/src/utest/pcgen/base/util/NamedFormulaTest.java rename to code/src/utest/pcgen/util/NamedFormulaTest.java index bf7c46299ae..5e9dd69fa9e 100644 --- a/code/src/utest/pcgen/base/util/NamedFormulaTest.java +++ b/code/src/utest/pcgen/util/NamedFormulaTest.java @@ -15,7 +15,7 @@ * along with this library; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -package pcgen.base.util; +package pcgen.util; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/code/src/utest/pcgen/base/util/WeightedCollectionTest.java b/code/src/utest/pcgen/util/WeightedCollectionTest.java similarity index 99% rename from code/src/utest/pcgen/base/util/WeightedCollectionTest.java rename to code/src/utest/pcgen/util/WeightedCollectionTest.java index 4d385526f0e..3b1d85c3ffc 100644 --- a/code/src/utest/pcgen/base/util/WeightedCollectionTest.java +++ b/code/src/utest/pcgen/util/WeightedCollectionTest.java @@ -15,7 +15,7 @@ * along with this library; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -package pcgen.base.util; +package pcgen.util; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; + import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.AbstractCollection; diff --git a/gradle.properties b/gradle.properties index 448e819108e..31b1c1dc2c3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,6 @@ -#version=6.09.06-SNAPSHOT version=6.09.08.RC1 -localOnly = false org.gradle.jvmargs=-Xmx4096m -org.gradle.configuration-cache=false +org.gradle.configuration-cache=true org.gradle.configuration-cache.parallel=true org.gradle.configuration-cache.problems=warn diff --git a/gradlew.bat b/gradlew.bat index aa5f10b069f..24c62d56f2d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,82 +1,82 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables, and ensure extensions are enabled -setlocal EnableExtensions - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -"%COMSPEC%" /c exit 1 - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -"%COMSPEC%" /c exit 1 - -:execute -@rem Setup the command line - - - -@rem Execute Gradle -@rem endlocal doesn't take effect until after the line is parsed and variables are expanded -@rem which allows us to clear the local environment before executing the java command -endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel - -:exitWithErrorLevel -@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts -"%COMSPEC%" /c exit %ERRORLEVEL% +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/installers/mac-installer/MacDirLauncher b/installers/mac-installer/MacDirLauncher index dc626978de2..4faa19dd6f4 100644 --- a/installers/mac-installer/MacDirLauncher +++ b/installers/mac-installer/MacDirLauncher @@ -1,5 +1,6 @@ #!/bin/bash -cd "${0%/*}" +DIR="${0%/*}" +cd "$DIR/../app" -./PcGen \ No newline at end of file +"$DIR/PcGen" \ No newline at end of file diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_attack.xslt index 42fb2a9f665..90223b6fffc 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_bio_condensed.xslt index 206cf3cd37a..1c279433927 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_class_features.xslt index 1b9cb46c18a..7a8dc0edcf2 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_equipment.xslt index 55123c5afeb..90e2deffe02 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_features.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_features.xslt index fa657eb6b65..d2a1c1ab507 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_hp_defense.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_hp_defense.xslt index 1473cd872d7..d123b583c6a 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_hp_defense.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_misc.xslt index 418d631d10c..fe01b587200 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_pc_header_row.xslt index 13dc54f9423..fde635a8b44 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_protection.xslt index c1bf09f4dcd..6f957a1a14f 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_psionics.xslt index 5c4346191a5..0ba239484dd 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_skills.xslt index fd0ba1642f8..b34893033c3 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_spells_condensed.xslt index d32a6695414..5f2d134c125 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_spells_list.xslt index 1ebe9952bbd..04c87db0574 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_stat_block.xslt index dddd3d1c2dd..5afba047ce6 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/4e/pdf/common_sheet/block_weapons.xslt index 49ade4f8199..8b95d6391c9 100644 --- a/outputsheets/d20/4e/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/4e/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/4e/pdf/fantasy_common.xsl b/outputsheets/d20/4e/pdf/fantasy_common.xsl index 95956ffff44..8297a4be73f 100644 --- a/outputsheets/d20/4e/pdf/fantasy_common.xsl +++ b/outputsheets/d20/4e/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -760,7 +760,7 @@ - + diff --git a/outputsheets/d20/4e/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/4e/pdf/fantasy_master_common_blocks.xslt index e584adea6fa..9a7ef032b69 100644 --- a/outputsheets/d20/4e/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/4e/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/4e/pdf/inc_pagedimensions.xslt b/outputsheets/d20/4e/pdf/inc_pagedimensions.xslt index dd449082752..f4aad31f1cc 100644 --- a/outputsheets/d20/4e/pdf/inc_pagedimensions.xslt +++ b/outputsheets/d20/4e/pdf/inc_pagedimensions.xslt @@ -7,10 +7,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + @@ -53,10 +53,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + diff --git a/outputsheets/d20/4e/pdf/leadership.xsl b/outputsheets/d20/4e/pdf/leadership.xsl index 3bc5fb2d50e..cb8df221729 100644 --- a/outputsheets/d20/4e/pdf/leadership.xsl +++ b/outputsheets/d20/4e/pdf/leadership.xsl @@ -3,7 +3,7 @@ version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:math="http://exslt.org/math" xmlns:myAttribs="my:Attribs" xmlns:Leadership="my:Leadership" @@ -26,7 +26,7 @@ - + Each attribute is a tag where the name of the tag is the name of the attribute. All of the attributes of the tag will become attributes of the calling element, @@ -54,7 +54,7 @@ - + @@ -76,7 +76,7 @@ @@ -89,7 +89,7 @@ - + @@ -265,7 +265,7 @@ - + @@ -286,7 +286,7 @@ - + diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_attack.xslt index d408a715191..0d26a6fb803 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_bio_condensed.xslt index 2bbafe3ff9f..e01cc18b841 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_class_features.xslt index 59da4db39d9..f947da7e02b 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_equipment.xslt index cb257983bc6..90566852230 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_features.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_features.xslt index 03573ccd297..0cfaed1c8af 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_hp_defense.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_hp_defense.xslt index a4ed67f4d32..6cdc93ba00d 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_hp_defense.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_misc.xslt index 8bdbaa16b54..42127528b5d 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_pc_header_row.xslt index b08bbb11831..f806c36ed72 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_protection.xslt index 0a442a4fd83..49e4ba73ac9 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_psionics.xslt index 80d9f287764..75a5f090d6f 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_skills.xslt index 90e11d2326d..517318ca507 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_spells_condensed.xslt index adeeaf4b65a..6ec9bae39fc 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_spells_list.xslt index bf7d901f315..abf1277ed3e 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_stat_block.xslt index bd126bc19bd..698b6d37f7c 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/5e/pdf/common_sheet/block_weapons.xslt index 5bce9c6cf56..cb3d720974b 100644 --- a/outputsheets/d20/5e/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/5e/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/5e/pdf/fantasy_common.xsl b/outputsheets/d20/5e/pdf/fantasy_common.xsl index 499f9ac8b44..7ba249c636b 100644 --- a/outputsheets/d20/5e/pdf/fantasy_common.xsl +++ b/outputsheets/d20/5e/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -814,7 +814,7 @@ - + diff --git a/outputsheets/d20/5e/pdf/fantasy_master_alt_largetext.xslt b/outputsheets/d20/5e/pdf/fantasy_master_alt_largetext.xslt index e1b70e4f814..99a854ff11d 100644 --- a/outputsheets/d20/5e/pdf/fantasy_master_alt_largetext.xslt +++ b/outputsheets/d20/5e/pdf/fantasy_master_alt_largetext.xslt @@ -1,7 +1,7 @@ - + - + - + @@ -43,10 +43,10 @@ - + - + @@ -66,10 +66,10 @@ - + - + @@ -82,10 +82,10 @@ - + - + @@ -98,10 +98,10 @@ - + - + @@ -114,10 +114,10 @@ - + - + diff --git a/outputsheets/d20/5e/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/5e/pdf/fantasy_master_common_blocks.xslt index 03639d89e37..fcafc886dac 100644 --- a/outputsheets/d20/5e/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/5e/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/5e/pdf/fantasy_master_common_companion_box.xslt b/outputsheets/d20/5e/pdf/fantasy_master_common_companion_box.xslt index 130bb3e1fa1..76ac7b7aae8 100644 --- a/outputsheets/d20/5e/pdf/fantasy_master_common_companion_box.xslt +++ b/outputsheets/d20/5e/pdf/fantasy_master_common_companion_box.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/5e/pdf/fantasy_master_no_header.xslt b/outputsheets/d20/5e/pdf/fantasy_master_no_header.xslt index 4ae469c8691..44b13caf97b 100644 --- a/outputsheets/d20/5e/pdf/fantasy_master_no_header.xslt +++ b/outputsheets/d20/5e/pdf/fantasy_master_no_header.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/5e/pdf/fantasy_master_no_spells.xslt b/outputsheets/d20/5e/pdf/fantasy_master_no_spells.xslt index e67092a0bc4..b3082f3c11a 100644 --- a/outputsheets/d20/5e/pdf/fantasy_master_no_spells.xslt +++ b/outputsheets/d20/5e/pdf/fantasy_master_no_spells.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -63,10 +63,10 @@ - + - + @@ -86,10 +86,10 @@ - + - + @@ -102,10 +102,10 @@ - + - + @@ -118,10 +118,10 @@ - + - + @@ -134,10 +134,10 @@ - + - + diff --git a/outputsheets/d20/5e/pdf/fantasy_master_spell_list_only.xslt b/outputsheets/d20/5e/pdf/fantasy_master_spell_list_only.xslt index f484908d790..7181aab1b88 100644 --- a/outputsheets/d20/5e/pdf/fantasy_master_spell_list_only.xslt +++ b/outputsheets/d20/5e/pdf/fantasy_master_spell_list_only.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -51,10 +51,10 @@ - + - + @@ -74,10 +74,10 @@ - + - + @@ -90,10 +90,10 @@ - + - + @@ -106,10 +106,10 @@ - + - + @@ -122,10 +122,10 @@ - + - + diff --git a/outputsheets/d20/5e/pdf/inc_pagedimensions.xslt b/outputsheets/d20/5e/pdf/inc_pagedimensions.xslt index dd449082752..f4aad31f1cc 100644 --- a/outputsheets/d20/5e/pdf/inc_pagedimensions.xslt +++ b/outputsheets/d20/5e/pdf/inc_pagedimensions.xslt @@ -7,10 +7,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + @@ -53,10 +53,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + diff --git a/outputsheets/d20/_common_blocks/block_attack.xslt b/outputsheets/d20/_common_blocks/block_attack.xslt index d3c2fe7a391..f167b9efcfd 100644 --- a/outputsheets/d20/_common_blocks/block_attack.xslt +++ b/outputsheets/d20/_common_blocks/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_bio_condensed.xslt b/outputsheets/d20/_common_blocks/block_bio_condensed.xslt index 00320f14d98..6315ccfcd40 100644 --- a/outputsheets/d20/_common_blocks/block_bio_condensed.xslt +++ b/outputsheets/d20/_common_blocks/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_blank.xslt b/outputsheets/d20/_common_blocks/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/_common_blocks/block_blank.xslt +++ b/outputsheets/d20/_common_blocks/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_class_features.xslt b/outputsheets/d20/_common_blocks/block_class_features.xslt index 555f6469587..4667197fe22 100644 --- a/outputsheets/d20/_common_blocks/block_class_features.xslt +++ b/outputsheets/d20/_common_blocks/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_equipment.xslt b/outputsheets/d20/_common_blocks/block_equipment.xslt index 57d338c0d0d..0249e0ba201 100644 --- a/outputsheets/d20/_common_blocks/block_equipment.xslt +++ b/outputsheets/d20/_common_blocks/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_features.xslt b/outputsheets/d20/_common_blocks/block_features.xslt index 627412c2984..e0123b8554c 100644 --- a/outputsheets/d20/_common_blocks/block_features.xslt +++ b/outputsheets/d20/_common_blocks/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_footer.xslt b/outputsheets/d20/_common_blocks/block_footer.xslt index ff79a5c9087..ea8a9f20edb 100644 --- a/outputsheets/d20/_common_blocks/block_footer.xslt +++ b/outputsheets/d20/_common_blocks/block_footer.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_hp_defense.xslt b/outputsheets/d20/_common_blocks/block_hp_defense.xslt index b242ed0b408..743bff5671b 100644 --- a/outputsheets/d20/_common_blocks/block_hp_defense.xslt +++ b/outputsheets/d20/_common_blocks/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_misc.xslt b/outputsheets/d20/_common_blocks/block_misc.xslt index 561f8237b92..50a22220cbb 100644 --- a/outputsheets/d20/_common_blocks/block_misc.xslt +++ b/outputsheets/d20/_common_blocks/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_pc_header_row.xslt b/outputsheets/d20/_common_blocks/block_pc_header_row.xslt index 3f38d7267a7..22a07970ece 100644 --- a/outputsheets/d20/_common_blocks/block_pc_header_row.xslt +++ b/outputsheets/d20/_common_blocks/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_protection.xslt b/outputsheets/d20/_common_blocks/block_protection.xslt index 3952bc5ae63..8b92b51468f 100644 --- a/outputsheets/d20/_common_blocks/block_protection.xslt +++ b/outputsheets/d20/_common_blocks/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_psionics.xslt b/outputsheets/d20/_common_blocks/block_psionics.xslt index 1cb26c66a0a..5273a462d2e 100644 --- a/outputsheets/d20/_common_blocks/block_psionics.xslt +++ b/outputsheets/d20/_common_blocks/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/_common_blocks/block_skills.xslt b/outputsheets/d20/_common_blocks/block_skills.xslt index 3f5b21faf87..4883cf674ab 100644 --- a/outputsheets/d20/_common_blocks/block_skills.xslt +++ b/outputsheets/d20/_common_blocks/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_spells_condensed.xslt b/outputsheets/d20/_common_blocks/block_spells_condensed.xslt index 6865ff5b593..12e66a0e024 100644 --- a/outputsheets/d20/_common_blocks/block_spells_condensed.xslt +++ b/outputsheets/d20/_common_blocks/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_spells_list.xslt b/outputsheets/d20/_common_blocks/block_spells_list.xslt index 3896701455c..e8758a91a27 100644 --- a/outputsheets/d20/_common_blocks/block_spells_list.xslt +++ b/outputsheets/d20/_common_blocks/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_stat_block.xslt b/outputsheets/d20/_common_blocks/block_stat_block.xslt index 21487064106..22c706a28ce 100644 --- a/outputsheets/d20/_common_blocks/block_stat_block.xslt +++ b/outputsheets/d20/_common_blocks/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/_common_blocks/block_weapons.xslt b/outputsheets/d20/_common_blocks/block_weapons.xslt index 7150dc0f439..52f355c30da 100644 --- a/outputsheets/d20/_common_blocks/block_weapons.xslt +++ b/outputsheets/d20/_common_blocks/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_attack.xslt index a78ab2ade4d..b8c9201d5a5 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_bio_condensed.xslt index 00320f14d98..6315ccfcd40 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_class_features.xslt index 555f6469587..4667197fe22 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_equipment.xslt index 57d338c0d0d..0249e0ba201 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_features.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_features.xslt index 2b84af81eb3..0306a4e0e81 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_hp_defense.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_hp_defense.xslt index b242ed0b408..743bff5671b 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_hp_defense.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_misc.xslt index 561f8237b92..50a22220cbb 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_pc_header_row.xslt index b5ce0657292..37dc02720fe 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_protection.xslt index 3952bc5ae63..8b92b51468f 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_psionics.xslt index 1cb26c66a0a..5273a462d2e 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_skills.xslt index 3f5b21faf87..4883cf674ab 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_condensed.xslt index 5e94cb5958c..295c717b687 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_list.xslt index 3896701455c..e8758a91a27 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_memorized.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_memorized.xslt index 19100d66cb5..6b70cb410db 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_memorized.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_spells_memorized.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_stat_block.xslt index 21487064106..22c706a28ce 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/fantasy/pdf/common_sheet/block_weapons.xslt index 7150dc0f439..52f355c30da 100644 --- a/outputsheets/d20/fantasy/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/fantasy/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy/pdf/fantasy_common.xsl b/outputsheets/d20/fantasy/pdf/fantasy_common.xsl index e48d2ce6545..7c19dd98ec2 100644 --- a/outputsheets/d20/fantasy/pdf/fantasy_common.xsl +++ b/outputsheets/d20/fantasy/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -762,7 +762,7 @@ - + diff --git a/outputsheets/d20/fantasy/pdf/fantasy_master_alt_largetext.xslt b/outputsheets/d20/fantasy/pdf/fantasy_master_alt_largetext.xslt index 61367d9ee53..a4d60fe6018 100644 --- a/outputsheets/d20/fantasy/pdf/fantasy_master_alt_largetext.xslt +++ b/outputsheets/d20/fantasy/pdf/fantasy_master_alt_largetext.xslt @@ -1,7 +1,7 @@ - + - + - + @@ -43,10 +43,10 @@ - + - + @@ -66,10 +66,10 @@ - + - + @@ -82,10 +82,10 @@ - + - + @@ -98,10 +98,10 @@ - + - + @@ -114,10 +114,10 @@ - + - + diff --git a/outputsheets/d20/fantasy/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/fantasy/pdf/fantasy_master_common_blocks.xslt index 4c802bb2d0b..a5be9b08473 100644 --- a/outputsheets/d20/fantasy/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/fantasy/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -73,10 +73,10 @@ - + - + @@ -96,10 +96,10 @@ - + - + @@ -112,10 +112,10 @@ - + - + @@ -128,10 +128,10 @@ - + - + @@ -144,10 +144,10 @@ - + - + diff --git a/outputsheets/d20/fantasy/pdf/fantasy_master_common_companion_box.xslt b/outputsheets/d20/fantasy/pdf/fantasy_master_common_companion_box.xslt index 40e25707d10..16ee92a7078 100644 --- a/outputsheets/d20/fantasy/pdf/fantasy_master_common_companion_box.xslt +++ b/outputsheets/d20/fantasy/pdf/fantasy_master_common_companion_box.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/fantasy/pdf/fantasy_master_no_header.xslt b/outputsheets/d20/fantasy/pdf/fantasy_master_no_header.xslt index 90e560d88d6..0394c3a1a29 100644 --- a/outputsheets/d20/fantasy/pdf/fantasy_master_no_header.xslt +++ b/outputsheets/d20/fantasy/pdf/fantasy_master_no_header.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/fantasy/pdf/fantasy_master_spell_list_only.xslt b/outputsheets/d20/fantasy/pdf/fantasy_master_spell_list_only.xslt index 28446dbb625..8ff29bce62f 100644 --- a/outputsheets/d20/fantasy/pdf/fantasy_master_spell_list_only.xslt +++ b/outputsheets/d20/fantasy/pdf/fantasy_master_spell_list_only.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/fantasy/pdf/inc_pagedimensions.xslt b/outputsheets/d20/fantasy/pdf/inc_pagedimensions.xslt index dd449082752..f4aad31f1cc 100644 --- a/outputsheets/d20/fantasy/pdf/inc_pagedimensions.xslt +++ b/outputsheets/d20/fantasy/pdf/inc_pagedimensions.xslt @@ -7,10 +7,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + @@ -53,10 +53,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_attack.xslt index d3c2fe7a391..f167b9efcfd 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_bio_condensed.xslt index 00320f14d98..6315ccfcd40 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_class_features.xslt index 555f6469587..4667197fe22 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_equipment.xslt index 57d338c0d0d..0249e0ba201 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_features.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_features.xslt index 5fd19801e64..9a79647c6de 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_hp_defense.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_hp_defense.xslt index b242ed0b408..743bff5671b 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_hp_defense.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_misc.xslt index 561f8237b92..50a22220cbb 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_pc_header_row.xslt index 3f38d7267a7..22a07970ece 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_protection.xslt index 3952bc5ae63..8b92b51468f 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_psionics.xslt index 1cb26c66a0a..5273a462d2e 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_skills.xslt index 3f5b21faf87..4883cf674ab 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_condensed.xslt index 6865ff5b593..12e66a0e024 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_list.xslt index 3896701455c..e8758a91a27 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_stat_block.xslt index 21487064106..22c706a28ce 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_weapons.xslt index 7150dc0f439..52f355c30da 100644 --- a/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/fantasy_craft/pdf/fantasy_common.xsl b/outputsheets/d20/fantasy_craft/pdf/fantasy_common.xsl index e48d2ce6545..7c19dd98ec2 100644 --- a/outputsheets/d20/fantasy_craft/pdf/fantasy_common.xsl +++ b/outputsheets/d20/fantasy_craft/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -762,7 +762,7 @@ - + diff --git a/outputsheets/d20/fantasy_craft/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/fantasy_craft/pdf/fantasy_master_common_blocks.xslt index 929e29de69e..cfd4ebb84d1 100644 --- a/outputsheets/d20/fantasy_craft/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/fantasy_craft/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -73,10 +73,10 @@ - + - + @@ -96,10 +96,10 @@ - + - + @@ -112,10 +112,10 @@ - + - + @@ -128,10 +128,10 @@ - + - + @@ -144,10 +144,10 @@ - + - + diff --git a/outputsheets/d20/modern/pdf/csheet_modern_std.xslt b/outputsheets/d20/modern/pdf/csheet_modern_std.xslt index 038508c8a2c..e72bcb28958 100644 --- a/outputsheets/d20/modern/pdf/csheet_modern_std.xslt +++ b/outputsheets/d20/modern/pdf/csheet_modern_std.xslt @@ -9,7 +9,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack.xslt index a78ab2ade4d..b8c9201d5a5 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack_pf2.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack_pf2.xslt index a371c855b2c..b2d973a4efc 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack_pf2.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_attack_pf2.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_bio_condensed.xslt index 00320f14d98..6315ccfcd40 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_class_features.xslt index 555f6469587..4667197fe22 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_equipment.xslt index 57d338c0d0d..0249e0ba201 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_features.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_features.xslt index ffe0fc3d4ec..2e0b2fbdde0 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_hp_defense_pf2.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_hp_defense_pf2.xslt index a4b8206bbb2..01abb5873e9 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_hp_defense_pf2.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_hp_defense_pf2.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_misc.xslt index 561f8237b92..50a22220cbb 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_pc_header_row.xslt index b5ce0657292..37dc02720fe 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection.xslt index 3952bc5ae63..8b92b51468f 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection_pf2.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection_pf2.xslt index 214e4a3e91e..56cf3264e5d 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection_pf2.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_protection_pf2.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_psionics.xslt index 1cb26c66a0a..5273a462d2e 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_skills.xslt index 3f5b21faf87..4883cf674ab 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_condensed.xslt index 5e94cb5958c..295c717b687 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_list.xslt index 3896701455c..e8758a91a27 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_memorized.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_memorized.xslt index 19100d66cb5..6b70cb410db 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_memorized.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_spells_memorized.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_stat_block.xslt index 21487064106..22c706a28ce 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_weapons.xslt index 7150dc0f439..52f355c30da 100644 --- a/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/pathfinder_2/pdf/fantasy_common.xsl b/outputsheets/d20/pathfinder_2/pdf/fantasy_common.xsl index e48d2ce6545..7c19dd98ec2 100644 --- a/outputsheets/d20/pathfinder_2/pdf/fantasy_common.xsl +++ b/outputsheets/d20/pathfinder_2/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -762,7 +762,7 @@ - + diff --git a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_alt_largetext.xslt b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_alt_largetext.xslt index 61367d9ee53..a4d60fe6018 100644 --- a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_alt_largetext.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_alt_largetext.xslt @@ -1,7 +1,7 @@ - + - + - + @@ -43,10 +43,10 @@ - + - + @@ -66,10 +66,10 @@ - + - + @@ -82,10 +82,10 @@ - + - + @@ -98,10 +98,10 @@ - + - + @@ -114,10 +114,10 @@ - + - + diff --git a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_blocks.xslt index b6ff70aaa0a..1f4fe4979d5 100644 --- a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -72,10 +72,10 @@ - + - + @@ -95,10 +95,10 @@ - + - + @@ -111,10 +111,10 @@ - + - + @@ -127,10 +127,10 @@ - + - + @@ -143,10 +143,10 @@ - + - + diff --git a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_companion_box.xslt b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_companion_box.xslt index 40e25707d10..16ee92a7078 100644 --- a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_companion_box.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_common_companion_box.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_no_header.xslt b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_no_header.xslt index 90e560d88d6..0394c3a1a29 100644 --- a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_no_header.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_no_header.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_spell_list_only.xslt b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_spell_list_only.xslt index 28446dbb625..8ff29bce62f 100644 --- a/outputsheets/d20/pathfinder_2/pdf/fantasy_master_spell_list_only.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/fantasy_master_spell_list_only.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/pathfinder_2/pdf/inc_pagedimensions.xslt b/outputsheets/d20/pathfinder_2/pdf/inc_pagedimensions.xslt index dd449082752..f4aad31f1cc 100644 --- a/outputsheets/d20/pathfinder_2/pdf/inc_pagedimensions.xslt +++ b/outputsheets/d20/pathfinder_2/pdf/inc_pagedimensions.xslt @@ -7,10 +7,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + @@ -53,10 +53,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_attack.xslt index 7dd26d3f7af..1880c3b395c 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_bio_condensed.xslt index f2a3ff3996c..36122d27a21 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_class_features.xslt index 5da7de5ea6b..2a57e71e4c7 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_equipment.xslt index a6a66418e4c..1ff8c129961 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_features.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_features.xslt index 447bedff663..09cf9abc8ad 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_hp_defense.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_hp_defense.xslt index 1473cd872d7..d123b583c6a 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_hp_defense.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_misc.xslt index 22d53cfbef6..7a8e8a2b542 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_pc_header_row.xslt index 289550805be..27e08f5b74d 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_protection.xslt index 75d72bb67a0..061c2ceee18 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_psionics.xslt index 5c4346191a5..0ba239484dd 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_skills.xslt index b5705d31ce7..79ffd24b28a 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_condensed.xslt index 68f480e996b..33e9eaff66e 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_list.xslt index 9bf3b51c65f..b82052ec307 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_stat_block.xslt index d9823194df3..0f3a618f53d 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/sagaborn/pdf/common_sheet/block_weapons.xslt index ac55f43f23e..4793908b4f0 100644 --- a/outputsheets/d20/sagaborn/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/sagaborn/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/sagaborn/pdf/fantasy_common.xsl b/outputsheets/d20/sagaborn/pdf/fantasy_common.xsl index 723dbf19ca6..d2ef406e8ab 100644 --- a/outputsheets/d20/sagaborn/pdf/fantasy_common.xsl +++ b/outputsheets/d20/sagaborn/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -813,7 +813,7 @@ - + diff --git a/outputsheets/d20/sagaborn/pdf/fantasy_master_alt_largetext.xslt b/outputsheets/d20/sagaborn/pdf/fantasy_master_alt_largetext.xslt index 0930470c030..23d083e1333 100644 --- a/outputsheets/d20/sagaborn/pdf/fantasy_master_alt_largetext.xslt +++ b/outputsheets/d20/sagaborn/pdf/fantasy_master_alt_largetext.xslt @@ -1,7 +1,7 @@ - + - + - + @@ -43,10 +43,10 @@ - + - + @@ -66,10 +66,10 @@ - + - + @@ -82,10 +82,10 @@ - + - + @@ -98,10 +98,10 @@ - + - + @@ -114,10 +114,10 @@ - + - + diff --git a/outputsheets/d20/sagaborn/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/sagaborn/pdf/fantasy_master_common_blocks.xslt index d9197d6f5c3..ce1d18ac1ef 100644 --- a/outputsheets/d20/sagaborn/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/sagaborn/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/sagaborn/pdf/fantasy_master_common_companion_box.xslt b/outputsheets/d20/sagaborn/pdf/fantasy_master_common_companion_box.xslt index 130bb3e1fa1..76ac7b7aae8 100644 --- a/outputsheets/d20/sagaborn/pdf/fantasy_master_common_companion_box.xslt +++ b/outputsheets/d20/sagaborn/pdf/fantasy_master_common_companion_box.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/sagaborn/pdf/fantasy_master_no_header.xslt b/outputsheets/d20/sagaborn/pdf/fantasy_master_no_header.xslt index 4ae469c8691..44b13caf97b 100644 --- a/outputsheets/d20/sagaborn/pdf/fantasy_master_no_header.xslt +++ b/outputsheets/d20/sagaborn/pdf/fantasy_master_no_header.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/sagaborn/pdf/fantasy_master_spell_list_only.xslt b/outputsheets/d20/sagaborn/pdf/fantasy_master_spell_list_only.xslt index 9acb65fec3a..cbeff18f336 100644 --- a/outputsheets/d20/sagaborn/pdf/fantasy_master_spell_list_only.xslt +++ b/outputsheets/d20/sagaborn/pdf/fantasy_master_spell_list_only.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_attack.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_attack.xslt index 8bd9d576412..99ef1b5ed10 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_attack.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_attack.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_bio_condensed.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_bio_condensed.xslt index 00320f14d98..6315ccfcd40 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_bio_condensed.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_bio_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_blank.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_blank.xslt index 0be7cd10adc..68322aca1fc 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_blank.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_blank.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_class_features.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_class_features.xslt index 555f6469587..4667197fe22 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_class_features.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_class_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_equipment.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_equipment.xslt index 891a4ceb5ff..7f1b9a30400 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_equipment.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_equipment.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_features.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_features.xslt index 312277a0b6c..8c470fc74ee 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_features.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_features.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_hp_defense.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_hp_defense.xslt index 574af346d44..c9d95382dfb 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_hp_defense.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_hp_defense.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_misc.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_misc.xslt index e74ea021dd7..42062e01eaf 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_misc.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_misc.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_pc_header_row.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_pc_header_row.xslt index 8a469172798..4e6192d1abe 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_pc_header_row.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_pc_header_row.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_protection.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_protection.xslt index 9ec6939ab0c..625377914d6 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_protection.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_protection.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_psionics.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_psionics.xslt index 1cb26c66a0a..5273a462d2e 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_psionics.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_psionics.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:Psionics="my:Psionics" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs Psionics" diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_skills.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_skills.xslt index aeb2aa913b0..a2c0923013b 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_skills.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_skills.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_condensed.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_condensed.xslt index 6865ff5b593..12e66a0e024 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_condensed.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_condensed.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_list.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_list.xslt index 3896701455c..e8758a91a27 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_list.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_spells_list.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_stat_block.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_stat_block.xslt index 21487064106..22c706a28ce 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_stat_block.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_stat_block.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/common_sheet/block_weapons.xslt b/outputsheets/d20/starfinder/pdf/common_sheet/block_weapons.xslt index b5fed14543a..d1ec737aaf5 100644 --- a/outputsheets/d20/starfinder/pdf/common_sheet/block_weapons.xslt +++ b/outputsheets/d20/starfinder/pdf/common_sheet/block_weapons.xslt @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > diff --git a/outputsheets/d20/starfinder/pdf/fantasy_common.xsl b/outputsheets/d20/starfinder/pdf/fantasy_common.xsl index dfa00f2b211..195866c5761 100644 --- a/outputsheets/d20/starfinder/pdf/fantasy_common.xsl +++ b/outputsheets/d20/starfinder/pdf/fantasy_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -547,7 +547,7 @@ - + diff --git a/outputsheets/d20/starfinder/pdf/fantasy_master_common_blocks.xslt b/outputsheets/d20/starfinder/pdf/fantasy_master_common_blocks.xslt index ac9ab3cb82c..23dad5e28dc 100644 --- a/outputsheets/d20/starfinder/pdf/fantasy_master_common_blocks.xslt +++ b/outputsheets/d20/starfinder/pdf/fantasy_master_common_blocks.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -73,10 +73,10 @@ - + - + @@ -96,10 +96,10 @@ - + - + @@ -112,10 +112,10 @@ - + - + @@ -128,10 +128,10 @@ - + - + @@ -144,10 +144,10 @@ - + - + diff --git a/outputsheets/d20/starfinder/pdf/fantasy_master_spell_list_only.xslt b/outputsheets/d20/starfinder/pdf/fantasy_master_spell_list_only.xslt index 28446dbb625..8ff29bce62f 100644 --- a/outputsheets/d20/starfinder/pdf/fantasy_master_spell_list_only.xslt +++ b/outputsheets/d20/starfinder/pdf/fantasy_master_spell_list_only.xslt @@ -3,7 +3,7 @@ - + - + - + @@ -64,10 +64,10 @@ - + - + @@ -87,10 +87,10 @@ - + - + @@ -103,10 +103,10 @@ - + - + @@ -119,10 +119,10 @@ - + - + @@ -135,10 +135,10 @@ - + - + diff --git a/outputsheets/d20/starfinder/pdf/inc_pagedimensions.xslt b/outputsheets/d20/starfinder/pdf/inc_pagedimensions.xslt index dd449082752..f4aad31f1cc 100644 --- a/outputsheets/d20/starfinder/pdf/inc_pagedimensions.xslt +++ b/outputsheets/d20/starfinder/pdf/inc_pagedimensions.xslt @@ -7,10 +7,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + @@ -53,10 +53,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + diff --git a/outputsheets/killshot/pdf/inc_pagedimensions.xslt b/outputsheets/killshot/pdf/inc_pagedimensions.xslt index dd449082752..f4aad31f1cc 100644 --- a/outputsheets/killshot/pdf/inc_pagedimensions.xslt +++ b/outputsheets/killshot/pdf/inc_pagedimensions.xslt @@ -7,10 +7,10 @@ - + - + @@ -30,10 +30,10 @@ - + - + @@ -53,10 +53,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + diff --git a/outputsheets/killshot/pdf/killshot_common.xsl b/outputsheets/killshot/pdf/killshot_common.xsl index 8668dd1abc1..536913a2d43 100644 --- a/outputsheets/killshot/pdf/killshot_common.xsl +++ b/outputsheets/killshot/pdf/killshot_common.xsl @@ -4,7 +4,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.sourceforge.net/string.html" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" > @@ -449,7 +449,7 @@ - + diff --git a/outputsheets/killshot/pdf/killshot_master.xslt b/outputsheets/killshot/pdf/killshot_master.xslt index 4022280e1ae..b251df205a7 100644 --- a/outputsheets/killshot/pdf/killshot_master.xslt +++ b/outputsheets/killshot/pdf/killshot_master.xslt @@ -2,7 +2,7 @@ - + - + - + @@ -47,10 +47,10 @@ - + - + @@ -70,10 +70,10 @@ - + - + @@ -86,10 +86,10 @@ - + - + @@ -102,10 +102,10 @@ - + - + @@ -118,10 +118,10 @@ - + - + diff --git a/outputsheets/killshot/pdf/killshot_master_a.xslt b/outputsheets/killshot/pdf/killshot_master_a.xslt index efb843428be..a736e91fc59 100644 --- a/outputsheets/killshot/pdf/killshot_master_a.xslt +++ b/outputsheets/killshot/pdf/killshot_master_a.xslt @@ -2,7 +2,7 @@ - + - + - + @@ -46,10 +46,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,10 +101,10 @@ - + - + @@ -117,10 +117,10 @@ - + - + diff --git a/outputsheets/killshot/pdf/leadership.xsl b/outputsheets/killshot/pdf/leadership.xsl index 8ef96d76544..efa334405a2 100644 --- a/outputsheets/killshot/pdf/leadership.xsl +++ b/outputsheets/killshot/pdf/leadership.xsl @@ -3,7 +3,7 @@ version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" - xmlns:xalan="http://xml.apache.org/xalan" + xmlns:exsl="http://exslt.org/common" xmlns:math="http://exslt.org/math" xmlns:myAttribs="my:Attribs" xmlns:Leadership="my:Leadership" @@ -26,7 +26,7 @@ - + Each attribute is a tag where the name of the tag is the name of the attribute. All of the attributes of the tag will become attributes of the calling element, @@ -54,7 +54,7 @@ - + @@ -76,7 +76,7 @@ @@ -89,7 +89,7 @@ - + @@ -265,7 +265,7 @@ - + @@ -286,7 +286,7 @@ - + diff --git a/settings.gradle b/settings.gradle index 4d646ba3665..e64944b26e7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1 @@ rootProject.name = 'pcgen' - -//enableFeaturePreview "STABLE_CONFIGURATION_CACHE"